File tree 4 files changed +181
-0
lines changed
4 files changed +181
-0
lines changed Original file line number Diff line number Diff line change
1
+ ../libexec/bats
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+ set -e
3
+
4
+ resolve_link () {
5
+ $( type -p greadlink readlink | head -1) " $1 "
6
+ }
7
+
8
+ abs_dirname () {
9
+ local cwd=" $( pwd) "
10
+ local path=" $1 "
11
+
12
+ while [ -n " $path " ]; do
13
+ cd " ${path%/* } "
14
+ local name=" ${path##*/ } "
15
+ path=" $( resolve_link " $name " || true) "
16
+ done
17
+
18
+ pwd
19
+ cd " $cwd "
20
+ }
21
+
22
+ expand_path () {
23
+ echo " $( abs_dirname " $( dirname " $1 " ) " ) /$( basename " $1 " ) "
24
+ }
25
+
26
+ BATS_LIBEXEC=" $( abs_dirname " $0 " ) "
27
+ export BATS_PREFIX=" $( abs_dirname " $BATS_LIBEXEC " ) "
28
+ export PATH=" $BATS_LIBEXEC :$PATH "
29
+
30
+ filename=" $1 "
31
+ if [ -z " $filename " ]; then
32
+ echo " usage: $0 <filename>" >&2
33
+ exit 1
34
+ else
35
+ shift
36
+ fi
37
+
38
+ exec bats-exec " $( expand_path " $filename " ) " " $@ "
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+ set -e
3
+
4
+ BATS_TEST_FILENAME=" $1 "
5
+ if [ -z " $BATS_TEST_FILENAME " ]; then
6
+ echo " usage: bats-exec <filename>" >&2
7
+ exit 1
8
+ elif [ ! -f " $BATS_TEST_FILENAME " ]; then
9
+ echo " bats: $BATS_TEST_FILENAME does not exist"
10
+ exit 1
11
+ else
12
+ shift
13
+ fi
14
+
15
+ BATS_TEST_DIRNAME=" $( dirname " $BATS_TEST_FILENAME " ) "
16
+ BATS_TEST_NAMES=()
17
+
18
+ load () {
19
+ source " $BATS_TEST_DIRNAME /$1 .bash"
20
+ }
21
+
22
+ abort () {
23
+ [ " $# " -eq 0 ] || echo error: " $@ " >&2
24
+ exit 1
25
+ }
26
+
27
+ setup () {
28
+ true
29
+ }
30
+
31
+ teardown () {
32
+ true
33
+ }
34
+
35
+ bats_test_info () {
36
+ BATS_TEST_DESCRIPTION=" $1 "
37
+ BATS_LINE_NUMBER=" $2 "
38
+ }
39
+
40
+ bats_test_function () {
41
+ local test_name=" $1 "
42
+ BATS_TEST_NAMES[" ${# BATS_TEST_NAMES[@]} " ]=" $test_name "
43
+ }
44
+
45
+ bats_exit_trap () {
46
+ if [ -z " $BATS_TEST_COMPLETED " ]; then
47
+ echo " not ok $BATS_TEST_NUMBER $BATS_TEST_DESCRIPTION "
48
+ exit 1
49
+ else
50
+ echo " ok $BATS_TEST_NUMBER $BATS_TEST_DESCRIPTION "
51
+ exit 0
52
+ fi
53
+ }
54
+
55
+ bats_perform_tests () {
56
+ echo " 1..$# "
57
+ test_number=1
58
+ for test_name in " $@ " ; do
59
+ " $0 " " $BATS_TEST_FILENAME " " $test_name " " $test_number " || true
60
+ test_number=$(( $test_number + 1 ))
61
+ done
62
+ }
63
+
64
+ bats_perform_test () {
65
+ BATS_TEST_NAME=" $1 "
66
+ if [ " $( type -t " $BATS_TEST_NAME " || true) " = " function" ]; then
67
+ BATS_TEST_NUMBER=" $2 "
68
+ if [ -z " $BATS_TEST_NUMBER " ]; then
69
+ echo " 1..1"
70
+ BATS_TEST_NUMBER=" 1"
71
+ fi
72
+
73
+ BATS_TEST_COMPLETED=" "
74
+ trap bats_exit_trap err exit
75
+ setup
76
+ " $BATS_TEST_NAME "
77
+ BATS_TEST_COMPLETED=1
78
+
79
+ else
80
+ echo " bats: unknown test name \` $BATS_TEST_NAME '" >&2
81
+ exit 1
82
+ fi
83
+ }
84
+
85
+ eval " $( bats-preprocess < " $BATS_TEST_FILENAME " ) "
86
+
87
+ if [ " $# " -eq 0 ]; then
88
+ bats_perform_tests " ${BATS_TEST_NAMES[@]} "
89
+ else
90
+ bats_perform_test " $@ "
91
+ fi
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+ set -e
3
+
4
+ encode_name () {
5
+ local name=" $1 "
6
+ local result=" test_"
7
+
8
+ if [[ ! " $name " =~ [^[:alnum:]\ _-] ]]; then
9
+ name=" ${name// _/ -5f} "
10
+ name=" ${name// -/ -2d} "
11
+ name=" ${name// / _} "
12
+ result+=" $name "
13
+ else
14
+ local length=" ${# name} "
15
+ local char i
16
+
17
+ for (( i= 0 ; i< length; i++ )) ; do
18
+ char=" ${name: $i : 1} "
19
+ if [ " $char " = " " ]; then
20
+ result+=" _"
21
+ elif [[ " $char " =~ [[:alnum:]] ]]; then
22
+ result+=" $char "
23
+ else
24
+ result+=" $( printf -- " -%02x" \' " $char " ) "
25
+ fi
26
+ done
27
+ fi
28
+
29
+ echo " $result "
30
+ }
31
+
32
+ tests=()
33
+ index=0
34
+
35
+ while IFS= read -r line; do
36
+ index=$(( $index + 1 ))
37
+ quoted_name=" $( expr " $line " : ' ^ *@test *\([^ ].*\) *{ *$' || true) "
38
+
39
+ if [ -n " $quoted_name " ]; then
40
+ name=" $( eval echo " $quoted_name " ) "
41
+ encoded_name=" $( encode_name " $name " ) "
42
+ tests[" ${# tests[@]} " ]=" $encoded_name "
43
+ echo " ${encoded_name} () { bats_test_info ${quoted_name} ${index} "
44
+ else
45
+ echo " $line "
46
+ fi
47
+ done
48
+
49
+ for test_name in " ${tests[@]} " ; do
50
+ echo " bats_test_function ${test_name} "
51
+ done
You can’t perform that action at this time.
0 commit comments