#!/bin/sh

export MALLOC_CONF_ALL=${MALLOC_CONF}
# Concatenate the individual test's MALLOC_CONF and MALLOC_CONF_ALL.
export_malloc_conf() {
  if [ "x${MALLOC_CONF}" != "x" -a "x${MALLOC_CONF_ALL}" != "x" ] ; then
    export MALLOC_CONF="${MALLOC_CONF},${MALLOC_CONF_ALL}"
  else
    export MALLOC_CONF="${MALLOC_CONF}${MALLOC_CONF_ALL}"
  fi
}



saved_dir=$PWD
for dir in tests/* ; do
	cd $dir
	for atest in * ; do
		if [[ "${atest##*.}" == "sh" ]]; then
			continue
		fi
		if [ -e "${atest}.sh" ] ; then
		  	# Source the shell script corresponding to the test in a subshell and
		  	# execute the test.  This allows the shell script to set MALLOC_CONF, which
		  	# is then used to set MALLOC_CONF (thus allowing the
		  	# per test shell script to ignore the  detail).
		  	enable_fill=1 \
		  	enable_prof=1 \
		  	. $(pwd)/${atest}.sh && \
		  	export_malloc_conf
		else
		  	export MALLOC_CONF= && \
		  	export_malloc_conf
		fi
		if [ \( -x $atest \) -a \( -f $atest \) ] ; then
			rm -rf tests.log
			./$atest > tests.log 2>&1
			sed -e '/: pass/ s/^/PASS: /g' \
			    -e '/: skip/ s/^/SKIP: /g' \
			    -e '/: fail/ s/^/FAIL: /g' \
			    -e 's/: pass//g' \
			    -e 's/: skip//g' \
			    -e 's/: fail//g' \
			    -e '/^--- pass:/d' tests.log
		fi
	done
	cd $saved_dir
done
