about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-11-18T13·49+0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-11-18T13·50+0100
commit5d064e2698506be601fd87a20fcfe975b879a1fe (patch)
tree57043595aedf7de812bd484e7b584411e0496e00
parent35aad73bb6c2954f39c2e024d91fdfa41ec778bc (diff)
Add a test for the binary tarball installer
-rw-r--r--release.nix24
-rw-r--r--scripts/install-nix-from-closure.sh6
2 files changed, 24 insertions, 6 deletions
diff --git a/release.nix b/release.nix
index 5819d4e61321..a44b0d79ff7f 100644
--- a/release.nix
+++ b/release.nix
@@ -211,14 +211,29 @@ let
 
 
     # System tests.
-    tests.remote_builds = (import ./tests/remote-builds.nix rec {
+    tests.remoteBuilds = (import ./tests/remote-builds.nix rec {
       nix = build.x86_64-linux; system = "x86_64-linux";
     });
 
-    tests.nix_copy_closure = (import ./tests/nix-copy-closure.nix rec {
+    tests.nix-copy-closure = (import ./tests/nix-copy-closure.nix rec {
       nix = build.x86_64-linux; system = "x86_64-linux";
     });
 
+    tests.binaryTarball =
+      with import <nixpkgs> { system = "x86_64-linux"; };
+      vmTools.runInLinuxImage (runCommand "nix-binary-tarball-test"
+        { diskImage = vmTools.diskImages.ubuntu1204x86_64;
+        }
+        ''
+          useradd -m alice
+          su - alice -c 'tar xf ${binaryTarball.x86_64-linux}/*.tar.*'
+          mount -t tmpfs none /nix # Provide a writable /nix.
+          chown alice /nix
+          su - alice -c '_NIX_INSTALLER_TEST=1 ./nix-*/install'
+          su - alice -c 'nix-store --verify'
+          su - alice -c 'nix-store -qR ${build.x86_64-linux}'
+        ''); # */
+
 
     # Aggregate job containing the release-critical jobs.
     release = pkgs.releaseTools.aggregate {
@@ -248,8 +263,9 @@ let
           rpm_fedora19x86_64
           rpm_fedora20i386
           rpm_fedora20x86_64
-          tests.remote_builds
-          tests.nix_copy_closure
+          tests.remoteBuilds
+          tests.nix-copy-closure
+          tests.binaryTarball
         ];
     };
 
diff --git a/scripts/install-nix-from-closure.sh b/scripts/install-nix-from-closure.sh
index ef56149915b1..60ec1ea93219 100644
--- a/scripts/install-nix-from-closure.sh
+++ b/scripts/install-nix-from-closure.sh
@@ -17,7 +17,7 @@ if [ -z "$USER" ]; then
 fi
 
 if [ "$(id -u)" -eq 0 ]; then
-    echo "warning: installing Nix as root is not recommended" >&2
+    printf '\e[1;31mwarning: installing Nix as root is not supported by this script!\e[0m\n'
 fi
 
 echo "performing a single-user installation of Nix..." >&2
@@ -79,7 +79,9 @@ if ! $nix/bin/nix-channel --list | grep -q "^nixpkgs "; then
         $nix/bin/nix-channel --add http://nixos.org/channels/nixpkgs-unstable
     fi
 fi
-$nix/bin/nix-channel --update nixpkgs
+if [ -z "$_NIX_INSTALLER_TEST" ]; then
+    $nix/bin/nix-channel --update nixpkgs
+fi
 
 # Install an SSL certificate bundle.
 $nix/bin/nix-env -iA nixpkgs.cacert || true