From 9566203d0d65e7146fee1b26bb93f41fbf8a6a32 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 25 Jan 2023 11:28:36 +0100 Subject: [PATCH] Partially revert "Test store paths, with property tests" This reverts the addition of property tests from commit d111d2ed49a2ba9563d6379977c7e1671a2410f4. --- src/libstore/tests/libstoretests.hh | 23 ----- src/libstore/tests/path.cc | 144 ---------------------------- 2 files changed, 167 deletions(-) delete mode 100644 src/libstore/tests/libstoretests.hh delete mode 100644 src/libstore/tests/path.cc diff --git a/src/libstore/tests/libstoretests.hh b/src/libstore/tests/libstoretests.hh deleted file mode 100644 index 05397659b..000000000 --- a/src/libstore/tests/libstoretests.hh +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -#include "store-api.hh" - -namespace nix { - -class LibStoreTest : public ::testing::Test { - public: - static void SetUpTestSuite() { - initLibStore(); - } - - protected: - LibStoreTest() - : store(openStore("dummy://")) - { } - - ref store; -}; - - -} /* namespace nix */ diff --git a/src/libstore/tests/path.cc b/src/libstore/tests/path.cc deleted file mode 100644 index 8ea252c92..000000000 --- a/src/libstore/tests/path.cc +++ /dev/null @@ -1,144 +0,0 @@ -#include - -#include -#include -#include - -#include "path-regex.hh" -#include "store-api.hh" - -#include "libstoretests.hh" - -namespace nix { - -#define STORE_DIR "/nix/store/" -#define HASH_PART "g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q" - -class StorePathTest : public LibStoreTest -{ -}; - -static std::regex nameRegex { std::string { nameRegexStr } }; - -#define TEST_DONT_PARSE(NAME, STR) \ - TEST_F(StorePathTest, bad_ ## NAME) { \ - std::string_view str = \ - STORE_DIR HASH_PART "-" STR; \ - ASSERT_THROW( \ - store->parseStorePath(str), \ - BadStorePath); \ - std::string name { STR }; \ - EXPECT_FALSE(std::regex_match(name, nameRegex)); \ - } - -TEST_DONT_PARSE(empty, "") -TEST_DONT_PARSE(garbage, "&*()") -TEST_DONT_PARSE(double_star, "**") -TEST_DONT_PARSE(star_first, "*,foo") -TEST_DONT_PARSE(star_second, "foo,*") -TEST_DONT_PARSE(bang, "foo!o") - -#undef TEST_DONT_PARSE - -#define TEST_DO_PARSE(NAME, STR) \ - TEST_F(StorePathTest, good_ ## NAME) { \ - std::string_view str = \ - STORE_DIR HASH_PART "-" STR; \ - auto p = store->parseStorePath(str); \ - std::string name { p.name() }; \ - EXPECT_TRUE(std::regex_match(name, nameRegex)); \ - } - -// 0-9 a-z A-Z + - . _ ? = - -TEST_DO_PARSE(numbers, "02345") -TEST_DO_PARSE(lower_case, "foo") -TEST_DO_PARSE(upper_case, "FOO") -TEST_DO_PARSE(plus, "foo+bar") -TEST_DO_PARSE(dash, "foo-dev") -TEST_DO_PARSE(underscore, "foo_bar") -TEST_DO_PARSE(period, "foo.txt") -TEST_DO_PARSE(question_mark, "foo?why") -TEST_DO_PARSE(equals_sign, "foo=foo") - -#undef TEST_DO_PARSE - -// For rapidcheck -void showValue(const StorePath & p, std::ostream & os) { - os << p.to_string(); -} - -} - -namespace rc { -using namespace nix; - -template<> -struct Arbitrary { - static Gen arbitrary(); -}; - -Gen Arbitrary::arbitrary() -{ - auto len = *gen::inRange(1, StorePath::MaxPathLen); - - std::string pre { HASH_PART "-" }; - pre.reserve(pre.size() + len); - - for (size_t c = 0; c < len; ++c) { - switch (auto i = *gen::inRange(0, 10 + 2 * 26 + 6)) { - case 0 ... 9: - pre += '0' + i; - case 10 ... 35: - pre += 'A' + (i - 10); - break; - case 36 ... 61: - pre += 'a' + (i - 36); - break; - case 62: - pre += '+'; - break; - case 63: - pre += '-'; - break; - case 64: - pre += '.'; - break; - case 65: - pre += '_'; - break; - case 66: - pre += '?'; - break; - case 67: - pre += '='; - break; - default: - assert(false); - } - } - - return gen::just(StorePath { pre }); -} - -} // namespace rc - -namespace nix { - -RC_GTEST_FIXTURE_PROP( - StorePathTest, - prop_regex_accept, - (const StorePath & p)) -{ - RC_ASSERT(std::regex_match(std::string { p.name() }, nameRegex)); -} - -RC_GTEST_FIXTURE_PROP( - StorePathTest, - prop_round_rip, - (const StorePath & p)) -{ - RC_ASSERT(p == store->parseStorePath(store->printStorePath(p))); -} - -}