#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later

###############################################################################
#
#   Copyright © International Business Machines  Corp., 2009
#
# DESCRIPTION
#      Run tests in the current directory.
#
# AUTHOR
#      Darren Hart <dvhart@linux.intel.com>
#
# HISTORY
#      2009-Nov-9: Initial version by Darren Hart <dvhart@linux.intel.com>
#      2010-Jan-6: Add futex_wait_uninitialized_heap and futex_wait_private_mapped_file
#                  by KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
#
###############################################################################

run_test()
{
	$@
	if [ $? -ne 0 ]; then
		rc=1
	fi
}

# Test for a color capable console
if [ -z "$USE_COLOR" ]; then
    tput setf 7 || tput setaf 7
    if [ $? -eq 0 ]; then
        USE_COLOR=1
        tput sgr0
    fi
fi
if [ "$USE_COLOR" -eq 1 ]; then
    COLOR="-c"
fi

rc=0

echo
# requeue pi testing
# without timeouts
run_test ./futex_requeue_pi $COLOR
run_test ./futex_requeue_pi $COLOR -b
run_test ./futex_requeue_pi $COLOR -b -l
run_test ./futex_requeue_pi $COLOR -b -o
run_test ./futex_requeue_pi $COLOR -l
run_test ./futex_requeue_pi $COLOR -o
# with timeouts
run_test ./futex_requeue_pi $COLOR -b -l -t 5000
run_test ./futex_requeue_pi $COLOR -l -t 5000
run_test ./futex_requeue_pi $COLOR -b -l -t 500000
run_test ./futex_requeue_pi $COLOR -l -t 500000
run_test ./futex_requeue_pi $COLOR -b -t 5000
run_test ./futex_requeue_pi $COLOR -t 5000
run_test ./futex_requeue_pi $COLOR -b -t 500000
run_test ./futex_requeue_pi $COLOR -t 500000
run_test ./futex_requeue_pi $COLOR -b -o -t 5000
run_test ./futex_requeue_pi $COLOR -l -t 5000
run_test ./futex_requeue_pi $COLOR -b -o -t 500000
run_test ./futex_requeue_pi $COLOR -l -t 500000
# with long timeout
run_test ./futex_requeue_pi $COLOR -b -l -t 2000000000
run_test ./futex_requeue_pi $COLOR -l -t 2000000000


echo
run_test ./futex_requeue_pi_mismatched_ops $COLOR

echo
run_test ./futex_requeue_pi_signal_restart $COLOR

echo
run_test ./futex_wait_timeout $COLOR

echo
run_test ./futex_wait_wouldblock $COLOR

echo
run_test ./futex_wait_uninitialized_heap $COLOR
run_test ./futex_wait_private_mapped_file $COLOR

exit $rc
