From a55c15c651b805c5eca4475f9845a57adf6cddef Mon Sep 17 00:00:00 2001 From: metagn Date: Sun, 22 Sep 2024 14:57:03 +0300 Subject: [PATCH] fix tmarshalsegfault depending on execution time (#24153) Added in #24119, the test checks if every string produced is equal, but the value of the strings depend on the `now()` timestamp of when they were produced. 30 of them are produced in a for loop in sequence with each other, but the first one is set after the data is marshalled into and unmarshalled from a file. This means the timestamp strings can differ depending on the execution time and causes this test to be flaky. Instead we just make 2 strings from the same data and check if they equal each other. --- tests/stdlib/tmarshalsegfault.nim | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/stdlib/tmarshalsegfault.nim b/tests/stdlib/tmarshalsegfault.nim index a18ace6d116d3..71f2766c8b575 100644 --- a/tests/stdlib/tmarshalsegfault.nim +++ b/tests/stdlib/tmarshalsegfault.nim @@ -48,8 +48,7 @@ removeFile("tmarshalsegfault_data") state.shows.aired[ 0 ] = AiredEpisodeState( airedAt: now(), tvShowId: "1", seasonNumber: 1, number: 1, title: "string" ) # 4. And formatting the airedAt date will now trigger the exception -var s = "" for ep in state.shows.aired: let x = $ep.seasonNumber & "x" & $ep.number & " (" & $ep.airedAt & ")" - if s.len == 0: s = x - else: doAssert s == x + let y = $ep.seasonNumber & "x" & $ep.number & " (" & $ep.airedAt & ")" + doAssert x == y