1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-08 19:23:54 +02:00

* Sync with the trunk.

This commit is contained in:
Eelco Dolstra 2012-01-03 12:59:31 +00:00
commit 6c31232e14
35 changed files with 241 additions and 242 deletions

View file

@ -8,7 +8,8 @@ TESTS = init.sh hash.sh lang.sh add.sh simple.sh dependencies.sh \
referrers.sh user-envs.sh logging.sh nix-build.sh misc.sh fixed.sh \
gc-runtime.sh install-package.sh check-refs.sh filter-source.sh \
remote-store.sh export.sh export-graph.sh negative-caching.sh \
binary-patching.sh timeout.sh secure-drv-outputs.sh multiple-outputs.sh
binary-patching.sh timeout.sh secure-drv-outputs.sh nix-channel.sh \
multiple-outputs.sh
XFAIL_TESTS =
@ -38,4 +39,3 @@ EXTRA_DIST = $(TESTS) \
multiple-outputs.nix \
$(wildcard lang/*.nix) $(wildcard lang/*.exp) $(wildcard lang/*.exp.xml) $(wildcard lang/*.flags) $(wildcard lang/dir*/*.nix) \
common.sh.in

View file

@ -9,7 +9,6 @@ if ! NIX_STORE_DIR=$(readlink -f $TEST_ROOT/store 2> /dev/null); then
export NIX_IGNORE_SYMLINK_STORE=1
NIX_STORE_DIR=$TEST_ROOT/store
fi
export NIX_DATA_DIR=$TEST_ROOT/data
export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
export NIX_STATE_DIR=$TEST_ROOT/var/nix
@ -19,15 +18,11 @@ export NIX_BIN_DIR=$TEST_ROOT/bin
export NIX_LIBEXEC_DIR=$TEST_ROOT/bin
export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests
export NIX_ROOT_FINDER=
export NIX_PATH=nix=$TOP/corepkgs
export SHARED=$TEST_ROOT/shared
export PATH=$NIX_BIN_DIR:$TOP/scripts:$PATH
export REAL_BIN_DIR=@bindir@
export REAL_LIBEXEC_DIR=@libexecdir@
export REAL_LOCALSTATE_DIR=@localstatedir@
export REAL_DATA_DIR=@datadir@
export REAL_STORE_DIR=@storedir@
export NIX_BUILD_HOOK=
export PERL=perl
export PERL5LIB=$TOP/perl/lib:$PERL5LIB

View file

@ -13,5 +13,6 @@ rec {
builder = shell;
args = ["-e" args.builder];
PATH = path;
} // removeAttrs args ["builder"]);
} // removeAttrs args ["builder" "meta"])
// { meta = args.meta or {}; };
}

View file

@ -17,6 +17,7 @@ let {
builder = ./dependencies.builder0.sh + "/FOOBAR/../.";
input1 = input1 + "/.";
inherit input2;
meta.description = "Random test package";
};
}

View file

@ -10,7 +10,6 @@ fi
mkdir "$TEST_ROOT"
mkdir "$NIX_STORE_DIR"
mkdir "$NIX_DATA_DIR"
mkdir "$NIX_LOCALSTATE_DIR"
mkdir -p "$NIX_LOG_DIR"/drvs
mkdir "$NIX_STATE_DIR"
@ -39,29 +38,6 @@ env-keep-derivations = false
fsync-metadata = false
EOF
mkdir $NIX_DATA_DIR/nix
cp -pr $TOP/corepkgs $NIX_DATA_DIR/nix/
# Bah, scripts have the prefix hard-coded. This is really messy stuff
# (and likely to fail).
for i in \
$NIX_DATA_DIR/nix/corepkgs/nar/nar.sh \
; do
sed < $i > $i.tmp \
-e "s^$REAL_BIN_DIR/nix-store^$NIX_BIN_DIR/nix-store^" \
-e "s^$REAL_BIN_DIR/nix-hash^$NIX_BIN_DIR/nix-hash^" \
-e "s^$REAL_LIBEXEC_DIR^$NIX_LIBEXEC_DIR^" \
-e "s^$REAL_LOCALSTATE_DIR^$NIX_LOCALSTATE_DIR^" \
-e "s^$REAL_DATA_DIR^$NIX_DATA_DIR^" \
-e "s^$REAL_STORE_DIR\([^/]\)^$NIX_STORE_DIR\1^"
mv $i.tmp $i
chmod +x $i
done
# Another ugly hack.
sed "s|^$|PATH='$PATH'|" < $NIX_DATA_DIR/nix/corepkgs/nar/nar.sh > tmp
chmod +x tmp
mv tmp $NIX_DATA_DIR/nix/corepkgs/nar/nar.sh
# An uberhack for Mac OS X 10.5: download-using-manifests uses Perl,
# and Perl links against Darwin's libutil.dylib (in /usr/lib), but
# when running "make check", the libtool wrapper script around the Nix

View file

@ -40,7 +40,7 @@ for i in lang/eval-okay-*.nix; do
if test -e lang/$i.flags; then
flags=$(cat lang/$i.flags)
fi
if ! NIX_PATH=lang/dir3:lang/dir4 nix-instantiate $flags --eval-only --strict lang/$i.nix > lang/$i.out; then
if ! NIX_PATH=lang/dir3:lang/dir4:$NIX_PATH nix-instantiate $flags --eval-only --strict lang/$i.nix > lang/$i.out; then
echo "FAIL: $i should evaluate"
fail=1
elif ! diff lang/$i.out lang/$i.exp; then

View file

@ -1,3 +1,3 @@
assert builtins.pathExists <nix/buildenv>;
assert builtins.pathExists <nix/buildenv.nix>;
import <a.nix> + import <b.nix> + import <c.nix> + import <dir5/c.nix>

43
tests/nix-channel.sh Normal file
View file

@ -0,0 +1,43 @@
source common.sh
clearProfiles
clearManifests
rm -f $TEST_ROOT/.nix-channels
# Override location of ~/.nix-channels.
export HOME=$TEST_ROOT
# Test add/list/remove.
nix-channel --add http://foo/bar
nix-channel --list | grep -q http://foo/bar
nix-channel --remove http://foo/bar
[ -e $TEST_ROOT/.nix-channels ]
[ "$(cat $TEST_ROOT/.nix-channels)" = '' ]
# Create a channel.
rm -rf $TEST_ROOT/foo
mkdir -p $TEST_ROOT/foo
nix-push --copy $TEST_ROOT/foo $TEST_ROOT/foo/MANIFEST $(nix-store -r $(nix-instantiate dependencies.nix))
rm -rf $TEST_ROOT/nixexprs
mkdir -p $TEST_ROOT/nixexprs
cp config.nix dependencies.nix dependencies.builder*.sh $TEST_ROOT/nixexprs/
ln -s dependencies.nix $TEST_ROOT/nixexprs/default.nix
(cd $TEST_ROOT && tar cvf - nixexprs) | bzip2 > $TEST_ROOT/foo/nixexprs.tar.bz2
# Test the update action.
nix-channel --add file://$TEST_ROOT/foo
nix-channel --update
# Do a query.
nix-env -qa \* --meta --xml --out-path > $TEST_ROOT/meta.xml
if [ "$xmllint" != false ]; then
$xmllint --noout $TEST_ROOT/meta.xml || fail "malformed XML"
fi
grep -q 'meta.*description.*Random test package' $TEST_ROOT/meta.xml
grep -q 'item.*attrPath="foo".*name="dependencies"' $TEST_ROOT/meta.xml
# Do an install.
nix-env -i dependencies
[ -e $TEST_ROOT/var/nix/profiles/default/foobar ]

View file

@ -36,7 +36,7 @@ nix-env -p $profiles/test -q '*' | grep -q foo-2.0pre1
test "$($profiles/test/bin/foo)" = "foo-2.0pre1"
# Upgrade "foo": should install foo-2.0.
NIX_PATH=nixpkgs=./user-envs.nix nix-env -p $profiles/test -f '<nixpkgs>' -u foo
NIX_PATH=nixpkgs=./user-envs.nix:$NIX_PATH nix-env -p $profiles/test -f '<nixpkgs>' -u foo
# Query installed: should contain foo-2.0 now.
test "$(nix-env -p $profiles/test -q '*' | wc -l)" -eq 1