From b0c7105a7f08389e012ce4882b38030df54cf474 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Thu, 10 Aug 2017 01:06:56 +0100 Subject: added more tests -- commits without scorsh-commands --- commits.go | 4 +-- test/create_empty_commits.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++ test/scorsh_functions | 13 +++++++++- test/test_spec | 11 ++++---- workers.go | 2 +- 5 files changed, 81 insertions(+), 9 deletions(-) create mode 100755 test/create_empty_commits.sh diff --git a/commits.go b/commits.go index 7725b2f..8269e85 100644 --- a/commits.go +++ b/commits.go @@ -146,7 +146,7 @@ func walkCommits(msg spoolMsg, w *worker) error { oldrevCommit, err := repo.LookupCommit(oldRevOid) if err != nil { fmt.Fprintf(os.Stderr, "Commit: %s does not exist\n", oldRev) - return SCORSHerr(errNoCommit) + return fmt.Errorf("%s: %s", SCORSHerr(errNoCommit), oldRev) } newRevOid, _ := git.NewOid(newRev) @@ -154,7 +154,7 @@ func walkCommits(msg spoolMsg, w *worker) error { newrevCommit, err := repo.LookupCommit(newRevOid) if err != nil { fmt.Fprintf(os.Stderr, "Commit: %s does not exist\n", newRev) - return SCORSHerr(errNoCommit) + return fmt.Errorf("%s: %s", SCORSHerr(errNoCommit), newRev) } curCommit := newrevCommit diff --git a/test/create_empty_commits.sh b/test/create_empty_commits.sh new file mode 100755 index 0000000..6f6a7f8 --- /dev/null +++ b/test/create_empty_commits.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +. ./scorsh_functions + +LINE_FILE=.line_file +cd ${SCORSH_APP} +LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1) +echo ${LAST_LINE} > ${LINE_FILE} +cd - > /dev/null + +### create an empty git commit without a scorsh-command the first +### commit will be ignored by scorsh for the moment, due to an error +### on the 0000...0000 oid +cd ${LOCAL_REPO} +git commit --allow-empty -m "this is an empty commit" +check "[ $? -eq 0 ]" $0 "create_first_commit" + +LAST_LINE=$(cat ${SCORSH_APP}/${LINE_FILE}) +git push + +cd - > /dev/null + +cd ${SCORSH_APP} +ret=$(tail -n +${LAST_LINE} scorsh.log | grep -c "Invalid commit ID") +sleep 1 +LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1) +echo ${LAST_LINE} > ${LINE_FILE} +cd - > /dev/null + +check "[ \"$ret\" = \"2\" ] " $0 "check_first_commit" + +### create two more commits without scorsh-commands +cd ${LOCAL_REPO} +git commit --allow-empty -m "second commit" +check "[ $? -eq 0 ]" $0 "create_second_commit" +git commit --allow-empty -m "third commit" +check "[ $? -eq 0 ]" $0 "create_third_commit" + +LAST_LINE=$(cat ${SCORSH_APP}/${LINE_FILE}) +commits=$(git log | grep "^commit " | cut -d " " -f 2 | head -2) +message_id=$(git push | grep "remote: id:" | cut -d " " -f 3) +cd - > /dev/null + +cd ${SCORSH_APP} +sleep 1 +for c in ${commits}; do + ret=$(tail -n +${LAST_LINE} scorsh.log | grep -c "error parsing commit ${c}: no SCORSH message found") + check "[ \"$ret\" = \"2\" ]" $0 "process_empty_commit" +done + +LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1) +echo ${LAST_LINE} > ${LINE_FILE} +cd - > /dev/null + + +##check_fatal "[ 1 -eq 0 ]" $0 "abort_on_purpose" + +rm ${LINE_FILE} + +return_results diff --git a/test/scorsh_functions b/test/scorsh_functions index 7f4fb1b..e007f82 100644 --- a/test/scorsh_functions +++ b/test/scorsh_functions @@ -12,6 +12,17 @@ failed(){ FAILED_TESTS=$((${FAILED_TESTS} + 1)) } +## func +fatal(){ + + TEST_NAME="$1" + TEST_SECTION="$2" + + echo "[\033[7;31mFATAL\033[0m] -- ${TEST_NAME}:${TEST_SECTION} " + FAILED_TESTS=$((${FAILED_TESTS} + 1)) +} + + ## func passed(){ @@ -52,7 +63,7 @@ check_fatal(){ if $(echo ${EXPR}) ; then passed ${TEST_NAME} ${TEST_SECTION} else - failed ${TEST_NAME} ${TEST_SECTION} + fatal ${TEST_NAME} ${TEST_SECTION} echo "Fatal test failed -- Aborting" exit 1 fi diff --git a/test/test_spec b/test/test_spec index f085e9f..840fd44 100644 --- a/test/test_spec +++ b/test/test_spec @@ -20,11 +20,12 @@ LOCAL_REPO=$(realpath "./testbed_repo") TESTS="\ -./create_testbed.sh \ -./configure_app.sh \ -./start_scorsh.sh \ -./stop_scorsh.sh \ -./destroy_testbed.sh \ +./create_testbed.sh \ +./configure_app.sh \ +./start_scorsh.sh \ +./create_empty_commits.sh \ +./stop_scorsh.sh \ +./destroy_testbed.sh \ " ##./destroy_testbed.sh \ diff --git a/workers.go b/workers.go index 0d2ccd8..711d40e 100644 --- a/workers.go +++ b/workers.go @@ -106,7 +106,7 @@ func runWorker(w *worker) { // process message err := walkCommits(msg, w) if err != nil { - log.Printf("[worker: %s] error in walk_commits: %s", err) + log.Printf("[worker: %s] error in walk_commits: %s", w.Name, err) } w.StatusChan <- msg debug.log("[worker: %s] Sent message back: %s", w.Name, msg) -- cgit v1.2.3