mirror of
https://github.com/NixOS/nix
synced 2025-07-06 21:41:48 +02:00
* Finally, a test for the binary patch functionality.
This commit is contained in:
parent
bf658f016f
commit
a07c68f05e
5 changed files with 56 additions and 3 deletions
33
tests/binary-patching.sh
Normal file
33
tests/binary-patching.sh
Normal file
|
@ -0,0 +1,33 @@
|
|||
source common.sh
|
||||
|
||||
mkdir -p $TEST_ROOT/cache2 $TEST_ROOT/patches
|
||||
|
||||
RESULT=$TEST_ROOT/result
|
||||
|
||||
# Build version 1 and 2 of the "foo" package.
|
||||
$NIX_BIN_DIR/nix-push --copy $TEST_ROOT/cache2 $TEST_ROOT/manifest1 \
|
||||
$($nixbuild -o $RESULT binary-patching.nix --arg version 1)
|
||||
|
||||
out2=$($nixbuild -o $RESULT binary-patching.nix --arg version 2)
|
||||
$NIX_BIN_DIR/nix-push --copy $TEST_ROOT/cache2 $TEST_ROOT/manifest2 $out2
|
||||
rm $RESULT
|
||||
|
||||
# Generate a binary patch.
|
||||
$NIX_BIN_DIR/generate-patches.pl $TEST_ROOT/cache2 $TEST_ROOT/patches \
|
||||
file://$TEST_ROOT/patches $TEST_ROOT/manifest1 $TEST_ROOT/manifest2
|
||||
|
||||
grep -q "patch {" $TEST_ROOT/manifest2
|
||||
|
||||
# Get rid of version 2.
|
||||
$nixstore --delete $out2
|
||||
! test -e $out2
|
||||
|
||||
# Pull the manifest containing the patch.
|
||||
clearManifests
|
||||
$NIX_BIN_DIR/nix-pull file://$TEST_ROOT/manifest2
|
||||
|
||||
# To make sure that we're using the patch, delete the full NARs.
|
||||
rm -f $TEST_ROOT/cache2/*
|
||||
|
||||
# Now rebuild it. This should use the patch generated above.
|
||||
$nixbuild -o $RESULT binary-patching.nix --arg version 2
|
Loading…
Add table
Add a link
Reference in a new issue