make test-stem doesn't work
Running make test-stem
doesn't seem to work on master (tor master with stem master). This probably prevents people from running make test-full
, which CodingStandards.md
recommends.
There are probably multiple bugs involved. (I can open child tickets for them if people think that's bettter.) Some of them involve invoking run_tests.py
with a working directory not at the top of the stem source tree. At least one other involves the lack of a tor
binary in the default $PATH
. (I'm not sure whether the test in question expects to run the system tor
.)
Running
STEM_SOURCE_DIR=`pwd`/../stem CHUTNEY_PATH=`pwd`/../chutney make test-stem
produces many errors like
Starting ./src/or/tor...
failed to start tor: './src/or/tor' doesn't exist
This suggests that run_tests.py
doesn't cope well with a relative path to the tor
binary, so as a workaround I tried setting TESTING_TOR_BINARY
like
STEM_SOURCE_DIR=`pwd`/../stem CHUTNEY_PATH=`pwd`/../chutney make TESTING_TOR_BINARY=`pwd`/src/or/tor test-stem
which produced
installation... failed (0.04s)
test_install 37 ms [SUCCESS]
test_sdist [FAILURE]
======================================================================
FAIL: test_sdist
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/tlyu/src/stem/test/util.py", line 245, in wrapped
return func(self, *args, **kwargs)
File "/home/tlyu/src/stem/test/integ/installation.py", line 144, in test_sdist
raise SDIST_FAILURE
AssertionError: /home/tlyu/src/stem/dist already exists, maybe you manually ran 'python setup.py sdist'?
----------------------------------------------------------------------
Ran 2 tests in 0.038s
FAILED (failures=1)
and
process... failed (1.03s)
test_can_run_multithreaded (already ran) [SKIPPED]
test_dump_config_argument 182 ms [SUCCESS]
test_hash_password 42 ms [SUCCESS]
test_hash_password_requires_argument 33 ms [SUCCESS]
test_help_argument 70 ms [SUCCESS]
test_hush_argument 70 ms [SUCCESS]
test_launch_tor_with_config_via_file (already ran) [SKIPPED]
test_launch_tor_with_config_via_stdin (already ran) [SKIPPED]
test_launch_tor_with_timeout (already ran) [SKIPPED]
test_list_fingerprint_argument 230 ms [SUCCESS]
test_list_torrc_options_argument 34 ms [SUCCESS]
test_no_orphaned_process [FAILURE]
test_quiet_argument 37 ms [SUCCESS]
test_take_ownership_via_controller (already ran) [SKIPPED]
test_take_ownership_via_pid (already ran) [SKIPPED]
test_torrc_arguments 46 ms [SUCCESS]
test_torrc_arguments_via_stdin 45 ms [SUCCESS]
test_validate_config_argument 95 ms [SUCCESS]
test_version_argument 39 ms [SUCCESS]
test_with_invalid_config (already ran) [SKIPPED]
test_with_missing_torrc 97 ms [SUCCESS]
======================================================================
ERROR: test_no_orphaned_process
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/tlyu/src/stem/test/util.py", line 260, in wrapped
return func(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mock/mock.py", line 1305, in patched
return func(*args, **keywargs)
File "/home/tlyu/src/stem/test/integ/process.py", line 217, in test_no_orphaned_process
stem.process.launch_tor()
File "/home/tlyu/src/stem/stem/process.py", line 98, in launch_tor
raise OSError("'%s' isn't available on your system. Maybe it's not in your PATH?" % tor_cmd)
OSError: 'tor' isn't available on your system. Maybe it's not in your PATH?
----------------------------------------------------------------------
Ran 21 tests in 1.033s
FAILED (errors=1, skipped=7)
The summary says
TESTING FAILED (72 seconds)
[RUN_NONE] test_sdist (test.integ.installation.TestInstallation) ... FAIL
[RUN_NONE] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
[RUN_OPEN] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
[RUN_PASSWORD] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
[RUN_COOKIE] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
[RUN_MULTIPLE] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
[RUN_SOCKET] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
[RUN_SCOOKIE] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
[RUN_PTRACE] test_no_orphaned_process (test.integ.process.TestProcess) ... ERROR
You can re-run just these tests with:
/home/tlyu/src/tor/../stem/run_tests.py --tor /home/tlyu/src/tor/src/or/tor --all --log notice --target RUN_ALL --test test.integ.installation
/home/tlyu/src/tor/../stem/run_tests.py --tor /home/tlyu/src/tor/src/or/tor --all --log notice --target RUN_ALL --test test.integ.process
Running from the top of the stem source tree
./run_tests.py --tor `pwd`/../tor/src/or/tor --all --log notice --target RUN_ALL --test test.integ.installation
succeeds
14 TESTS WERE SKIPPED
TESTING PASSED (10 seconds)
but
./run_tests.py --tor `pwd`/../tor/src/or/tor --all --log notice --target RUN_ALL --test test.integ.process
still fails in the same way. I don't have a system tor
binary installed in this VM, but I don't see any documentation that such is required for this test. Also it would be good to not accidentally test the system tor
binary when we intend to test a specific other one.