From: Scott Worley Date: Fri, 22 May 2020 23:57:54 +0000 (-0700) Subject: More tests: pin-twice, reject-nonancestor X-Git-Tag: 1.3~13 X-Git-Url: http://git.scottworley.com/pinch/commitdiff_plain/db3da89c7a9f14eec5aa400acfd3c888daca8385?ds=sidebyside;hp=001b650db2f8a9e141634d63fa89250c1088f3c2 More tests: pin-twice, reject-nonancestor --- diff --git a/tests/pin-twice.sh b/tests/pin-twice.sh new file mode 100755 index 0000000..b17af2c --- /dev/null +++ b/tests/pin-twice.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +set -e + +repo_dir="`mktemp -d`" +repo="$repo_dir/repo" +git init "$repo" +( + cd "$repo" + echo Contents > test-file + git add test-file + git commit -m 'Commit message' +) + +conf="`mktemp`" +cat > "$conf" < other-file + git add other-file + git commit -m 'Second commit message' +) + +python3 ./pinch.py pin "$conf" + +actual_env_command=`python3 ./pinch.py update --dry-run "$conf"` + +rm -rf "$repo_dir" "$conf" + +expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\'''\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "foo"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\''$' + +if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then + echo PASS +else + echo "Output: $actual_env_command" + echo "does not match RE: $expected_env_command_RE" + exit 1 +fi diff --git a/tests/reject-nonancestor.sh b/tests/reject-nonancestor.sh new file mode 100755 index 0000000..b8e944a --- /dev/null +++ b/tests/reject-nonancestor.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +repo_dir="`mktemp -d`" +repo="$repo_dir/repo" +git init "$repo" +( + cd "$repo" + echo Contents > test-file + git add test-file + git commit -m 'Commit message' +) + +conf="`mktemp`" +cat > "$conf" < other-file + git add other-file + git commit --amend -m 'Amended commit message' +) + +if python3 ./pinch.py pin "$conf";then + echo "FAIL: non-ancestor commit should be rejected" + exit 1 +else + echo PASS +fi + +rm -rf "$repo_dir" "$conf"