Commit | Line | Data |
---|---|---|
f03dc6b0 | 1 | #!/bin/bash |
777df9e1 TO |
2 | function absdirname() { |
3 | pushd $(dirname $0) >> /dev/null | |
4 | pwd | |
5 | popd >> /dev/null | |
6 | } | |
7 | ||
8 | BINDIR=$(absdirname "$0") | |
f03dc6b0 TO |
9 | PHP=${PHP:-php} |
10 | PHPUNIT=${PHPUNIT:-phpunit} | |
11 | MODE=standalone | |
35e0b420 TO |
12 | XMLDIR= |
13 | JSONDIR= | |
f03dc6b0 | 14 | |
35e0b420 TO |
15 | while [ -n "$1" ]; do |
16 | ARG="$1" | |
f03dc6b0 | 17 | shift |
f03dc6b0 | 18 | |
35e0b420 TO |
19 | case "$ARG" in |
20 | --civi) | |
21 | MODE=civi | |
22 | ;; | |
5878c670 TO |
23 | --civibuild-restore) |
24 | CIVIBUILD_RESTORE="$1" | |
25 | shift | |
26 | ;; | |
35e0b420 TO |
27 | --test-dir) |
28 | TESTSUITE="$1" | |
29 | shift | |
30 | ;; | |
31 | --json-dir) | |
32 | JSONDIR="$1" | |
33 | [ ! -d "$JSONDIR" ] && mkdir -p "$JSONDIR" | |
34 | shift | |
35 | ;; | |
36 | --xml-dir) | |
37 | XMLDIR="$1" | |
38 | [ ! -d "$XMLDIR" ] && mkdir -p "$XMLDIR" | |
39 | shift | |
40 | ;; | |
41 | *) | |
42 | echo "unrecognized option: $ARG" | |
43 | ;; | |
44 | esac | |
45 | done | |
f03dc6b0 | 46 | |
f03dc6b0 | 47 | |
35e0b420 | 48 | if [ -z "$TESTSUITE" ]; then |
f03dc6b0 | 49 | echo "summary: Executes all tests in a suite (individually)" |
5878c670 | 50 | echo "usage: $0 --test-dir <dir> [--json-dir <dir>] [--xml-dir <dir>] [--civi] [--civibuild-restore <build-name>]" |
f03dc6b0 TO |
51 | exit 1 |
52 | fi | |
53 | ||
f03dc6b0 TO |
54 | |
55 | #phpunit-ls "$TESTSUITE" | |
777df9e1 | 56 | $BINDIR/phpunit-ls "$TESTSUITE" | while read FILE CLASS METHOD ; do |
fef71e55 TO |
57 | if [ -z "$FILE" -o ! -f "$FILE" ]; then continue; fi |
58 | echo "[[Processing $FILE $CLASS::$METHOD]]" | |
5878c670 TO |
59 | ## Optionally reset DBs |
60 | if [ -n "$CIVIBUILD_RESTORE" ]; then | |
61 | civibuild restore "$CIVIBUILD_RESTORE" | |
62 | fi | |
63 | ||
64 | ## Prepare test command | |
35e0b420 TO |
65 | PHPUNITARGS="--tap" |
66 | if [ -n "$JSONDIR" ]; then | |
67 | PHPUNITARGS="$PHPUNITARGS --log-json $JSONDIR/$CLASS-$METHOD.json" | |
68 | fi | |
69 | if [ -n "$XMLDIR" ]; then | |
70 | PHPUNITARGS="$PHPUNITARGS --log-junit $XMLDIR/$CLASS-$METHOD.xml" | |
71 | fi | |
72 | ||
5878c670 | 73 | ## Run the test! |
f03dc6b0 | 74 | if [ "$MODE" == "civi" ]; then |
35e0b420 | 75 | $PHP ./scripts/phpunit $PHPUNITARGS --filter $METHOD'( with.*)?$' "$CLASS" |
f03dc6b0 TO |
76 | fi |
77 | if [ "$MODE" == "standalone" ]; then | |
35e0b420 | 78 | $PHP $(which $PHPUNIT) $PHPUNITARGS --filter $METHOD'( with.*)?$' "$FILE" |
f03dc6b0 TO |
79 | fi |
80 | done |