Test Cases for the ILTIMING IOCTL Test (Windows Embedded CE 6.0)

1/6/2010

The following table shows the test cases for testing IOCTL_HAL_ILTIMING. These tests help make sure that the IOCTL_HAL_ILTIMING is supported and implemented correctly. Correctly implemented, IOCTL_HAL_ILTIMING enables ILTiming.exe to measure interrupt service routine (ISR) and interrupt service threads (IST) latency. IOCTL_HAL_ILTIMING is passed to the OEM through OEMIoControl.

Test case Description

1

Tests the IOCTL_HAL_ILTIMING Usage Message:

This test case prints out the usage message for the ILTIMING IOCTL Test. The usage message tells the user what the test does and specifies the input, if any, that the user must provide.

1000

Verifies that IOCTL_HAL_ILTIMING supports inputs and outputs:

This test determines whether IOCTL_HAL_ILTIMING is supported by the platform and if the IOCTL can handle the necessary input and output results. The ILTIMING_MESSAGE structure is passed in the lpInBuf parameter of the IOCTL. The wMsg member of this structure is set to a specific command that describes the message type. This command is an input to IOCTL_HAL_ILTIMING.

This test calls the IOCTL_HAL_ILTIMING sequence multiple times and sets inputs in the ILTIMING_MESSAGE structure. Then, it prints the result to show whether the test passes or fails. The four inputs that IOCTL_HAL_ILTIMING should handle are as follows:

  • ILTIMING_MSG_ENABLE
  • ILTIMING_MSG_DISABLE
  • ILTIMING_MSG_GET_TIMES
  • ILTIMING_MSG_GET_PFN

1001

Verifies that IOCTL_HAL_ILTIMING can enable and disable interrupts multiple times:

This test case calls IOCTL_HAL_ILTIMING multiple times with ILTIMING_MSG_ENABLE and ILTIMING_MSG_DISABLE set in the ILTIMING_MESSAGE structure. This test verifies whether all calls succeed. The test sequence is as follows:

  1. Enable
  2. Disable
  3. Enable
  4. Enable
  5. Disable
  6. Disable

1002

This tests incorrect inbound/outbound parameters for IOCTL_HAL_ILTIMING:

This test checks if IOCTL_HAL_ILTIMING can handle incorrect inbound and outbound parameters. This IOCTL does not take any outbound parameters. The test case passes in random outbound parameters and verifies that it will not affect the outcome of the IOCTL. Additionally, various combinations of incorrect inbound parameters are passed to the IOCTL and the return values and error codes are verified.

For the inbound parameters, various combinations of incorrect input values are given to the IOCTL and the return values and error codes are verified. Any incorrect input parameters should not crash the system.

See Also

Other Resources

ILTIMING IOCTL Test
IOCTL_HAL_ILTIMING