Replace "make check" with "make installcheck"
Ensuring that the tests work from the build tree requires a growing number of nasty hacks. The tests also don't verify that the installed Nix actually works. Thus, the tests now require "make install" to have been run.
This commit is contained in:
parent
4b23900ff1
commit
ea402a255f
8 changed files with 25 additions and 46 deletions
12
release.nix
12
release.nix
|
@ -79,6 +79,12 @@ let
|
|||
--with-dbd-sqlite=${perlPackages.DBDSQLite}/lib/perl5/site_perl
|
||||
--enable-gc
|
||||
'';
|
||||
|
||||
installCheckPhase = ''
|
||||
make installcheck
|
||||
'';
|
||||
|
||||
postPhases = [ "installCheckPhase" ];
|
||||
};
|
||||
|
||||
|
||||
|
@ -101,6 +107,12 @@ let
|
|||
--with-dbd-sqlite=${perlPackages.DBDSQLite}/lib/perl5/site_perl
|
||||
'';
|
||||
|
||||
installCheckPhase = ''
|
||||
make installcheck
|
||||
'';
|
||||
|
||||
postPhases = [ "installCheckPhase" ];
|
||||
|
||||
lcovFilter = [ "*/boost/*" "*-tab.*" ];
|
||||
|
||||
# We call `dot', and even though we just use it to
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
-e "s^@extra1\@^$(extra1)^g" \
|
||||
-e "s^@prefix\@^$(prefix)^g" \
|
||||
-e "s^@bindir\@^$(bindir)^g" \
|
||||
-e "s^@datadir\@^$(datadir)^g" \
|
||||
-e "s^@sysconfdir\@^$(sysconfdir)^g" \
|
||||
-e "s^@localstatedir\@^$(localstatedir)^g" \
|
||||
-e "s^@datadir\@^$(datadir)^g" \
|
||||
|
|
|
@ -40,3 +40,9 @@ EXTRA_DIST = $(TESTS) \
|
|||
import-derivation.nix \
|
||||
$(wildcard lang/*.nix) $(wildcard lang/*.exp) $(wildcard lang/*.exp.xml) $(wildcard lang/*.flags) $(wildcard lang/dir*/*.nix) \
|
||||
common.sh.in
|
||||
|
||||
# Hacky.
|
||||
check-am:
|
||||
@echo "Warning: Nix has no 'make check'. Please install Nix and run 'make installcheck' instead."
|
||||
|
||||
installcheck: check-TESTS
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
set -e
|
||||
|
||||
export top_srcdir="@abs_top_srcdir@"
|
||||
export top_builddir="@abs_top_builddir@"
|
||||
|
||||
export TOP=$(pwd)/..
|
||||
datadir="@datadir@"
|
||||
|
||||
export TEST_ROOT=$(pwd)/test-tmp
|
||||
export NIX_STORE_DIR
|
||||
|
@ -17,18 +14,12 @@ export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
|
|||
export NIX_STATE_DIR=$TEST_ROOT/var/nix
|
||||
export NIX_DB_DIR=$TEST_ROOT/db
|
||||
export NIX_CONF_DIR=$TEST_ROOT/etc
|
||||
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 PATH=@bindir@:$PATH
|
||||
|
||||
export NIX_BUILD_HOOK=
|
||||
export PERL=perl
|
||||
export PERL5LIB=$TOP/perl/lib:$PERL5LIB
|
||||
export dot=@dot@
|
||||
export xmllint="@xmllint@"
|
||||
export xmlflags="@xmlflags@"
|
||||
|
|
|
@ -26,9 +26,7 @@ echo PID=$child
|
|||
nix-env -p $profiles/test -e gc-runtime
|
||||
nix-env -p $profiles/test --delete-generations old
|
||||
|
||||
cp $TOP/scripts/find-runtime-roots.pl $TEST_ROOT/foo.pl
|
||||
chmod +x $TEST_ROOT/foo.pl
|
||||
NIX_ROOT_FINDER=$TEST_ROOT/foo.pl nix-store --gc
|
||||
nix-store --gc
|
||||
|
||||
kill -- -$child
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ chmod +x $TEST_ROOT/hash-path/hello
|
|||
try2 md5 "20f3ffe011d4cfa7d72bfabef7882836"
|
||||
|
||||
# Mtime and other bits don't.
|
||||
touch -r $TOP $TEST_ROOT/hash-path/hello
|
||||
touch -r . $TEST_ROOT/hash-path/hello
|
||||
chmod 744 $TEST_ROOT/hash-path/hello
|
||||
try2 md5 "20f3ffe011d4cfa7d72bfabef7882836"
|
||||
|
||||
|
|
|
@ -16,20 +16,6 @@ mkdir "$NIX_STATE_DIR"
|
|||
mkdir "$NIX_DB_DIR"
|
||||
mkdir "$NIX_CONF_DIR"
|
||||
|
||||
mkdir $NIX_BIN_DIR
|
||||
ln -s $TOP/src/nix-store/nix-store $NIX_BIN_DIR/
|
||||
ln -s $TOP/src/nix-instantiate/nix-instantiate $NIX_BIN_DIR/
|
||||
ln -s $TOP/src/nix-hash/nix-hash $NIX_BIN_DIR/
|
||||
ln -s $TOP/src/nix-env/nix-env $NIX_BIN_DIR/
|
||||
ln -s $TOP/src/nix-worker/nix-worker $NIX_BIN_DIR/
|
||||
ln -s $TOP/src/bsdiff-*/bsdiff $NIX_BIN_DIR/
|
||||
ln -s $TOP/src/bsdiff-*/bspatch $NIX_BIN_DIR/
|
||||
ln -s $TOP/scripts/nix-prefetch-url $NIX_BIN_DIR/
|
||||
ln -s $TOP/scripts/nix-build $NIX_BIN_DIR/
|
||||
ln -s $TOP/scripts/nix-pull $NIX_BIN_DIR/
|
||||
mkdir -p $NIX_BIN_DIR/nix/substituters
|
||||
ln -s $TOP/scripts/copy-from-other-stores.pl $NIX_BIN_DIR/nix/substituters
|
||||
|
||||
cat > "$NIX_CONF_DIR"/nix.conf <<EOF
|
||||
gc-keep-outputs = false
|
||||
gc-keep-derivations = false
|
||||
|
@ -37,21 +23,6 @@ env-keep-derivations = false
|
|||
fsync-metadata = false
|
||||
EOF
|
||||
|
||||
# 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
|
||||
# binaries sets DYLD_LIBRARY_PATH so that Perl finds Nix's (completely
|
||||
# different) libutil --- so it barfs. So generate a shell wrapper
|
||||
# around download-using-manifests that clears DYLD_LIBRARY_PATH.
|
||||
cat > $NIX_BIN_DIR/nix/substituters/download-using-manifests.pl <<EOF
|
||||
#! $SHELL -e
|
||||
export DYLD_LIBRARY_PATH=
|
||||
exec "$top_builddir/libtool" --mode=execute \
|
||||
-dlopen "$top_builddir/perl/libNixStore.la" \
|
||||
"$top_builddir/scripts/download-using-manifests.pl" "\$@"
|
||||
EOF
|
||||
chmod +x $NIX_BIN_DIR/nix/substituters/download-using-manifests.pl
|
||||
|
||||
# Initialise the database.
|
||||
nix-store --init
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ set -x
|
|||
nix-build --log-type escapes -vv dependencies.nix 2> $TEST_ROOT/log.esc
|
||||
|
||||
# Convert it to an XML representation.
|
||||
$TOP/src/nix-log2xml/nix-log2xml < $TEST_ROOT/log.esc > $TEST_ROOT/log.xml
|
||||
nix-log2xml < $TEST_ROOT/log.esc > $TEST_ROOT/log.xml
|
||||
|
||||
# Is this well-formed XML?
|
||||
if test "$xmllint" != "false"; then
|
||||
|
@ -16,7 +16,7 @@ fi
|
|||
|
||||
# Convert to HTML.
|
||||
if test "$xsltproc" != "false"; then
|
||||
(cd $TOP/src/nix-log2xml && $xsltproc mark-errors.xsl - | $xsltproc log2html.xsl -) < $TEST_ROOT/log.xml > $TEST_ROOT/log.html
|
||||
(cd $datadir/nix/log2html && $xsltproc mark-errors.xsl - | $xsltproc log2html.xsl -) < $TEST_ROOT/log.xml > $TEST_ROOT/log.html
|
||||
# Ideally we would check that the generated HTML is valid...
|
||||
|
||||
# A few checks...
|
||||
|
|
Loading…
Reference in a new issue