#!/usr/bin/env -S bats --report-formatter junit --formatter tap -j 3
# -*-sh-*-

load ../../common/test_helper_functions || exit 1
source ../../common/functions || exit 1

if [ -s ../../common/TEST_ENV ]; then
	source ../../common/TEST_ENV
fi

setup_file() {
	NODES=1
	TASKS=$(tasks_count 2)
	ARGS=2
	TIMEOUT="00:05:00"

	check_rms

	export NODES TASKS ARGS TIMEOUT
}

@test "[MPI] C binary runs on single node under resource manager (${RESOURCE_MANAGER}/${LMOD_FAMILY_COMPILER}/${LMOD_FAMILY_MPI})" {
	if [ ! -s C_test ]; then
		flunk "C_test binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" ./C_test "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}

@test "[MPI] C++ binary runs on single node under resource manager (${RESOURCE_MANAGER}/${LMOD_FAMILY_COMPILER}/${LMOD_FAMILY_MPI})" {
	if [ ! -s CXX_test ]; then
		flunk "CXX_test binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" ./CXX_test "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}

@test "[MPI] F90 binary runs on single node under resource manager (${RESOURCE_MANAGER}/${LMOD_FAMILY_COMPILER}/${LMOD_FAMILY_MPI})" {
	if [ ! -s F90_test ]; then
		flunk "F90_test binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" ./F90_test "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}
