diff --git a/test/laminar-fixture.h b/test/laminar-fixture.h index 30d7c57..b08c74e 100644 --- a/test/laminar-fixture.h +++ b/test/laminar-fixture.h @@ -1,5 +1,5 @@ /// -/// Copyright 2019-2020 Oliver Giles +/// Copyright 2019-2022 Oliver Giles /// /// This file is part of Laminar /// @@ -33,20 +33,26 @@ class LaminarFixture : public ::testing::Test { public: LaminarFixture() { - bind_rpc = std::string("unix:/") + tmp.path.toString(true).cStr() + "/rpc.sock"; - bind_http = std::string("unix:/") + tmp.path.toString(true).cStr() + "/http.sock"; home = tmp.path.toString(true).cStr(); - tmp.fs->openSubdir(kj::Path{"cfg", "jobs"}, kj::WriteMode::CREATE | kj::WriteMode::CREATE_PARENT); + bind_rpc = std::string("unix:/") + home + "/rpc.sock"; + bind_http = std::string("unix:/") + home + "/http.sock"; settings.home = home.c_str(); settings.bind_rpc = bind_rpc.c_str(); settings.bind_http = bind_http.c_str(); settings.archive_url = "/test-archive/"; + } + ~LaminarFixture() noexcept(true) {} + + void SetUp() override { + tmp.init(); server = new Server(*ioContext); laminar = new Laminar(*server, settings); } - ~LaminarFixture() noexcept(true) { + + void TearDown() override { delete server; delete laminar; + tmp.clean(); } kj::Own eventSource(const char* path) { diff --git a/test/tempdir.h b/test/tempdir.h index 8602987..ab9a6f0 100644 --- a/test/tempdir.h +++ b/test/tempdir.h @@ -1,5 +1,5 @@ /// -/// Copyright 2018-2020 Oliver Giles +/// Copyright 2018-2022 Oliver Giles /// /// This file is part of Laminar /// @@ -28,12 +28,24 @@ class TempDir { public: TempDir() : path(mkdtemp()), - fs(kj::newDiskFilesystem()->getRoot().openSubdir(path, kj::WriteMode::CREATE|kj::WriteMode::MODIFY)) + fs(kj::newDiskFilesystem()->getRoot().openSubdir(path, kj::WriteMode::MODIFY)) { } ~TempDir() noexcept { kj::newDiskFilesystem()->getRoot().remove(path); } + void init() { + // set up empty directory structure + fs->openSubdir(kj::Path{"cfg"}, kj::WriteMode::CREATE); + fs->openSubdir(kj::Path{"cfg", "jobs"}, kj::WriteMode::CREATE); + } + void clean() { + // rm -rf in config folder + for(kj::StringPtr name : fs->listNames()) { + fs->remove(kj::Path{name}); + } + } + kj::Path path; kj::Own fs; private: