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

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

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

setup_file() {
	TESTNAME="libs/Trilinos"
	NODES=2
	TASKS=$(tasks_count 4)
	ARGS=null
	TIMEOUT="00:05:00"

	check_rms

	export TESTNAME NODES TASKS ARGS TIMEOUT
}

@test "[${TESTNAME}] Kokkos-MemorySpace runs under resource manager (${RESOURCE_MANAGER}/$LMOD_FAMILY_COMPILER/$LMOD_FAMILY_MPI)" {
	EXE=./lesson_kokkos_memspace
	if [ ! -s "${EXE}" ]; then
		flunk "${EXE} binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" "${EXE}" "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}

@test "[${TESTNAME}] Tpetra-InitMPI runs under resource manager (${RESOURCE_MANAGER}/$LMOD_FAMILY_COMPILER/$LMOD_FAMILY_MPI)" {
	EXE=./lesson_tpetra_init
	if [ ! -s "${EXE}" ]; then
		flunk "${EXE} binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" "${EXE}" "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}

@test "[${TESTNAME}] Tpetra-DataRedistribution runs under resource manager (${RESOURCE_MANAGER}/$LMOD_FAMILY_COMPILER/$LMOD_FAMILY_MPI)" {
	EXE=./lesson_tpetra_dataredist
	if [ ! -s "${EXE}" ]; then
		flunk "${EXE} binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" "${EXE}" "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}

@test "[${TESTNAME}] Teuchos-ParameterList runs under resource manager (${RESOURCE_MANAGER}/$LMOD_FAMILY_COMPILER/$LMOD_FAMILY_MPI)" {
	EXE=./lesson_teuchos_pl
	if [ ! -s "${EXE}" ]; then
		flunk "${EXE} binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" "${EXE}" "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}

@test "[${TESTNAME}] Teuchos-LAPACK runs under resource manager (${RESOURCE_MANAGER}/$LMOD_FAMILY_COMPILER/$LMOD_FAMILY_MPI)" {
	EXE=./lesson_teuchos_lapack
	if [ ! -s "${EXE}" ]; then
		flunk "${EXE} binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" "${EXE}" "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}

@test "[${TESTNAME}] Teuchos-BLAS runs under resource manager (${RESOURCE_MANAGER}/$LMOD_FAMILY_COMPILER/$LMOD_FAMILY_MPI)" {
	EXE=./lesson_teuchos_blas
	if [ ! -s "${EXE}" ]; then
		flunk "${EXE} binary does not exist"
	fi

	run_mpi_binary -t "${TIMEOUT}" "${EXE}" "${ARGS}" "${NODES}" "${TASKS}"
	assert_success
}
