| NAME = 'monotonic_time' |
| AUTHOR = 'Michael Davidson <md@google.com>' |
| TIME = 'MEDIUM' |
| TEST_CLASS = 'Kernel' |
| TEST_CATEGORY = 'Functional' |
| TEST_TYPE = 'client' |
| DOC = """ |
| monotonic_time checks various time interfaces: |
| gettimeofday() |
| clock_gettime(CLOCK_MONTONIC) |
| TSC |
| for monotonicity. |
| |
| Based on time-warp-test.c by Ingo Molnar. |
| """ |
| |
| # |
| # Test gettimeofday(), TSC, and clock_gettime(CLOCK_MONOTONIC) |
| # |
| # Tests run for 'duration' seconds and check that the selected |
| # time interface does not go backwards by more than 'threshold'. |
| # |
| # Note that the threshold value has the same resolution as the |
| # clock source: |
| # gettimeofday() - microseconds |
| # clock_gettime(CLOCK_MONOTONIC) - nanoseconds |
| # TSC - CPU clock cycles |
| # |
| # |
| job.run_test('monotonic_time', tag='gtod', test_type='gtod', |
| duration=300, threshold=0) |
| |
| job.run_test('monotonic_time', tag='clock', test_type='clock', |
| duration=300, threshold=0) |
| |
| job.run_test('monotonic_time', tag='tsc', test_type='tsc', |
| duration=300, threshold=0) |