Skip to content

Commit 49c2274

Browse files
committed
Update sourcehawk to 0.4.4, improve tests
1 parent 8d1d79d commit 49c2274

3 files changed

Lines changed: 44 additions & 13 deletions

File tree

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Github Docs: https://docs.github.com/en/free-pro-team@latest/actions/creating-actions/dockerfile-support-for-github-actions
22

33
# Small Linux based image with sourcehawk installed
4-
FROM optumopensource/sourcehawk:0.4.3
4+
FROM optumopensource/sourcehawk:0.4.4
55

66
# Need root to write
77
USER root
@@ -12,5 +12,5 @@ WORKDIR /github/workspace
1212
# Copy Entrypoint script into image
1313
COPY entrypoint.sh /entrypoint.sh
1414

15-
# Execute the entrypoint
15+
# Execute the entrypointb
1616
ENTRYPOINT ["/entrypoint.sh"]

test.sh

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,30 @@ TESTS=( "scan-passed" "scan-failed" "scan-error" "scan-custom" "scan-warning" "s
1313
PASSED=()
1414
FAILED=()
1515

16-
echo "Running Tests"
16+
echo " "
17+
echo -e "\e[1mRunning Github Action Tests\e[0m"
1718
echo "----------------------------------------"
1819

1920
# Execute Tests
2021
for test in "${TESTS[@]}"; do
2122

22-
echo "[TEST]: ${test}"
23+
echo -e "\e[36m${test}\e[0m"
2324
echo "----------------------------------------"
2425

2526
if ./tests/"${test}".sh "$ROOT" "$TEST_IMAGE"; then
26-
echo " >> PASSED"
27+
echo -e " >> \e[92mPASSED\e[0m"
2728
PASSED+=("${test}")
2829
else
29-
echo " >> [ERROR] FAILED"
30+
echo -e " >> \e[31mFAILED\e[0m"
3031
FAILED+=("${test}")
3132
fi
3233
echo "----------------------------------------"
3334

3435
done
3536

36-
echo "Tests Completed"
37+
echo -e "\e[1mTests Completed\e[0m"
3738
echo -n " >> Result: "
38-
[ ${#FAILED[@]} -gt 0 ] && echo "FAILURE " || echo "SUCCESS"
39+
[ ${#FAILED[@]} -gt 0 ] && echo -e "\e[31mFAILURE\e[0m " || echo -e "\e[92mSUCCESS\e[0m"
3940
echo " >> Tests: $((${#PASSED[@]}+${#FAILED[@]})), Passed: ${#PASSED[@]}, Failed: ${#FAILED[@]}"
4041
echo "----------------------------------------"
4142
exit ${#FAILED[@]}

tests/scan-custom.sh

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,34 @@ else
1515
FAILED+=("$TEST_NAME")
1616
fi
1717

18-
TEST_NAME="SCAN_RESULT_MESSAGE"
19-
FIRST_LINE=$(echo "$OUTPUT" | head -1 | sed -e 's/[[:space:]]*$//')
20-
EXPECTED='{"passed":true,"errorCount":0,"warningCount":0,"messages":{},"formattedMessages":[],"passedWithNoWarnings":true}'
21-
if [[ "$FIRST_LINE" = "$EXPECTED" ]]; then
18+
TEST_NAME="SCAN_RESULT_JSON"
19+
OUTPUT_JSON="$(echo "$OUTPUT" | head -n -1 | sed 's/ *$//')"
20+
read -r -d '' EXPECTED_JSON << EOS
21+
{
22+
"passedWithNoWarnings" : true,
23+
"passed" : true,
24+
"warningCount" : 0,
25+
"messages" : { },
26+
"errorCount" : 0,
27+
"formattedMessages" : [ ]
28+
}
29+
EOS
30+
if [[ "$OUTPUT_JSON" == "$EXPECTED_JSON" ]]; then
2231
echo " > $TEST_NAME: Correct"
2332
PASSED+=("$TEST_NAME")
2433
else
25-
echo " > $TEST_NAME: Missing or incorrect, found: [$FIRST_LINE], expected: [$EXPECTED]"
34+
echo " > $TEST_NAME: Missing or incorrect, found: [$OUTPUT_JSON], expected: [$EXPECTED_JSON]"
35+
FAILED+=("$TEST_NAME")
36+
fi
37+
38+
TEST_NAME="GITHUB_ACTION_OUTPUT"
39+
LAST_LINE=$(echo "$OUTPUT" | tail -1 | sed -e 's/[[:space:]]*$//')
40+
EXPECTED="::set-output name=scan-passed::true"
41+
if [[ "$LAST_LINE" = "$EXPECTED" ]]; then
42+
echo " > $TEST_NAME: Correct"
43+
PASSED+=("$TEST_NAME")
44+
else
45+
echo " > $TEST_NAME: Missing scan-passed(true) output"
2646
FAILED+=("$TEST_NAME")
2747
fi
2848

@@ -35,5 +55,15 @@ else
3555
FAILED+=("$TEST_NAME")
3656
fi
3757

58+
TEST_NAME="RESULT_FILE_JSON"
59+
OUTPUT_JSON_FILE="$(sed 's/ *$//' "sourcehawk-scan-results.json")"
60+
if [[ "$OUTPUT_JSON_FILE" == "$EXPECTED_JSON" ]]; then
61+
echo " > $TEST_NAME: Correct"
62+
PASSED+=("$TEST_NAME")
63+
else
64+
echo " > $TEST_NAME: Incorrect result file JSON, found: [$OUTPUT_JSON_FILE], expected: [$EXPECTED_JSON]"
65+
FAILED+=("$TEST_NAME")
66+
fi
67+
3868
echo " >> Tests: $((${#PASSED[@]}+${#FAILED[@]})), Passed: ${#PASSED[@]}, Failed: ${#FAILED[@]}"
3969
exit ${#FAILED[@]}

0 commit comments

Comments
 (0)