Browse Source

pytest: Allow running tests in a shared memory directory

It seems we spend a lot of time waiting for `bitcoind` and `lightningd` to
talk to disks. This adds the `TEST_DIR` environment variable, allowing for
example to use `/dev/shm`, or a faster disk than the disk `/tmp` is on, as the
root directory for all test-related files.

Testing this on one of our builder machines cut the time to run the entire
suite under valgrind roughly in half (180-200 seconds vs 440-490 seconds).
pull/2803/head
Christian Decker 6 years ago
committed by Rusty Russell
parent
commit
cb96be9a6e
  1. 4
      tests/fixtures.py

4
tests/fixtures.py

@ -29,7 +29,9 @@ __attempts = {}
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def test_base_dir(): def test_base_dir():
directory = tempfile.mkdtemp(prefix='ltests-') d = os.getenv("TEST_DIR", "/tmp")
directory = tempfile.mkdtemp(prefix='ltests-', dir=d)
print("Running tests in {}".format(directory)) print("Running tests in {}".format(directory))
yield directory yield directory

Loading…
Cancel
Save