Update forgehook tests for new folder hierarchy

This commit is contained in:
southerntofu 2022-02-24 00:13:28 +01:00
parent e6830b3eed
commit 66332ae7b1
6 changed files with 47 additions and 23 deletions

View File

@ -27,7 +27,7 @@ function testVariousScenarios() {
cd forgecheck
testOrError "bin/test.sh from specs/forgecheck folder" ../../bin/test.sh
testOrError "forgecheck/test.sh from specs/forgecheck folder with implicit ../../bin/cli" ./test.sh
testOrError "forgecheck/test.sh from specs/forgecheck folder with explicit result from ../../bin.cli" ./test.sh "$(../../bin/cli)"
testOrError "forgecheck/test.sh from specs/forgecheck folder with explicit result from ../../bin/cli" ./test.sh "$(../../bin/cli)"
cd tests
testOrError "bin/test.sh from specs/forgecheck/tests" ../../../bin/test.sh
testOrError "forgecheck/test.sh from specs/forgecheck/tests" ../test.sh

View File

@ -4,14 +4,14 @@ SCRIPTDIR="$(dirname "$0")"
ORIGDIR="$(pwd)"
cd "$SCRIPTDIR"
source tests/helper.bash
export FORGEHOOK="$(pwd)/tests/mock-forgehook.sh"
source ../shared/helper.bash
export FORGEHOOK="$(pwd)/../shared/mock-forgehook.sh"
# TODO: FORGEHOOKNOTIFY is currently unused
export FORGEHOOKNOTIFY=/bin/true
if [ -z "$1" ]; then
output="$(findBin "$ORIGDIR"/bin/server ../bin/server)"
output="$(findBin "$ORIGDIR"/bin/server ../bin/server ../../bin/server)"
if [ $? -eq 0 ]; then
if [[ "$(echo "$output" | wc -l)" == "1" ]]; then
export FIND_SERVER="$output"
@ -43,7 +43,8 @@ if [ -z "$2" ]; then
# Or try build script from ../whck folder (called from this submodule)
output="$(findBin \
whck/bin/cli \
../whck/bin/cli
../whck/bin/cli \
../../whck/bin/cli
)"
if [ $? -eq 0 ]; then
if [[ "$(echo "$output" | wc -l)" == "1" ]]; then
@ -72,7 +73,7 @@ else
fi
bats tests/web/*.bats
bats tests/*.bats
status=$?
cd "$ORIGDIR"

View File

@ -2,18 +2,36 @@
# If you give first argument it will be a path to already cloned endpoint
function testOrError() {
message="$1"
shift
bin="$1"
shift
output="$("$bin" "$@" 2>&1)"
if [ ! $? -eq 0 ]; then
echo "FAILURE: "$message""
echo "$output" | sed 's/^/ /g'
return 1
fi
echo "SUCCESS: "$message""
}
# TODO: save exit codes of various tests so we can know how many failed
function testVariousScenarios() {
echo "Running various tests from "$(pwd)""
./bin/test.sh || echo "ERROR running from repo"
cd spec
./test_web.sh || echo "ERROR test_web.sh failed with implicit ../bin/server"
./test_web.sh "$(../bin/server)" || echo "ERROR test_cli with explicit result from ../bin/server"
../bin/test.sh || echo "ERROR bin/test.sh failed called from spec submodule"
testOrError "bin/test.sh running from repo" bin/test.sh
cd specs
testOrError "forgehook/test.sh with implicit ../bin/server" forgehook/test.sh
testOrError "forgehook/test.sh with explicit result from ../bin/server" forgehook/test.sh "$(../bin/server)"
testOrError "test.sh called from specs submodule" ../bin/test.sh
cd forgehook
testOrError "bin/test.sh from specs/forgehook folder" ../../bin/test.sh
testOrError "forgehook/test.sh from specs/forgehook folder with implicit ../../bin/server" ./test.sh
testOrError "forgehook/test.sh from specs/forgehook folder with explicit result from ../../bin/server" ./test.sh "$(../../bin/server)"
cd tests
../../bin/test.sh || echo "ERROR bin/test.sh failed from spec/tests folder"
../test_web.sh || echo "ERROR test_web.sh failed from spec/tests folder with implicit ../../bin/server"
../test_web.sh "$(../../bin/server)" || echo "ERROR test_web.sh failed from spec/tests folder with explicit result from ../../bin/server"
testOrError "bin/test.sh from specs/forgehook/tests" ../../../bin/test.sh
testOrError "forgehook/test.sh from specs/forgehook/tests" ../test.sh
testOrError "forgehook/test.sh from specs/forgehook/tests folder with explicit result from ../../../bin/server" ../test.sh "$(../../../bin/server)"
}
ORIGDIR="$(pwd)"
@ -24,6 +42,9 @@ if [ -z "$1" ]; then
elif [ -x ../bin/server ]; then
cd ..
testVariousScenarios
elif [ -x ../../bin/server ]; then
cd ../..
testVariousScenarios
else
TMPDIR="$(mktemp -d)"
cd "$TMPDIR"
@ -43,3 +64,5 @@ else
fi
cd "$ORIGDIR"

View File

@ -2,7 +2,7 @@
function setup {
# Load helper functions
load ../helper
load ../../shared/helper
# Which forgehook implementation to use?
if [ -z "$FORGEHOOK" ]; then FORGEHOOK="forgehook"; fi
port=$(find_free_port)
@ -30,7 +30,7 @@ function teardown {
@test "gitea: correct signature works" {
repo="https://tildegit.org/forge/hook.sh"
id="$(echo -n "$repo" | base64)"
webhook="$(gen_webhook ../gitea.json "$repo")"
webhook="$(gen_webhook ../../shared/gitea.json "$repo")"
secret="$($FORGEHOOK secret $repo)"
echo -n "$secret" > "$WHCK_DIR"/"$id"
sig="$(hash_hmac sha256 "$webhook" "$secret")"
@ -43,7 +43,7 @@ function teardown {
@test "gitea: incorrect signature fails" {
repo="https://tildegit.org/forge/hook.sh"
id="$(echo -n "$repo" | base64)"
webhook="$(gen_webhook ../gitea.json "$repo")"
webhook="$(gen_webhook ../../shared/gitea.json "$repo")"
# Calculate wrong signature
secret="$($FORGEHOOK secret $repo)"
echo -n "$secret" > "$WHCK_DIR"/"$id"

View File

@ -2,7 +2,7 @@
function setup {
# Load helper functions
load ../helper
load ../../shared/helper
# Which forgehook implementation to use?
if [ -z "$FORGEHOOK" ]; then FORGEHOOK="forgehook"; fi
port=$(find_free_port)
@ -30,7 +30,7 @@ function teardown {
@test "github: correct signature works" {
repo="https://tildegit.org/forge/hook.sh"
id="$(echo -n "$repo" | base64)"
webhook="$(gen_webhook ../github.json "$repo")"
webhook="$(gen_webhook ../../shared/github.json "$repo")"
secret="$($FORGEHOOK secret $repo)"
echo -n "$secret" > "$WHCK_DIR"/"$id"
sig="$(hash_hmac sha256 "$webhook" "$secret")"
@ -43,7 +43,7 @@ function teardown {
@test "github: incorrect signature fails" {
repo="https://tildegit.org/forge/hook.sh"
id="$(echo -n "$repo" | base64)"
webhook="$(gen_webhook ../github.json "$repo")"
webhook="$(gen_webhook ../../shared/github.json "$repo")"
# Calculate wrong signature
secret="$($FORGEHOOK secret $repo)"
echo -n "$secret" > "$WHCK_DIR"/"$id"

View File

@ -2,7 +2,7 @@
function setup {
# Load helper functions
load ../helper
load ../../shared/helper
# Which forgehook implementation to use?
if [ -z "$FORGEHOOK" ]; then FORGEHOOK="forgehook"; fi
port=$(find_free_port)
@ -30,7 +30,7 @@ function teardown {
@test "gitlab: correct signature works" {
repo="https://tildegit.org/forge/hook.sh"
id="$(echo -n "$repo" | base64)"
webhook="$(gen_webhook ../gitlab.json "$repo")"
webhook="$(gen_webhook ../../shared/gitlab.json "$repo")"
secret="$($FORGEHOOK secret $repo)"
echo -n "$secret" > "$WHCK_DIR"/"$id"
sig="$secret"
@ -43,7 +43,7 @@ function teardown {
@test "gitlab: incorrect signature fails" {
repo="https://tildegit.org/forge/hook.sh"
id="$(echo -n "$repo" | base64)"
webhook="$(gen_webhook ../gitlab.json "$repo")"
webhook="$(gen_webhook ../../shared/gitlab.json "$repo")"
# Calculate wrong signature
secret="$($FORGEHOOK secret $repo)"
echo -n "$secret" > "$WHCK_DIR"/"$id"