2 ####################################################################
4 echo "Jeanine Matthews - Divergent Hunter"
5 echo "summary: Execute test suite in multiple ways and compare results"
6 echo "usage: env [var1=... var2=...] $0 [--bundled-full|--bf] [--bundled-indiv|--bi] [--standalone-full|--sf] [--standalone-indiv|--si] [--compare]"
7 echo "Optional variables:"
8 echo " - CIVI: Path to Civi installation [$CIVI]"
9 echo " - PHP: Path to PHP binary [$PHP]"
10 echo " - PHPUNIT: Path to phpunit binary [$PHPUNIT]"
11 echo " - TESTCLASS: PHP class name for the test case/suite [$TESTCLASS]"
12 echo " - TESTPATH: Path for the test file/directory (Note: MUST match TESTCLASS) [$TESTPATH]"
13 echo " - OUTDIR: Folder to which outputs are written [$OUTDIR]"
16 function reset_dir
() {
17 [ -d "$1" ] && rm -rf "$1"
21 ####################################################################
23 export PHP
=${PHP:-php}
24 export PHPUNIT
=${PHPUNIT:-phpunit}
25 export TESTCLASS
=${TESTCLASS:-api_v3_AllTests}
26 export TESTPATH
=${TESTPATH:-tests/phpunit/api/v3}
27 export CIVI
=$
(realpath
"${CIVI:-.}")
28 export OUTDIR
=$
(realpath
"${OUTDIR:-output}")
30 ####################################################################
43 echo "[[ Prepare $OUTDIR/bundled-full ]]"
45 [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
46 if [ ! -d "$CIVI/packages/PHPUnit" ]; then
47 echo "Missing $CIVI/packages/PHPUnit"
51 reset_dir
"$OUTDIR/bundled-full"
54 $PHP .
/scripts
/phpunit
--tap --log-json "$OUTDIR/bundled-full/all.json" "$TESTCLASS"
59 echo "[[ Prepare $OUTDIR/bundled-indiv ]]"
61 [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
62 if [ ! -d "$CIVI/packages/PHPUnit" ]; then
63 echo "Missing $CIVI/packages/PHPUnit"
67 reset_dir
"$OUTDIR/bundled-indiv"
70 .
/scripts
/phpunit-indiv
--civi --test-dir "../$TESTPATH" --json-dir "$OUTDIR/bundled-indiv"
73 cat "$OUTDIR"/bundled-indiv
/*-*.json
> "$OUTDIR/bundled-indiv/all.json"
76 --standalone-full|
--sf)
77 echo "[[ Prepare $OUTDIR/standalone-full ]]"
78 reset_dir
"$OUTDIR/standalone-full"
81 [ -d "packages/PHPUnit" ] && mv "packages/PHPUnit" "packages/PHPUnit.bak"
82 $PHP $
(which $PHPUNIT) --tap --log-json "$OUTDIR/standalone-full/all.json" "$TESTPATH"
83 [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
87 --standalone-indiv|
--si)
88 echo "[[ Prepare $OUTDIR/standalone-indiv ]]"
89 reset_dir
"$OUTDIR/standalone-indiv"
92 [ -d "packages/PHPUnit" ] && mv "packages/PHPUnit" "packages/PHPUnit.bak"
93 .
/tools
/scripts
/phpunit-indiv
--test-dir "$TESTPATH" --json-dir "$OUTDIR/standalone-indiv"
94 [ -d "packages/PHPUnit.bak" ] && mv "packages/PHPUnit.bak" "packages/PHPUnit"
97 cat "$OUTDIR"/standalone-indiv
/*-*.json
> "$OUTDIR/standalone-indiv/all.json"
101 echo "[[ Compare all results in $OUTDIR ]]"
102 phpunit-compare
"$OUTDIR"/*/all.json