#!/bin/sh

# Give names of targets to use on the command line
# by default the following would *not* run
# coccicheck
# address,undefined
# test
default="sparse hdr-check check-docs sha256 leaks doc"
skip=" "
more=" "

: ${T:=""}

for t
do
	case "$t" in
	-)  default= ;;
	-?*) skip="$skip${t#-} " ;;
	?*)  more="$more$t " ;;
	esac
done

set -- $default $more

for t
do
	echo "----- >8 -----" >&2
	case "$skip" in
	*" $t "*)
		echo "Skipping $t" >&2
		continue ;;
	esac

	echo "Running $t" >&2

	case "$t" in
	address | undefined | address,undefined)
		SANITIZE=$t \
		Meta/Make -j16 test
		;;
	leaks)
		SANITIZE=leak \
		GIT_TEST_PASSING_SANITIZE_LEAK=true Meta/Make -j16 $T CC=clang test &&
		SANITIZE=leak \
		GIT_TEST_PASSING_SANITIZE_LEAK=true Meta/Make -j16 CC=clang clean
		;;
	coccicheck)
		SPATCH_FLAGS=--recursive-includes Meta/Make -j16 "$t"
		;;
	sparse)
		Meta/Make -j16 -- NO_REGEX=NoThanks SPARSE_FLAGS=-Wsparse-error "$t" &&
		Meta/Make -j16 -- NO_REGEX=NoThanks clean >/dev/null 2>&1 &&
		rm -f compat/regex/regex.o
		;;
	sha256)
		GIT_TEST_DEFAULT_HASH=sha256 Meta/Make -j16 $T test
		;;
	test)
		Meta/Make -j16 $T "$t"
		;;
	*)
		Meta/Make -j16 "$t"
		;;
	esac &&
	Meta/Make -j16 distclean >/dev/null 2>&1 || exit 1
done &&
Meta/Make -j16 distclean
