mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Make unit tests work on win32
svn:r3094
This commit is contained in:
parent
c3c6873945
commit
ac759adb43
@ -1011,7 +1011,7 @@ static void dumpstats(int severity) {
|
|||||||
/** Called before we make any calls to network-related functions.
|
/** Called before we make any calls to network-related functions.
|
||||||
* (Some operating systems require their network libraries to be
|
* (Some operating systems require their network libraries to be
|
||||||
* initialized.) */
|
* initialized.) */
|
||||||
static int network_init(void)
|
int network_init(void)
|
||||||
{
|
{
|
||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
/* This silly exercise is necessary before windows will allow gethostbyname to work.
|
/* This silly exercise is necessary before windows will allow gethostbyname to work.
|
||||||
|
@ -1387,6 +1387,7 @@ int proxy_mode(or_options_t *options);
|
|||||||
|
|
||||||
void handle_signals(int is_parent);
|
void handle_signals(int is_parent);
|
||||||
void tor_cleanup(void);
|
void tor_cleanup(void);
|
||||||
|
int network_init(void);
|
||||||
|
|
||||||
int tor_main(int argc, char *argv[]);
|
int tor_main(int argc, char *argv[]);
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
const char test_c_id[] = "$Id$";
|
const char test_c_id[] = "$Id$";
|
||||||
|
|
||||||
|
#include "orconfig.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#ifdef HAVE_FCNTL_H
|
#ifdef HAVE_FCNTL_H
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
@ -12,8 +13,10 @@ const char test_c_id[] = "$Id$";
|
|||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
/* For mkdir() */
|
/* For mkdir() */
|
||||||
#include <direct.h>
|
#include <direct.h>
|
||||||
#endif
|
#else
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "or.h"
|
#include "or.h"
|
||||||
#include "../common/test.h"
|
#include "../common/test.h"
|
||||||
#include "../common/torgzip.h"
|
#include "../common/torgzip.h"
|
||||||
@ -34,10 +37,12 @@ setup_directory(void)
|
|||||||
int r;
|
int r;
|
||||||
if (is_setup) return;
|
if (is_setup) return;
|
||||||
|
|
||||||
tor_snprintf(temp_dir, sizeof(temp_dir), "/tmp/tor_test_%d", (int) getpid());
|
|
||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
|
// XXXX
|
||||||
|
tor_snprintf(temp_dir, sizeof(temp_dir), "c:\\windows\\temp\\tor_test_%d", (int)getpid());
|
||||||
r = mkdir(temp_dir);
|
r = mkdir(temp_dir);
|
||||||
#else
|
#else
|
||||||
|
tor_snprintf(temp_dir, sizeof(temp_dir), "/tmp/tor_test_%d", (int) getpid());
|
||||||
r = mkdir(temp_dir, 0700);
|
r = mkdir(temp_dir, 0700);
|
||||||
#endif
|
#endif
|
||||||
if (r) {
|
if (r) {
|
||||||
@ -60,6 +65,35 @@ get_fname(const char *name)
|
|||||||
static void
|
static void
|
||||||
remove_directory(void)
|
remove_directory(void)
|
||||||
{
|
{
|
||||||
|
#ifdef MS_WINDOWS
|
||||||
|
char *pattern;
|
||||||
|
HANDLE handle;
|
||||||
|
WIN32_FIND_DATA findData;
|
||||||
|
|
||||||
|
setup_directory();
|
||||||
|
pattern = tor_malloc(strlen(temp_dir)+16);
|
||||||
|
tor_snprintf(pattern, strlen(temp_dir)+16, "%s\\*", temp_dir);
|
||||||
|
handle = FindFirstFile(pattern, &findData);
|
||||||
|
if (handle == INVALID_HANDLE_VALUE) {
|
||||||
|
perror("Can't remove");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while(1) {
|
||||||
|
size_t dlen = strlen(findData.cFileName)+strlen(temp_dir)+16;
|
||||||
|
char *deleteable = tor_malloc(dlen);
|
||||||
|
tor_snprintf(deleteable, dlen, "%s\\%s", temp_dir, findData.cFileName);
|
||||||
|
unlink(deleteable);
|
||||||
|
tor_free(deleteable);
|
||||||
|
if (!FindNextFile(handle, &findData)) {
|
||||||
|
if (GetLastError() != ERROR_NO_MORE_FILES) {
|
||||||
|
perror("error reading dir");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FindClose(handle);
|
||||||
|
tor_free(pattern);
|
||||||
|
#else
|
||||||
DIR *dirp;
|
DIR *dirp;
|
||||||
struct dirent *de;
|
struct dirent *de;
|
||||||
setup_directory();
|
setup_directory();
|
||||||
@ -78,6 +112,7 @@ remove_directory(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
closedir(dirp);
|
closedir(dirp);
|
||||||
|
#endif
|
||||||
rmdir(temp_dir);
|
rmdir(temp_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1239,6 +1274,7 @@ test_rend_fns(void)
|
|||||||
int
|
int
|
||||||
main(int c, char**v) {
|
main(int c, char**v) {
|
||||||
or_options_t *options = tor_malloc_zero(sizeof(or_options_t));
|
or_options_t *options = tor_malloc_zero(sizeof(or_options_t));
|
||||||
|
network_init();
|
||||||
options_init(options);
|
options_init(options);
|
||||||
set_options(options);
|
set_options(options);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user