aboutsummaryrefslogtreecommitdiff
path: root/src/test/test_config.c
diff options
context:
space:
mode:
authordana koch <dsk@google.com>2014-02-15 21:48:58 +1100
committerNick Mathewson <nickm@torproject.org>2014-02-17 22:55:40 +0000
commitf49805b6816c5968f5c325022c96f9672da90ed4 (patch)
tree855bcdc632de04929b1c7a85ff8e20f2a4c021dc /src/test/test_config.c
parent8999150f71e401bfd9eed4a10f905f0f60073c38 (diff)
downloadtor-f49805b6816c5968f5c325022c96f9672da90ed4.tar
tor-f49805b6816c5968f5c325022c96f9672da90ed4.tar.gz
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.
Diffstat (limited to 'src/test/test_config.c')
-rw-r--r--src/test/test_config.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/test/test_config.c b/src/test/test_config.c
index 678357d8e..3a1e6cb78 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