[tor-commits] [stem/master] Empty tor data directory between integ tests
atagar at torproject.org
atagar at torproject.org
Mon May 27 22:56:18 UTC 2019
commit 8b07bca61ef2d6f88bf00662a5e493c40f8be9fc
Author: Damian Johnson <atagar at torproject.org>
Date: Mon May 27 15:41:47 2019 -0700
Empty tor data directory between integ tests
When authoring our integ tests years ago I had a decision to make: retain tor's
data directory between runs or start fresh.
From the standpoint of testing best practices this should be a no brainer:
start fresh. However, I decided against this because at the time we ran our
'ONLINE' target by default, and losing our cache added a frustrating amount
of runtime.
We no longer run tests that require network activity by default, and keeping
our data directory around adds up over time...
% du -h test/data/tor_log
5.3M test/data/tor_log
% ls test/data/torrc.orig.* | wc -l
98
I'm about to change our logging runlevel which will raise our log size by an
order of magnitude. This is negligible, but if we don't first change our
cleaning behavior it'll add up.
---
run_tests.py | 1 +
test/task.py | 17 +++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/run_tests.py b/run_tests.py
index 89c0b3de..a2f58f83 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -223,6 +223,7 @@ def main():
test.task.CLEAN_PYC,
test.task.UNUSED_TESTS,
test.task.IMPORT_TESTS,
+ test.task.REMOVE_TOR_DATA_DIR if args.run_integ else None,
test.task.PYFLAKES_TASK if not args.specific_test else None,
test.task.PYCODESTYLE_TASK if not args.specific_test else None,
)
diff --git a/test/task.py b/test/task.py
index a7dc15a6..be518ca7 100644
--- a/test/task.py
+++ b/test/task.py
@@ -18,6 +18,7 @@
|- PYFLAKES_VERSION - checks our version of pyflakes
|- PYCODESTYLE_VERSION - checks our version of pycodestyle
|- CLEAN_PYC - removes any *.pyc without a corresponding *.py
+ |- REMOVE_TOR_DATA_DIR - removes our tor data directory
|- IMPORT_TESTS - ensure all test modules have been imported
|- UNUSED_TESTS - checks to see if any tests are missing from our settings
|- PYFLAKES_TASK - static checks
@@ -27,6 +28,7 @@
import os
import platform
import re
+import shutil
import sys
import time
import traceback
@@ -136,6 +138,20 @@ def _clean_orphaned_pyc(paths):
return ['removed %s' % path for path in stem.util.test_tools.clean_orphaned_pyc(paths)]
+def _remove_tor_data_dir():
+ """
+ Empties tor's data directory.
+ """
+
+ config_test_dir = CONFIG['integ.test_directory']
+
+ if config_test_dir and os.path.exists(config_test_dir):
+ shutil.rmtree(config_test_dir, ignore_errors = True)
+ return 'done'
+ else:
+ return 'skipped'
+
+
def _import_tests():
"""
Ensure all tests have been imported. This is important so tests can
@@ -316,6 +332,7 @@ MOCK_VERSION = ModuleVersion('mock version', ['unittest.mock', 'mock'], stem.pre
PYFLAKES_VERSION = ModuleVersion('pyflakes version', 'pyflakes')
PYCODESTYLE_VERSION = ModuleVersion('pycodestyle version', ['pycodestyle', 'pep8'])
CLEAN_PYC = Task('checking for orphaned .pyc files', _clean_orphaned_pyc, (SRC_PATHS,), print_runtime = True)
+REMOVE_TOR_DATA_DIR = Task('emptying our tor data directory', _remove_tor_data_dir)
IMPORT_TESTS = Task('importing test modules', _import_tests, print_runtime = True)
UNUSED_TESTS = Task('checking for unused tests', _check_for_unused_tests, [(
More information about the tor-commits
mailing list