[tor-commits] [tor/master] Restitute a successful stat call to this test case.

nickm at torproject.org nickm at torproject.org
Mon Feb 17 23:01:46 UTC 2014


commit f49805b6816c5968f5c325022c96f9672da90ed4
Author: dana koch <dsk at google.com>
Date:   Sat Feb 15 21:48:58 2014 +1100

    Restitute a successful stat call to this test case.
    
    Since the first stat call is made for it to deliberately fail, and we
    reference st.st_mode without st having valid data, st.st_mode can contain
    garbage and cause chmod to fail with EINVAL. We rerun stat and ensure it
    succeeded.
    
    Also make use of tt_abort_perror, to properly convey failure reasons to
    the user.
---
 src/test/test_config.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/test/test_config.c b/src/test/test_config.c
index 678357d..3a1e6cb 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -221,12 +221,17 @@ test_config_check_or_create_data_subdir(void *arg)
   // and is private to the user.
   test_assert(!check_or_create_data_subdir(subdir));
 
+  r = stat(subpath, &st);
+  if (r) {
+    tt_abort_perror("stat");
+  }
+
 #if !defined (_WIN32) || defined (WINCE)
   group_permission = st.st_mode | 0070;
   r = chmod(subpath, group_permission);
 
   if (r) {
-    test_fail_msg("Changing permissions for the subdirectory failed.");
+    tt_abort_perror("chmod");
   }
 
   // If the directory exists, but its mode is too permissive





More information about the tor-commits mailing list