Browse Source

Stop log_heartbeat test from failing in timezones with non-integer offsets

Instead of comparing the end of the time string against a constant,
compare it to the output of format_local_iso_time when given the
correct input.
Fergus Dall 8 years ago
parent
commit
9e5a6f0293
2 changed files with 10 additions and 3 deletions
  1. 5 0
      changes/log_heartbeat_test
  2. 5 3
      src/test/test_status.c

+ 5 - 0
changes/log_heartbeat_test

@@ -0,0 +1,5 @@
+  o Minor bugfix (testing):
+    - The test for log_heartbeat was incorrectly failing in timezones
+      with non-integer offsets. Instead of comparing the end of the
+      time string against a constant, compare it to the output of
+      format_local_iso_time when given the correct input.

+ 5 - 3
src/test/test_status.c

@@ -714,9 +714,11 @@ NS(logv)(int severity, log_domain_mask_t domain,
       tt_str_op(va_arg(ap, char *), OP_EQ, "0 kB");  /* acc_used */
       tt_str_op(va_arg(ap, char *), OP_EQ, "0 kB");  /* acc_max */
       tt_str_op(va_arg(ap, char *), OP_EQ, "max");  /* acc_rule */
-      /* format_local_iso_time uses local tz, just check mins and secs. */
-      tt_ptr_op(strstr(va_arg(ap, char *), ":01:00"),
-                OP_NE, NULL); /* end_buf */
+      /* format_local_iso_time uses local tz, so we can't just compare
+       * the string against a constant */
+      char datetime[ISO_TIME_LEN+1];
+      format_local_iso_time(datetime, 60);
+      tt_str_op(va_arg(ap, char *), OP_EQ, datetime); /* end_buf */
       tt_str_op(va_arg(ap, char *), OP_EQ, "0:01 hours");   /* remaining */
       break;
     case 2: