From 5af50dab82350901fc6de2eacbb065c88ee9fde8 Mon Sep 17 00:00:00 2001 From: Lubomír Sedlář Date: Dec 12 2016 11:34:46 +0000 Subject: Add a basic set of tests The test script modifies `$PATH` to point to the tested script first, and also adds a directory with mock scripts replacing `curl` and hash verification commands with `echo`. This way when the tests run `fedpkg sources`, the executed commands are just printed to stdout, where we can capture them and check they are as expected. The tests cover three scenarios now: * MD5 hash with old style `sources` file * MD5 hash with BSD style `sources` file * SHA512 hash with BSD style `sources` file To run the tests simply execute the `run-tests.sh` script. Signed-off-by: Lubomír Sedlář --- diff --git a/tests/bin/curl b/tests/bin/curl new file mode 100755 index 0000000..17e1a4b --- /dev/null +++ b/tests/bin/curl @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "$(basename "$0")" "$@" diff --git a/tests/bin/md5sum b/tests/bin/md5sum new file mode 100755 index 0000000..17e1a4b --- /dev/null +++ b/tests/bin/md5sum @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "$(basename "$0")" "$@" diff --git a/tests/bin/sha512sum b/tests/bin/sha512sum new file mode 100755 index 0000000..17e1a4b --- /dev/null +++ b/tests/bin/sha512sum @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "$(basename "$0")" "$@" diff --git a/tests/run-tests.sh b/tests/run-tests.sh new file mode 100755 index 0000000..69238eb --- /dev/null +++ b/tests/run-tests.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +set -e + +HERE=$(pwd)/$(dirname "$0") +PATH="$HERE/../bin:$HERE/bin:$PATH" +export PATH +RET=0 + +for t in $HERE/test_*; do + output=$(mktemp) + diff=$(mktemp) + cd "$t" + fedpkg sources >"$output" + if diff -u expected "$output" >"$diff"; then + printf "%-40s 0K\n" "$(basename "$t")" + else + printf "%-40s FAIL\n" "$(basename "$t")" + echo "DIFF:" + cat "$diff" + echo "" + RET=$((RET + 1)) + fi + cd "$HERE" + rm -f "$output" "$diff" +done +exit $RET diff --git a/tests/test_md5_bsd/expected b/tests/test_md5_bsd/expected new file mode 100644 index 0000000..399b56f --- /dev/null +++ b/tests/test_md5_bsd/expected @@ -0,0 +1,2 @@ +curl -L -H Pragma: -o ./github-linguist-4.8.18.gem -R -S --fail https://src.fedoraproject.org/repo/pkgs/test_md5_bsd/github-linguist-4.8.18.gem/md5/192de5f33807d72e573c54f61892fc69/github-linguist-4.8.18.gem +md5sum -c sources diff --git a/tests/test_md5_bsd/sources b/tests/test_md5_bsd/sources new file mode 100644 index 0000000..d2add2c --- /dev/null +++ b/tests/test_md5_bsd/sources @@ -0,0 +1 @@ +MD5 (github-linguist-4.8.18.gem) = 192de5f33807d72e573c54f61892fc69 diff --git a/tests/test_md5_old/expected b/tests/test_md5_old/expected new file mode 100644 index 0000000..51894c0 --- /dev/null +++ b/tests/test_md5_old/expected @@ -0,0 +1,2 @@ +curl -L -H Pragma: -o ./entr-3.6.tar.gz -R -S --fail https://src.fedoraproject.org/repo/pkgs/test_md5_old/entr-3.6.tar.gz/072eed7153296a8fae6ebdedefed9fd4/entr-3.6.tar.gz +md5sum -c sources diff --git a/tests/test_md5_old/sources b/tests/test_md5_old/sources new file mode 100644 index 0000000..06c1d33 --- /dev/null +++ b/tests/test_md5_old/sources @@ -0,0 +1 @@ +072eed7153296a8fae6ebdedefed9fd4 entr-3.6.tar.gz diff --git a/tests/test_sha512_bsd/expected b/tests/test_sha512_bsd/expected new file mode 100644 index 0000000..1bf663e --- /dev/null +++ b/tests/test_sha512_bsd/expected @@ -0,0 +1,2 @@ +curl -L -H Pragma: -o ./github-linguist-4.8.18.gem -R -S --fail https://src.fedoraproject.org/repo/pkgs/test_sha512_bsd/github-linguist-4.8.18.gem/sha512/d556ffe0062bc2c745c46e94929eab18c79fd221ffc1dd0c0ea5868428bd130d7b15eec618e9c3940b50c27559923911135770792864f3330a606132dc8819c0/github-linguist-4.8.18.gem +sha512sum -c sources diff --git a/tests/test_sha512_bsd/sources b/tests/test_sha512_bsd/sources new file mode 100644 index 0000000..3b00ce4 --- /dev/null +++ b/tests/test_sha512_bsd/sources @@ -0,0 +1 @@ +SHA512 (github-linguist-4.8.18.gem) = d556ffe0062bc2c745c46e94929eab18c79fd221ffc1dd0c0ea5868428bd130d7b15eec618e9c3940b50c27559923911135770792864f3330a606132dc8819c0