aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2021-01-25 12:24:23 +0100
committerGitHub <noreply@github.com>2021-01-25 12:24:23 +0100
commit680d8a5b86979620927714f061e0ca40d6281b8e (patch)
treeb483acf9fa5441d7117032a99d86ec5a07bc7132 /tests
parent29edbfe2d2578d8166bd1a13373b69bf35cf8ee9 (diff)
parent53a709535b42197a9abd3fe46406bb186ad6c751 (diff)
Merge pull request #4387 from obsidiansystems/non-local-store-build
Make `nix-build --store whatever` work
Diffstat (limited to 'tests')
-rw-r--r--tests/binary-cache-build-remote.sh16
-rw-r--r--tests/binary-cache.sh13
-rw-r--r--tests/local.mk4
3 files changed, 28 insertions, 5 deletions
diff --git a/tests/binary-cache-build-remote.sh b/tests/binary-cache-build-remote.sh
new file mode 100644
index 000000000..81cd21a4a
--- /dev/null
+++ b/tests/binary-cache-build-remote.sh
@@ -0,0 +1,16 @@
+source common.sh
+
+clearStore
+clearCacheCache
+
+# Fails without remote builders
+(! nix-build --store "file://$cacheDir" dependencies.nix)
+
+# Succeeds with default store as build remote.
+outPath=$(nix-build --store "file://$cacheDir" --builders 'auto - - 1 1' -j0 dependencies.nix)
+
+# Test that the path exactly exists in the destination store.
+nix path-info --store "file://$cacheDir" $outPath
+
+# Succeeds without any build capability because no-op
+nix-build --store "file://$cacheDir" -j0 dependencies.nix
diff --git a/tests/binary-cache.sh b/tests/binary-cache.sh
index 355a37d97..6697ce236 100644
--- a/tests/binary-cache.sh
+++ b/tests/binary-cache.sh
@@ -1,15 +1,20 @@
source common.sh
+# We can produce drvs directly into the binary cache
clearStore
-clearCache
+clearCacheCache
+nix-instantiate --store "file://$cacheDir" dependencies.nix
# Create the binary cache.
+clearStore
+clearCache
outPath=$(nix-build dependencies.nix --no-out-link)
nix copy --to file://$cacheDir $outPath
-basicTests() {
+basicDownloadTests() {
+ # No uploading tests bcause upload with force HTTP doesn't work.
# By default, a binary cache doesn't support "nix-env -qas", but does
# support installation.
@@ -44,12 +49,12 @@ basicTests() {
# Test LocalBinaryCacheStore.
-basicTests
+basicDownloadTests
# Test HttpBinaryCacheStore.
export _NIX_FORCE_HTTP=1
-basicTests
+basicDownloadTests
# Test whether Nix notices if the NAR doesn't match the hash in the NAR info.
diff --git a/tests/local.mk b/tests/local.mk
index ce94ec80e..aa8b4f9bf 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -9,7 +9,9 @@ nix_tests = \
local-store.sh remote-store.sh export.sh export-graph.sh \
timeout.sh secure-drv-outputs.sh nix-channel.sh \
multiple-outputs.sh import-derivation.sh fetchurl.sh optimise-store.sh \
- binary-cache.sh nix-profile.sh repair.sh dump-db.sh case-hack.sh \
+ binary-cache.sh \
+ binary-cache-build-remote.sh \
+ nix-profile.sh repair.sh dump-db.sh case-hack.sh \
check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \
placeholders.sh nix-shell.sh \
linux-sandbox.sh \