Skip to content

Commit c817ad6

Browse files
committed
Keep integer time unit tests BEAM-compatible
Run the int64-bound calendar assertion only on AtomVM, since BEAM accepts timestamps outside AtomVM's representable datetime range. Remove redundant narration from the integer time unit tests and move the changelog entry to the Added section. Signed-off-by: Peter M <petermm@gmail.com>
1 parent 6ef0b66 commit c817ad6

2 files changed

Lines changed: 12 additions & 17 deletions

File tree

tests/erlang_tests/test_monotonic_time.erl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,27 +68,22 @@ test_native_monotonic_time() ->
6868
ok.
6969

7070
test_integer_time_unit() ->
71-
%% integer 1 = parts per second, equivalent to second
7271
S = erlang:monotonic_time(second),
7372
S1 = erlang:monotonic_time(1),
7473
true = abs(S1 - S) =< 1,
7574

76-
%% integer 1000 = parts per second, equivalent to millisecond
7775
Ms = erlang:monotonic_time(millisecond),
7876
Ms1 = erlang:monotonic_time(1000),
7977
true = abs(Ms1 - Ms) =< 1,
8078

81-
%% integer 1000000 = parts per second, equivalent to microsecond
8279
Us = erlang:monotonic_time(microsecond),
8380
Us1 = erlang:monotonic_time(1000000),
8481
true = abs(Us1 - Us) =< 1000,
8582

86-
%% integer 1000000000 = parts per second, equivalent to nanosecond
8783
Ns = erlang:monotonic_time(nanosecond),
8884
Ns1 = erlang:monotonic_time(1000000000),
8985
true = abs(Ns1 - Ns) =< 1000000,
9086

91-
%% verify monotonicity with integer unit
9287
T1 = erlang:monotonic_time(1000),
9388
receive
9489
after 1 -> ok

tests/erlang_tests/test_system_time.erl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -182,27 +182,22 @@ test_native_universal_time() ->
182182
ok.
183183

184184
test_integer_time_unit() ->
185-
%% integer 1 = parts per second, equivalent to second
186185
S = erlang:system_time(second),
187186
S1 = erlang:system_time(1),
188187
true = abs(S1 - S) =< 1,
189188

190-
%% integer 1000 = parts per second, equivalent to millisecond
191189
Ms = erlang:system_time(millisecond),
192190
Ms1 = erlang:system_time(1000),
193191
true = abs(Ms1 - Ms) =< 1,
194192

195-
%% integer 1000000 = parts per second, equivalent to microsecond
196193
Us = erlang:system_time(microsecond),
197194
Us1 = erlang:system_time(1000000),
198195
true = abs(Us1 - Us) =< 1000,
199196

200-
%% integer 1000000000 = parts per second, equivalent to nanosecond
201197
Ns = erlang:system_time(nanosecond),
202198
Ns1 = erlang:system_time(1000000000),
203199
true = abs(Ns1 - Ns) =< 1000000,
204200

205-
%% verify values are positive
206201
true = S1 > 0,
207202
true = Ms1 > 0,
208203
true = Us1 > 0,
@@ -216,24 +211,20 @@ test_non_power_of_10_integer_time_unit() ->
216211
ok.
217212

218213
test_integer_unit_universal_time() ->
219-
%% integer 1 = seconds
220214
{{1970, 1, 1}, {0, 0, 0}} = calendar:system_time_to_universal_time(0, 1),
221215
{{1970, 1, 1}, {0, 0, 1}} = calendar:system_time_to_universal_time(1, 1),
222216
{{2023, 7, 8}, {20, 19, 39}} = calendar:system_time_to_universal_time(1688847579, 1),
223217

224-
%% integer 1000 = milliseconds
225218
{{1970, 1, 1}, {0, 0, 0}} = calendar:system_time_to_universal_time(0, 1000),
226219
{{1970, 1, 1}, {0, 0, 1}} = calendar:system_time_to_universal_time(1000, 1000),
227220
{{1970, 1, 1}, {0, 0, 1}} = calendar:system_time_to_universal_time(1001, 1000),
228221
{{1969, 12, 31}, {23, 59, 59}} = calendar:system_time_to_universal_time(-1, 1000),
229222
{{1969, 12, 31}, {23, 59, 58}} = calendar:system_time_to_universal_time(-1001, 1000),
230223

231-
%% integer 1000000 = microseconds
232224
{{1970, 1, 1}, {0, 0, 0}} = calendar:system_time_to_universal_time(0, 1000000),
233225
{{1970, 1, 1}, {0, 0, 1}} = calendar:system_time_to_universal_time(1000000, 1000000),
234226
{{1969, 12, 31}, {23, 59, 59}} = calendar:system_time_to_universal_time(-1, 1000000),
235227

236-
%% integer 256 and 48000 = arbitrary parts per second
237228
{{1970, 1, 1}, {0, 0, 0}} = calendar:system_time_to_universal_time(255, 256),
238229
{{1970, 1, 1}, {0, 0, 1}} = calendar:system_time_to_universal_time(256, 256),
239230
{{1969, 12, 31}, {23, 59, 59}} = calendar:system_time_to_universal_time(-1, 256),
@@ -256,11 +247,20 @@ test_bad_integer_unit_universal_time() ->
256247
ok = expect(
257248
fun() -> calendar:system_time_to_universal_time(0, not_a_time_unit) end, badarg
258249
),
259-
ok = expect(
260-
fun() -> calendar:system_time_to_universal_time(9223372036854775807, 1) end, badarg
261-
),
250+
ok = test_atomvm_integer_unit_overflow(),
262251
ok.
263252

253+
test_atomvm_integer_unit_overflow() ->
254+
case erlang:system_info(machine) of
255+
"ATOM" ->
256+
expect(
257+
fun() -> calendar:system_time_to_universal_time(9223372036854775807, 1) end,
258+
badarg
259+
);
260+
_ ->
261+
ok
262+
end.
263+
264264
test_integer_parts_per_second_ratio(PartsPerSecond) ->
265265
Seconds = erlang:system_time(second),
266266
Parts = erlang:system_time(PartsPerSecond),

0 commit comments

Comments
 (0)