diff options
author | Vincent Ambo <mail@tazj.in> | 2022-05-18T15·39+0200 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2022-05-19T14·08+0000 |
commit | d127f9bd0e7b9b2e0df2de8a2227f77c0907468d (patch) | |
tree | 68455040d88b8e0c2817601db88ede450873ff8e /third_party/nix/src/tests/store-util.hh | |
parent | c85291c602ac666421627d6934ebc6d5be1b93e1 (diff) |
chore(3p/nix): unvendor tvix 0.1 r/4098
Nothing is using this now, and we'll likely never pick this up again, but we learned a lot in the process. Every now and then this breaks in some bizarre way on channel bumps and it's just a waste of time to maintain that. Change-Id: Idcf2f5acd4ca7070ce18d7149cbfc0d967dc0a44 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5632 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Autosubmit: tazjin <tazjin@tvl.su>
Diffstat (limited to 'third_party/nix/src/tests/store-util.hh')
-rw-r--r-- | third_party/nix/src/tests/store-util.hh | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/third_party/nix/src/tests/store-util.hh b/third_party/nix/src/tests/store-util.hh deleted file mode 100644 index b31bb0edcb8f..000000000000 --- a/third_party/nix/src/tests/store-util.hh +++ /dev/null @@ -1,76 +0,0 @@ -#pragma once - -#include <filesystem> - -#include <absl/status/statusor.h> -#include <absl/strings/escaping.h> -#include <glog/logging.h> -#include <sys/random.h> - -#include "libstore/local-store.hh" - -namespace nix { - -class StoreTest : public ::testing::Test { - public: - virtual void TearDown() { - for (auto fn : cleanup_funcs_) { - try { - fn(); - } catch (std::exception e) { - LOG(ERROR) << e.what(); - } - } - } - - absl::StatusOr<std::filesystem::path> OpenTempDir( - std::filesystem::path parent = std::filesystem::temp_directory_path()) { - for (;;) { - constexpr int kByteCnt = 9; - std::array<char, kByteCnt> randBytes; - if (getrandom(randBytes.data(), kByteCnt, 0) < 0) { - return absl::InternalError("getrandom() failed"); - } - std::string suffix = absl::WebSafeBase64Escape( - absl::string_view(randBytes.data(), kByteCnt)); - CHECK(suffix != ""); - - // Workaround for stdlib bug: use .assign() and ::errc - // https://stackoverflow.com/a/52401295/1210278 - std::error_code ec_exists; - ec_exists.assign(EEXIST, std::system_category()); - - std::error_code ec; - std::filesystem::path candidate = - parent / absl::StrCat("nixtest-", suffix); - if (std::filesystem::create_directory(candidate, ec)) { - cleanup_funcs_.push_back( - [candidate]() { std::filesystem::remove_all(candidate); }); - return candidate; - } else if (ec == ec_exists || ec == std::errc::file_exists) { - // Directory existed, retry - continue; - } else { - return absl::InternalError(absl::StrCat( - "could not create dir ", candidate.c_str(), ": ", ec.message())); - } - } - } - - absl::StatusOr<std::unique_ptr<nix::LocalStore>> OpenTemporaryStore() { - absl::StatusOr<std::filesystem::path> storePath = OpenTempDir(); - if (!storePath.ok()) { - return storePath.status(); - } - - nix::Store::Params params; - params["root"] = *storePath; - - return std::make_unique<nix::LocalStore>(params); - } - - private: - std::vector<std::function<void(void)>> cleanup_funcs_; -}; - -} // namespace nix |