From dfcfe0a355ee33ccf59ccb259b5f1e2f66ca7932 Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Tue, 7 Mar 2023 11:38:18 +0300 Subject: [PATCH] test/sstable::test_env: Add dir-less sstables making helpers Lots of (most of) test cases out there generate sstables inside env's temporary directory. This patch adds some sugar to env that will allow test cases omit explicit env.tempdir() call. Signed-off-by: Pavel Emelyanov --- test/lib/sstable_test_env.hh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/lib/sstable_test_env.hh b/test/lib/sstable_test_env.hh index d36c8d3e47..cb6fdd08d9 100644 --- a/test/lib/sstable_test_env.hh +++ b/test/lib/sstable_test_env.hh @@ -77,6 +77,12 @@ public: return _impl->mgr.make_sstable(std::move(schema), dir, generation_from_value(generation), v, f, now, default_io_error_handler_gen(), buffer_size); } + shared_sstable make_sstable(schema_ptr schema, unsigned long generation, + sstable::version_types v = sstables::get_highest_sstable_version(), sstable::format_types f = sstable::format_types::big, + size_t buffer_size = default_sstable_buffer_size, gc_clock::time_point now = gc_clock::now()) { + return make_sstable(std::move(schema), _impl->dir.path().native(), generation, std::move(v), std::move(f), buffer_size, now); + } + struct sst_not_found : public std::runtime_error { sst_not_found(const sstring& dir, unsigned long generation) : std::runtime_error(format("no versions of sstable generation {} found in {}", generation, dir)) @@ -92,9 +98,18 @@ public: }); } + future reusable_sst(schema_ptr schema, unsigned long generation, + sstable::version_types version, sstable::format_types f = sstable::format_types::big) { + return reusable_sst(std::move(schema), _impl->dir.path().native(), std::move(generation), std::move(version), std::move(f)); + } + // looks up the sstable in the given dir future reusable_sst(schema_ptr schema, sstring dir, unsigned long generation); + future reusable_sst(schema_ptr schema, unsigned long generation) { + return reusable_sst(std::move(schema), _impl->dir.path().native(), generation); + } + test_env_sstables_manager& manager() { return _impl->mgr; } reader_concurrency_semaphore& semaphore() { return _impl->semaphore; } db::config& db_config() { return *_impl->db_config; }