-
-
Notifications
You must be signed in to change notification settings - Fork 0
TEST-PHC-DRIFT-001: Verify PHC vs Windows System Time Clock Drift #320
Copy link
Copy link
Open
Labels
domain:ptpphase:07-verification-validationPhase 07: Verification & ValidationPhase 07: Verification & Validationpriority:p1High priority - should haveHigh priority - should havestatus:backlogIssue in backlog, not yet prioritizedIssue in backlog, not yet prioritizedtest-type:integrationIntegration test - tests component interactionsIntegration test - tests component interactionstype:test-caseTest case (TEST) - verification and validationTest case (TEST) - verification and validation
Description
Metadata
Metadata
Assignees
Labels
domain:ptpphase:07-verification-validationPhase 07: Verification & ValidationPhase 07: Verification & Validationpriority:p1High priority - should haveHigh priority - should havestatus:backlogIssue in backlog, not yet prioritizedIssue in backlog, not yet prioritizedtest-type:integrationIntegration test - tests component interactionsIntegration test - tests component interactionstype:test-caseTest case (TEST) - verification and validationTest case (TEST) - verification and validation
Test Description
Verify that the PHC (PTP Hardware Clock) drift relative to Windows system time
(
GetSystemTimeAsFileTime) is within expected bounds for an uncorrected oscillator,confirming that the cross-timestamp correlation path functions correctly and the PHC
is actually running at a meaningful rate.
Test Objectives
IOCTL_AVB_SET_TIMESTAMPPreconditions
ptp_clock_control_test.exebuilt (Debug configuration)Test Cases
TC-DRIFT-001: PHC drift within crystal oscillator tolerance after 1-second window
Steps:
GetSystemTimeAsFileTime()→winTime1IOCTL_AVB_SET_TIMESTAMP(winTime1)to sync PHC to Windows timeGetSystemTimeAsFileTime()→winTime2IOCTL_AVB_GET_TIMESTAMP→ptpTime2winDelta = winTime2 − winTime1ptpDelta = ptpTime2 − winTime1drift = ptpDelta − winDeltadriftPpm = drift / winDelta × 1,000,000Expected Result:
|driftPpm| < 100 ppm(typical crystal oscillator; PASS)Acceptable Result:
|driftPpm| < 500 ppm(wider tolerance; WARN/PASS)Note: High drift (>500 ppm) is logged as WARNING, not a hard FAIL — expected before gPTP synchronisation
Acceptance Criteria
IOCTL_AVB_SET_TIMESTAMPcompletes without errorIOCTL_AVB_GET_TIMESTAMPreturns non-zero timestamp after 1 sptpDelta) is positive and within 500 ppm of Windows elapsed timeTest Type
tests/integration/ptp/ptp_clock_control_test.c,TestClockDrift()(Test 4)f1fba3c, 2026-04-21)Evidence
TestClockDrift()intests/integration/ptp/ptp_clock_control_test.cf1fba3c: OID wait ensures TIMINCA is stable before measurement window beginsTraceability
tests/integration/ptp/ptp_clock_control_test.c