mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +01:00
Update pt/configure_proxy until it stops segfaulting
This commit is contained in:
parent
99bb6d2937
commit
22a074caa7
@ -117,8 +117,8 @@ static const config_format_t state_format = {
|
|||||||
static or_state_t *global_state = NULL;
|
static or_state_t *global_state = NULL;
|
||||||
|
|
||||||
/** Return the persistent state struct for this Tor. */
|
/** Return the persistent state struct for this Tor. */
|
||||||
or_state_t *
|
MOCK_IMPL(or_state_t *,
|
||||||
get_or_state(void)
|
get_or_state, (void))
|
||||||
{
|
{
|
||||||
tor_assert(global_state);
|
tor_assert(global_state);
|
||||||
return global_state;
|
return global_state;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#ifndef TOR_STATEFILE_H
|
#ifndef TOR_STATEFILE_H
|
||||||
#define TOR_STATEFILE_H
|
#define TOR_STATEFILE_H
|
||||||
|
|
||||||
or_state_t *get_or_state(void);
|
MOCK_DECL(or_state_t *,get_or_state,(void));
|
||||||
int did_last_state_file_write_fail(void);
|
int did_last_state_file_write_fail(void);
|
||||||
int or_state_save(time_t now);
|
int or_state_save(time_t now);
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "transports.h"
|
#include "transports.h"
|
||||||
#include "circuitbuild.h"
|
#include "circuitbuild.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "statefile.h"
|
||||||
#include "test.h"
|
#include "test.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -156,14 +157,14 @@ test_pt_protocol(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
static smartlist_t *
|
#define STDIN_HANDLE HANDLE
|
||||||
tor_get_lines_from_handle_replacement(HANDLE *handle,
|
|
||||||
enum stream_status *stream_status_out)
|
|
||||||
#else
|
#else
|
||||||
static smartlist_t *
|
#define STDIN_HANDLE FILE
|
||||||
tor_get_lines_from_handle_replacement(FILE *handle,
|
|
||||||
enum stream_status *stream_status_out)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static smartlist_t *
|
||||||
|
tor_get_lines_from_handle_replacement(STDIN_HANDLE *handle,
|
||||||
|
enum stream_status *stream_status_out)
|
||||||
{
|
{
|
||||||
(void) handle;
|
(void) handle;
|
||||||
(void) stream_status_out;
|
(void) stream_status_out;
|
||||||
@ -188,7 +189,16 @@ static void
|
|||||||
tor_process_handle_destroy_replacement(process_handle_t *process_handle,
|
tor_process_handle_destroy_replacement(process_handle_t *process_handle,
|
||||||
int also_terminate_process)
|
int also_terminate_process)
|
||||||
{
|
{
|
||||||
return;
|
(void) process_handle;
|
||||||
|
(void) also_terminate_process;
|
||||||
|
}
|
||||||
|
|
||||||
|
static or_state_t *dummy_state = NULL;
|
||||||
|
|
||||||
|
static or_state_t *
|
||||||
|
get_or_state_replacement(void)
|
||||||
|
{
|
||||||
|
return dummy_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Test the configure_proxy() function. */
|
/* Test the configure_proxy() function. */
|
||||||
@ -199,16 +209,22 @@ test_pt_configure_proxy(void *arg)
|
|||||||
int i;
|
int i;
|
||||||
managed_proxy_t *mp = NULL;
|
managed_proxy_t *mp = NULL;
|
||||||
|
|
||||||
|
dummy_state = tor_malloc_zero(sizeof(or_state_t));
|
||||||
|
|
||||||
MOCK(tor_get_lines_from_handle,
|
MOCK(tor_get_lines_from_handle,
|
||||||
tor_get_lines_from_handle_replacement);
|
tor_get_lines_from_handle_replacement);
|
||||||
MOCK(tor_process_handle_destroy,
|
MOCK(tor_process_handle_destroy,
|
||||||
tor_process_handle_destroy_replacement);
|
tor_process_handle_destroy_replacement);
|
||||||
|
MOCK(get_or_state,
|
||||||
|
get_or_state_replacement);
|
||||||
|
|
||||||
mp = tor_malloc(sizeof(managed_proxy_t));
|
mp = tor_malloc(sizeof(managed_proxy_t));
|
||||||
mp->conf_state = PT_PROTO_ACCEPTING_METHODS;
|
mp->conf_state = PT_PROTO_ACCEPTING_METHODS;
|
||||||
mp->transports = smartlist_new();
|
mp->transports = smartlist_new();
|
||||||
mp->transports_to_launch = smartlist_new();
|
mp->transports_to_launch = smartlist_new();
|
||||||
mp->process_handle = tor_malloc_zero(sizeof(process_handle_t));
|
mp->process_handle = tor_malloc_zero(sizeof(process_handle_t));
|
||||||
|
mp->argv = tor_malloc_zero(sizeof(char*)*2);
|
||||||
|
mp->argv[0] = tor_strdup("<testcase>");
|
||||||
|
|
||||||
/* Test the return value of configure_proxy() by calling it some
|
/* Test the return value of configure_proxy() by calling it some
|
||||||
times while it is uninitialized and then finally finalizing its
|
times while it is uninitialized and then finally finalizing its
|
||||||
@ -219,9 +235,11 @@ test_pt_configure_proxy(void *arg)
|
|||||||
test_assert(configure_proxy(mp) == 1);
|
test_assert(configure_proxy(mp) == 1);
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
tor_free(dummy_state);
|
||||||
UNMOCK(tor_get_lines_from_handle);
|
UNMOCK(tor_get_lines_from_handle);
|
||||||
UNMOCK(tor_process_handle_destroy);
|
UNMOCK(tor_process_handle_destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define PT_LEGACY(name) \
|
#define PT_LEGACY(name) \
|
||||||
{ #name, legacy_test_helper, 0, &legacy_setup, test_pt_ ## name }
|
{ #name, legacy_test_helper, 0, &legacy_setup, test_pt_ ## name }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user