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).
This commit is contained in:
Christian Decker 2019-09-06 13:30:45 +02:00 committed by Rusty Russell
parent b90b4b4bb1
commit cb96be9a6e

View File

@ -29,7 +29,9 @@ __attempts = {}
@pytest.fixture(scope="session")
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))
yield directory