IOCTL_HAL_ILTIMING (Kernel Mode) Test (Compact 2013)
3/26/2014
The IOCTL_HAL_ILTIMING Test verifies the behavior of the ILTIMING support I/O Control (IOCTL) used by the ILTiming.exe utility.
When correctly implemented, IOCTL_HAL_ILTIMING enables ILTiming.exe to measure Interrupt Service Routine (ISR) and Interrupt Service Thread (IST) latency. IOCTL_HAL_ILTIMING passes to the OEM through OEMIoControl.
The tests verify that the platform supports ILTIMING and that calls with different inputs yield results. The tests check whether IOCTL_HAL_ILTIMING processes parameters correctly and whether the return values are correct. They also verify that you can call ILTIMING_MSG_ENABLE and ILTIMING_MSG_DISABLE multiple times and for the correct handling of errant calls to the IOCTL.
Test Prerequisites
Your device must meet the following requirements before you run this test.
As with the other OAL IOCTL tests, the IOCTL_HAL_ILTIMING Test requires no additional hardware.
- You should run the tests on a minimal OS design, such as a "BTS Minimum OAL" image.
- You should run the test on an image that supports IOCTL_HAL_ILTIMING.
The following table describes the software requirements for the test:
Requirements |
Description |
---|---|
Tux.exe |
Tux test harness, required to execute the test |
ktux.dll |
Required to run kernel-mode tux tests. |
kato.dll |
Kato logging engine, required for logging test data |
oaltestioctls.dll |
Library that contains OAL IOCTL test files |
Subtests
The following table lists the subtests included in this test.
SubTest ID |
Description |
---|---|
5200 |
Prints out the usage message for the IOCTL_HAL_ILTIMING tests. |
5201 |
Verifies IOCTL_HAL_ILTIMING is supported by the platform and that it supports the four required inputs: ILTIMING_MSG_ENABLE, ILTIMING_MSG_DISABLE, ILTIMING_MSG_GET_TIMES, ILTIMING_MSG_GET_PFN. |
5202 |
Verifies that you can enable and disable IOCTL_HAL_ILTIMING multiple times. |
5203 |
Checks that IOCTL_HAL_ILTIMING correctly handles incorrect inbound parameters. |
5204 |
Checks that IOCTL_HAL_ILTIMING correctly handles incorrect outbound parameters. |
Setting Up the Test
This test has no additional requirements beyond the standard test environment setup.
Running the Test
The default command line for the test is as follows:
tux -o -n -d oalTestIoctls -x5200-5204
Be aware that the test must be run in kernel mode by using the -n option.
Verifying the Test
When the test finishes running, verify that 'PASS' appears in the test log for all subtests.
Troubleshooting the Test
- Verify that the IOCTL test is running in kernel mode (the -n option is being used).
- Check for the implementation of the IOCTL_HAL_ILTIMING IOCTL.
- Verify the correct implementation of the ILTIMING IOCTL message types.
- Determine the point of failure and record the exact error message. If the source code is available, examine the point of failure in the code to see whether you can collect any additional information about the failure domain.