From 614efc1240dbfefbdabced808decd8defd33df8e Mon Sep 17 00:00:00 2001 From: Ben Radford Date: Tue, 18 Jul 2023 13:59:22 +0100 Subject: [PATCH] Add test for store optimise path deduplication. --- src/libstore/local-overlay-store.cc | 5 +++++ src/libstore/local-overlay-store.hh | 2 ++ tests/overlay-local-store/local.mk | 3 ++- tests/overlay-local-store/optimise-inner.sh | 19 +++++++++++++++++++ tests/overlay-local-store/optimise.sh | 5 +++++ 5 files changed, 33 insertions(+), 1 deletion(-) create mode 100755 tests/overlay-local-store/optimise-inner.sh create mode 100755 tests/overlay-local-store/optimise.sh diff --git a/src/libstore/local-overlay-store.cc b/src/libstore/local-overlay-store.cc index 182955fbe..da0c8e3d5 100644 --- a/src/libstore/local-overlay-store.cc +++ b/src/libstore/local-overlay-store.cc @@ -188,6 +188,11 @@ void LocalOverlayStore::deleteGCPath(const Path & path, uint64_t & bytesFreed) } } +void LocalOverlayStore::optimiseStore() +{ + warn("not implemented"); +} + bool LocalOverlayStore::verifyStore(bool checkContents, RepairFlag repair) { if (repair) diff --git a/src/libstore/local-overlay-store.hh b/src/libstore/local-overlay-store.hh index 8fa99ee14..ef377b7a6 100644 --- a/src/libstore/local-overlay-store.hh +++ b/src/libstore/local-overlay-store.hh @@ -113,6 +113,8 @@ private: void deleteGCPath(const Path & path, uint64_t & bytesFreed) override; + void optimiseStore() override; + bool verifyStore(bool checkContents, RepairFlag repair) override; }; diff --git a/tests/overlay-local-store/local.mk b/tests/overlay-local-store/local.mk index 5e8c76b4e..3a6d00bc1 100644 --- a/tests/overlay-local-store/local.mk +++ b/tests/overlay-local-store/local.mk @@ -4,6 +4,7 @@ overlay-local-store-tests := \ $(d)/build.sh \ $(d)/bad-uris.sh \ $(d)/add-lower.sh \ - $(d)/verify.sh + $(d)/verify.sh \ + $(d)/optimise.sh install-tests-groups += overlay-local-store diff --git a/tests/overlay-local-store/optimise-inner.sh b/tests/overlay-local-store/optimise-inner.sh new file mode 100755 index 000000000..76c5a0cb6 --- /dev/null +++ b/tests/overlay-local-store/optimise-inner.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +set -x + +source common.sh + +# Avoid store dir being inside sandbox build-dir +unset NIX_STORE_DIR +unset NIX_STATE_DIR + +storeDirs + +initLowerStore + +mountOverlayfs + +nix-store --store "$storeB" --optimise diff --git a/tests/overlay-local-store/optimise.sh b/tests/overlay-local-store/optimise.sh new file mode 100755 index 000000000..569afa248 --- /dev/null +++ b/tests/overlay-local-store/optimise.sh @@ -0,0 +1,5 @@ +source common.sh + +requireEnvironment +setupConfig +execUnshare ./optimise-inner.sh