| 
									
										
										
										
											2021-12-21 02:42:18 +00:00
										 |  |  | #!/usr/bin/env bash | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try() { | 
					
						
							|  |  |  |   output=$(mktemp -d) | 
					
						
							|  |  |  |   "$@" > "$output/stdout" 2> "$output/stderr" | 
					
						
							|  |  |  |   EXIT_CODE=$? | 
					
						
							|  |  |  |   STDOUT=$(<"$output/stdout") | 
					
						
							|  |  |  |   STDERR=$(<"$output/stderr") | 
					
						
							|  |  |  |   export EXIT_CODE STDOUT STDERR | 
					
						
							|  |  |  |   rm -rf "$output" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | setUp() { | 
					
						
							|  |  |  |   export TMPDIR="$PWD/.generated" | 
					
						
							| 
									
										
										
										
											2021-12-21 03:52:28 +00:00
										 |  |  |   export-repo-root | 
					
						
							|  |  |  |   move-to-working-directory | 
					
						
							| 
									
										
										
										
											2021-12-21 02:42:18 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | tearDown() { | 
					
						
							|  |  |  |   [ "${_shunit_test_:=}" = '' ] && return 0 | 
					
						
							| 
									
										
										
										
											2021-12-21 03:52:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   clean-up-working-directory | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-21 02:42:18 +00:00
										 |  |  |   if [ "${__shunit_testSuccess:?}" != 0 ]; then | 
					
						
							|  |  |  |     output-outputs | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-21 03:52:28 +00:00
										 |  |  | export-repo-root() { | 
					
						
							|  |  |  |   export REPO_ROOT="$PWD" | 
					
						
							|  |  |  |   while ! [[ -d $REPO_ROOT/.git ]]; do | 
					
						
							|  |  |  |     export REPO_ROOT=$(dirname $REPO_ROOT) | 
					
						
							|  |  |  |   done | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | move-to-working-directory() { | 
					
						
							|  |  |  |   original_dir="$PWD" | 
					
						
							|  |  |  |   working_dir=$(mktemp -d) | 
					
						
							|  |  |  |   cd $working_dir | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | clean-up-working-directory() { | 
					
						
							|  |  |  |   cd $original_dir | 
					
						
							|  |  |  |   rm -rf $working_dir | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-21 02:42:18 +00:00
										 |  |  | output-outputs() { | 
					
						
							|  |  |  |   ( | 
					
						
							|  |  |  |   bold '*******Test failed********' | 
					
						
							|  |  |  |   echo "$(bold EXIT_CODE =) $EXIT_CODE" | 
					
						
							|  |  |  |   bold STDOUT    : | 
					
						
							|  |  |  |   echo "$STDOUT" | 
					
						
							|  |  |  |   bold STDERR    : | 
					
						
							|  |  |  |   echo "$STDERR" | 
					
						
							|  |  |  |   ) >&2 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bold() { | 
					
						
							|  |  |  |   echo -ne "\033[1m" | 
					
						
							|  |  |  |   echo -ne "$@" | 
					
						
							|  |  |  |   echo -e "\033[0m" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SHUNIT_PATH=./.generated/shunit2-2.1.8/shunit2 | 
					
						
							|  |  |  | if [ ! -f $SHUNIT_PATH ]; then ( | 
					
						
							|  |  |  |   mkdir -p .generated | 
					
						
							|  |  |  |   cd .generated | 
					
						
							|  |  |  |   curl -LO https://github.com/kward/shunit2/archive/v2.1.8.zip | 
					
						
							|  |  |  |   unzip v2.1.8.zip | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | source $SHUNIT_PATH |