|
@@ -170,7 +170,7 @@ test_config_addressmap(void *arg)
|
|
|
done:
|
|
|
;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
static int
|
|
|
is_private_dir(const char* path)
|
|
|
{
|
|
@@ -180,7 +180,7 @@ is_private_dir(const char* path)
|
|
|
return 0;
|
|
|
}
|
|
|
#if !defined (_WIN32) || defined (WINCE)
|
|
|
- if (st.st_mode != (S_IFDIR | 0700)) {
|
|
|
+ if ((st.st_mode & (S_IFDIR | 0777)) != (S_IFDIR | 0700)) {
|
|
|
return 0;
|
|
|
}
|
|
|
#endif
|
|
@@ -190,11 +190,14 @@ is_private_dir(const char* path)
|
|
|
static void
|
|
|
test_config_check_or_create_data_subdir(void *arg)
|
|
|
{
|
|
|
- or_options_t* options = get_options_mutable();
|
|
|
- options->DataDirectory = "test_data";
|
|
|
- const char* subdir = "test_stats";
|
|
|
- const char* subpath = get_datadir_fname(subdir);
|
|
|
+ or_options_t *options = get_options_mutable();
|
|
|
+ char *datadir = options->DataDirectory = tor_strdup(get_fname("datadir-0"));
|
|
|
+ const char *subdir = "test_stats";
|
|
|
+ const char *subpath = get_datadir_fname(subdir);
|
|
|
struct stat st;
|
|
|
+ int r;
|
|
|
+ unsigned group_permission;
|
|
|
+ (void)arg;
|
|
|
|
|
|
#if defined (_WIN32) && !defined (WINCE)
|
|
|
mkdir(options->DataDirectory);
|
|
@@ -202,7 +205,7 @@ test_config_check_or_create_data_subdir(void *arg)
|
|
|
mkdir(options->DataDirectory, 0700);
|
|
|
#endif
|
|
|
|
|
|
- int r = stat(subpath, &st);
|
|
|
+ r = stat(subpath, &st);
|
|
|
|
|
|
// The subdirectory shouldn't exist yet,
|
|
|
// but should be created by the call to check_or_create_data_subdir.
|
|
@@ -215,7 +218,7 @@ test_config_check_or_create_data_subdir(void *arg)
|
|
|
test_assert(!check_or_create_data_subdir(subdir));
|
|
|
|
|
|
#if !defined (_WIN32) || defined (WINCE)
|
|
|
- unsigned group_permission = st.st_mode | 0070;
|
|
|
+ group_permission = st.st_mode | 0070;
|
|
|
r = chmod(subpath, group_permission);
|
|
|
|
|
|
if (r) {
|
|
@@ -229,16 +232,16 @@ test_config_check_or_create_data_subdir(void *arg)
|
|
|
test_assert(is_private_dir(subpath));
|
|
|
#endif
|
|
|
|
|
|
- done:
|
|
|
- rmdir(subpath);
|
|
|
- rmdir(options->DataDirectory);
|
|
|
+ done:
|
|
|
+ rmdir(subpath);
|
|
|
+ tor_free(datadir);
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-test_config_write_to_data_subdir(void* arg)
|
|
|
+test_config_write_to_data_subdir(void *arg)
|
|
|
{
|
|
|
or_options_t* options = get_options_mutable();
|
|
|
- options->DataDirectory = "test_data";
|
|
|
+ char *datadir = options->DataDirectory = tor_strdup(get_fname("datadir-1"));
|
|
|
const char* subdir = "test_stats";
|
|
|
const char* fname = "test_file";
|
|
|
const char* str =
|
|
@@ -258,6 +261,7 @@ test_config_write_to_data_subdir(void* arg)
|
|
|
"sanctus est Lorem ipsum dolor sit amet.";
|
|
|
const char* subpath = get_datadir_fname(subdir);
|
|
|
const char* filepath = get_datadir_fname2(subdir, fname);
|
|
|
+ (void)arg;
|
|
|
|
|
|
#if defined (_WIN32) && !defined (WINCE)
|
|
|
mkdir(options->DataDirectory);
|
|
@@ -282,6 +286,7 @@ test_config_write_to_data_subdir(void* arg)
|
|
|
remove(filepath);
|
|
|
rmdir(subpath);
|
|
|
rmdir(options->DataDirectory);
|
|
|
+ tor_free(datadir);
|
|
|
}
|
|
|
|
|
|
/* Test helper function: Make sure that a bridge line gets parsed
|
|
@@ -437,8 +442,8 @@ test_config_parse_bridge_line(void *arg)
|
|
|
struct testcase_t config_tests[] = {
|
|
|
CONFIG_TEST(addressmap, 0),
|
|
|
CONFIG_TEST(parse_bridge_line, 0),
|
|
|
- CONFIG_TEST(check_or_create_data_subdir, 0),
|
|
|
- CONFIG_TEST(write_to_data_subdir, 0),
|
|
|
+ CONFIG_TEST(check_or_create_data_subdir, TT_FORK),
|
|
|
+ CONFIG_TEST(write_to_data_subdir, TT_FORK),
|
|
|
END_OF_TESTCASES
|
|
|
};
|
|
|
|