[tor-commits] [tor/release-0.4.0] Detect and suppress an additional gmtime() warning in test_util.c

asn at torproject.org asn at torproject.org
Tue Apr 9 09:25:57 UTC 2019


commit a63bd877608cc9892c58ca8addbe18f9f7eff468
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Apr 8 17:02:14 2019 -0400

    Detect and suppress an additional gmtime() warning in test_util.c
    
    Fixes bug 29922; bugfix on 0.2.9.3-alpha when we tried to capture
    all these warnings.  No need to backport any farther than 0.3.5,
    though -- these warnings don't cause test failures before then.
    
    This one was tricky to find because apparently it only happened on
    _some_ windows builds.
---
 changes/bug29922     | 4 ++++
 src/test/test_util.c | 9 +++++++++
 2 files changed, 13 insertions(+)

diff --git a/changes/bug29922 b/changes/bug29922
new file mode 100644
index 000000000..dacb95109
--- /dev/null
+++ b/changes/bug29922
@@ -0,0 +1,4 @@
+  o Minor bugfixes (testing, windows):
+    - Fix a test failure caused by an unexpected bug warning in
+      our test for tor_gmtime_r(-1). Fixes bug 29922;
+      bugfix on 0.2.9.3-alpha.
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 4701fadf1..1b8897a17 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -699,6 +699,13 @@ test_util_time(void *arg)
 
 #define CHECK_TIMEGM_ARG_OUT_OF_RANGE(msg) \
     CHECK_TIMEGM_WARNING("Out-of-range argument to tor_timegm")
+#define CHECK_POSSIBLE_TIMEGM_ARG_OUT_OF_RANGE(msg)             \
+  do {                                                          \
+    if (mock_saved_log_n_entries()) {                           \
+      expect_single_log_msg_containing("Out-of-range argument");\
+    }                                                           \
+    teardown_capture_of_logs();                                 \
+  } while (0)
 
   /* year */
 
@@ -885,7 +892,9 @@ test_util_time(void *arg)
    * depending on whether the implementation of the system gmtime(_r)
    * sets struct tm (1) or not (1970) */
   t_res = -1;
+  CAPTURE();
   tor_gmtime_r(&t_res, &b_time);
+  CHECK_POSSIBLE_TIMEGM_ARG_OUT_OF_RANGE();
   tt_assert(b_time.tm_year == (1970-1900) ||
             b_time.tm_year == (1969-1900));
 





More information about the tor-commits mailing list