forked from cmcculloh/GitScripts
-
Notifications
You must be signed in to change notification settings - Fork 1
/
test_runner.sh
executable file
·76 lines (56 loc) · 1.31 KB
/
test_runner.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
tests_path="$(pwd)/tests"
runner_path="$(pwd)/lib/shunit2"
export runner_cmd="${runner_path}/shunit2"
if [ ! -f "${runner_cmd}" ]; then
echo "ERROR: Could not find shunit at ${runner_cmd}";
exit 1
fi
source ./SOURCEME
goto() {
pushd "$@" > /dev/null
}
goback() {
popd > /dev/null
}
getTestNameFromFile() {
local input="$@"
local base_name="$(basename "${input}")"
echo "${base_name%%\.sh}"
}
header() {
echo
echo "/-------------------------------------------------------/"
echo "| Test: ${@}"
echo "-------------------------------------------------------/"
}
init_repo_with_main() {
git init --initial-branch=main > /dev/null
}
core=(
)
utility=(
'gh_is_repo'
'gh_parse_git_branch'
# 'gh_bad_usage'
)
export -f goto goback init_repo_with_main
# maybe messes up if spaces in path? meh.
for tst in ${utility[@]}; do
test_file="${tests_path}/utility/${tst}.sh"
if [[ -e "${test_file}" ]]; then
header "$( getTestNameFromFile "${test_file}" )"
"$test_file"
else
echo "ERROR: Cannot find test file: ${test_file}"
fi
done
for tst in ${core[@]}; do
test_file="${tests_path}/core/${tst}.sh"
if [[ -e "${test_file}" ]]; then
header "$( getTestNameFromFile "${test_file}" )"
"$test_file"
else
echo "ERROR: Cannot find test file: ${test_file}"
fi
done