mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Fix running unit tests from outside of the build directory (fixes bug #2051)
Currently the unit tests test_util_spawn_background_* assume that they are run from the Tor build directory. This is not the case when running make distcheck, so the test will fail. This problem is fixed by autoconf setting BUILDDIR to be the root of the Tor build directory, and this preprocessor variable being used to specify the absolute path to test-child. Also, in test-child, do not print out argv[0] because this will no longer be predictable. Found by Sebastian Hahn.
This commit is contained in:
parent
8ecb5abbe1
commit
06eafb3fcc
@ -931,6 +931,13 @@ if test "x$exec_prefix" = "xNONE"; then
|
|||||||
exec_prefix=$prefix
|
exec_prefix=$prefix
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "x$BUILDDIR" = "x"; then
|
||||||
|
BUILDDIR=`pwd`
|
||||||
|
fi
|
||||||
|
AC_SUBST(BUILDDIR)
|
||||||
|
AH_TEMPLATE([BUILDDIR],[tor's build directory])
|
||||||
|
AC_DEFINE_UNQUOTED(BUILDDIR,"$BUILDDIR")
|
||||||
|
|
||||||
if test "x$CONFDIR" = "x"; then
|
if test "x$CONFDIR" = "x"; then
|
||||||
CONFDIR=`eval echo $sysconfdir/tor`
|
CONFDIR=`eval echo $sysconfdir/tor`
|
||||||
fi
|
fi
|
||||||
|
@ -9,7 +9,7 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
fprintf(stdout, "OUT\n");
|
fprintf(stdout, "OUT\n");
|
||||||
fprintf(stderr, "ERR\n");
|
fprintf(stderr, "ERR\n");
|
||||||
for (i = 0; i < argc; i++)
|
for (i = 1; i < argc; i++)
|
||||||
fprintf(stdout, "%s\n", argv[i]);
|
fprintf(stdout, "%s\n", argv[i]);
|
||||||
fprintf(stdout, "DONE\n");
|
fprintf(stdout, "DONE\n");
|
||||||
|
|
||||||
|
@ -1393,8 +1393,8 @@ run_util_spawn_background(const char *argv[], const char *expected_out,
|
|||||||
static void
|
static void
|
||||||
test_util_spawn_background_ok(void *ptr)
|
test_util_spawn_background_ok(void *ptr)
|
||||||
{
|
{
|
||||||
const char *argv[] = {"src/test/test-child", "--test", NULL};
|
const char *argv[] = {BUILDDIR "/src/test/test-child", "--test", NULL};
|
||||||
const char *expected_out = "OUT\nsrc/test/test-child\n--test\nDONE\n";
|
const char *expected_out = "OUT\n--test\nDONE\n";
|
||||||
const char *expected_err = "ERR\n";
|
const char *expected_err = "ERR\n";
|
||||||
|
|
||||||
(void)ptr;
|
(void)ptr;
|
||||||
@ -1406,7 +1406,7 @@ test_util_spawn_background_ok(void *ptr)
|
|||||||
static void
|
static void
|
||||||
test_util_spawn_background_fail(void *ptr)
|
test_util_spawn_background_fail(void *ptr)
|
||||||
{
|
{
|
||||||
const char *argv[] = {"src/test/no-such-file", "--test", NULL};
|
const char *argv[] = {BUILDDIR "/src/test/no-such-file", "--test", NULL};
|
||||||
const char *expected_out = "ERR: Failed to spawn background process "
|
const char *expected_out = "ERR: Failed to spawn background process "
|
||||||
"- code 9/2\n";
|
"- code 9/2\n";
|
||||||
const char *expected_err = "";
|
const char *expected_err = "";
|
||||||
|
Loading…
Reference in New Issue
Block a user