Skip to content

Commit a861a75

Browse files
newlib: Fix UT for adjtime
1 parent 0c7e13f commit a861a75

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

components/newlib/test/test_time.c

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,25 +81,27 @@ TEST_CASE("test adjtime function", "[newlib]")
8181
tv_delta.tv_sec = 0;
8282
tv_delta.tv_usec = -900000;
8383
TEST_ASSERT_EQUAL(adjtime(&tv_delta, &tv_outdelta), 0);
84-
TEST_ASSERT_TRUE(tv_outdelta.tv_usec <= 0);
85-
86-
tv_delta.tv_sec = 0;
87-
tv_delta.tv_usec = 900000;
88-
TEST_ASSERT_EQUAL(adjtime(&tv_delta, &tv_outdelta), 0);
89-
TEST_ASSERT_TRUE(tv_outdelta.tv_usec >= 0);
84+
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, 0);
85+
TEST_ASSERT_EQUAL(tv_outdelta.tv_usec, 0);
86+
TEST_ASSERT_EQUAL(adjtime(NULL, &tv_outdelta), 0);
87+
TEST_ASSERT_LESS_THAN(-800000, tv_outdelta.tv_usec);
9088

9189
tv_delta.tv_sec = -4;
9290
tv_delta.tv_usec = -900000;
93-
TEST_ASSERT_EQUAL(adjtime(&tv_delta, &tv_outdelta), 0);
91+
TEST_ASSERT_EQUAL(adjtime(&tv_delta, NULL), 0);
92+
TEST_ASSERT_EQUAL(adjtime(NULL, &tv_outdelta), 0);
9493
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, -4);
95-
TEST_ASSERT_TRUE(tv_outdelta.tv_usec <= 0);
94+
TEST_ASSERT_LESS_THAN(-800000, tv_outdelta.tv_usec);
9695

9796
// after settimeofday() adjtime() is stopped
9897
tv_delta.tv_sec = 15;
9998
tv_delta.tv_usec = 900000;
10099
TEST_ASSERT_EQUAL(adjtime(&tv_delta, &tv_outdelta), 0);
100+
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, -4);
101+
TEST_ASSERT_LESS_THAN(-800000, tv_outdelta.tv_usec);
102+
TEST_ASSERT_EQUAL(adjtime(NULL, &tv_outdelta), 0);
101103
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, 15);
102-
TEST_ASSERT_TRUE(tv_outdelta.tv_usec >= 0);
104+
TEST_ASSERT_GREATER_OR_EQUAL(800000, tv_outdelta.tv_usec);
103105

104106
TEST_ASSERT_EQUAL(gettimeofday(&tv_time, NULL), 0);
105107
TEST_ASSERT_EQUAL(settimeofday(&tv_time, NULL), 0);
@@ -112,21 +114,24 @@ TEST_CASE("test adjtime function", "[newlib]")
112114
tv_delta.tv_sec = 15;
113115
tv_delta.tv_usec = 900000;
114116
TEST_ASSERT_EQUAL(adjtime(&tv_delta, &tv_outdelta), 0);
117+
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, 0);
118+
TEST_ASSERT_EQUAL(tv_outdelta.tv_usec, 0);
119+
TEST_ASSERT_EQUAL(adjtime(NULL, &tv_outdelta), 0);
115120
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, 15);
116-
TEST_ASSERT_TRUE(tv_outdelta.tv_usec >= 0);
121+
TEST_ASSERT_GREATER_OR_EQUAL(800000, tv_outdelta.tv_usec);
117122

118123
TEST_ASSERT_EQUAL(gettimeofday(&tv_time, NULL), 0);
119124

120125
TEST_ASSERT_EQUAL(adjtime(NULL, &tv_outdelta), 0);
121126
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, 15);
122-
TEST_ASSERT_TRUE(tv_outdelta.tv_usec >= 0);
127+
TEST_ASSERT_GREATER_OR_EQUAL(800000, tv_outdelta.tv_usec);
123128

124129
tv_delta.tv_sec = 1;
125130
tv_delta.tv_usec = 0;
126131
TEST_ASSERT_EQUAL(adjtime(&tv_delta, NULL), 0);
127132
vTaskDelay(1000 / portTICK_PERIOD_MS);
128133
TEST_ASSERT_EQUAL(adjtime(NULL, &tv_outdelta), 0);
129-
TEST_ASSERT_TRUE(tv_outdelta.tv_sec == 0);
134+
TEST_ASSERT_EQUAL(tv_outdelta.tv_sec, 0);
130135
// the correction will be equal to (1_000_000us >> 6) = 15_625 us.
131136
TEST_ASSERT_TRUE(1000000L - tv_outdelta.tv_usec >= 15600);
132137
TEST_ASSERT_TRUE(1000000L - tv_outdelta.tv_usec <= 15650);

0 commit comments

Comments
 (0)