@@ -351,13 +351,15 @@ namespace AMCUnitTest {
351351 pJob->StartValidating ();
352352 pJob->FinishValidating (10 );
353353
354- auto pExec = pJob->CreateBuildJobExecution (" Execution" , fixture.m_sUserUUID , getCurrentTimestamp ());
354+ uint64_t nStartTime = getCurrentTimestamp ();
355+ auto pExec = pJob->CreateBuildJobExecution (" Execution" , fixture.m_sUserUUID , nStartTime);
355356
356357 // Initial status should be InProcess
357358 assertTrue (pExec->GetStatus () == LibMCData::eBuildJobExecutionStatus::InProcess, " Initial status should be InProcess" );
358359
359360 // Change status - ChangeStatus(eNewStatus, nAbsoluteEndTimeStamp)
360- pExec->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Finished, getCurrentTimestamp ());
361+ // End timestamp must be after start timestamp
362+ pExec->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Finished, nStartTime + 1000 );
361363 assertTrue (pExec->GetStatus () == LibMCData::eBuildJobExecutionStatus::Finished, " Status should be Finished" );
362364 }
363365
@@ -750,11 +752,13 @@ namespace AMCUnitTest {
750752 auto fixture = createFixture (" exec_failed" );
751753
752754 auto pJob = createValidatedJob (fixture, " Job For Failed Test" );
753- auto pExec = pJob->CreateBuildJobExecution (" Execution" , fixture.m_sUserUUID , getCurrentTimestamp ());
755+ uint64_t nStartTime = getCurrentTimestamp ();
756+ auto pExec = pJob->CreateBuildJobExecution (" Execution" , fixture.m_sUserUUID , nStartTime);
754757
755758 assertTrue (pExec->GetStatus () == LibMCData::eBuildJobExecutionStatus::InProcess, " Should be InProcess" );
756759
757- pExec->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Failed, getCurrentTimestamp ());
760+ // End timestamp must be after start timestamp
761+ pExec->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Failed, nStartTime + 1000 );
758762 assertTrue (pExec->GetStatus () == LibMCData::eBuildJobExecutionStatus::Failed, " Should be Failed" );
759763 }
760764
@@ -798,13 +802,16 @@ namespace AMCUnitTest {
798802 auto pJob = createValidatedJob (fixture, " Job For Status Filter Test" );
799803
800804 // Create executions with different statuses
801- auto pExec1 = pJob->CreateBuildJobExecution (" Exec 1" , fixture.m_sUserUUID , getCurrentTimestamp ());
802- auto pExec2 = pJob->CreateBuildJobExecution (" Exec 2" , fixture.m_sUserUUID , getCurrentTimestamp ());
805+ uint64_t nStart1 = getCurrentTimestamp ();
806+ auto pExec1 = pJob->CreateBuildJobExecution (" Exec 1" , fixture.m_sUserUUID , nStart1);
807+ uint64_t nStart2 = getCurrentTimestamp ();
808+ auto pExec2 = pJob->CreateBuildJobExecution (" Exec 2" , fixture.m_sUserUUID , nStart2);
803809 auto pExec3 = pJob->CreateBuildJobExecution (" Exec 3" , fixture.m_sUserUUID , getCurrentTimestamp ());
804810
805811 // All start as InProcess, finish some
806- pExec1->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Finished, getCurrentTimestamp ());
807- pExec2->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Failed, getCurrentTimestamp ());
812+ // End timestamp must be after start timestamp
813+ pExec1->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Finished, nStart1 + 1000 );
814+ pExec2->ChangeStatus (LibMCData::eBuildJobExecutionStatus::Failed, nStart2 + 1000 );
808815 // pExec3 stays InProcess
809816
810817 // Query by status
0 commit comments