Share via


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.

See Also

Other Resources

OAL - IOCTL Tests