#!/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() {
	module load EasyBuild
}

@test "[EasyBuild] check for RPM" {
	run check_if_rpm_installed "EasyBuild${DELIM}"
	assert_success
}

@test "[EasyBuild] test executable" {
	run eb --help
	assert_success
	run eb --version
	assert_success
}

@test "[EasyBuild] test install of zlib" {
	EB_TEST_TMPDIR=$(mktemp -d)
	export EASYBUILD_PREFIX="${EB_TEST_TMPDIR}"
	eb --show-config
	assert_success
	eb zlib-1.3.2.eb --robot
	assert_success
	module use "${EASYBUILD_PREFIX}"/modules/all
	module load zlib/1.3.2
	assert_success
	test -f "${EBROOTZLIB}"/include/zlib.h
	assert_success
	printf '#include <stdio.h>\n#include <zlib.h>\nint main(void) { puts(zlibVersion()); return 0; }\n' >"${EB_TEST_TMPDIR}"/zver.c
	gcc -I"${EBROOTZLIB}"/include "${EB_TEST_TMPDIR}"/zver.c -L"${EBROOTZLIB}"/lib -lz -o "${EB_TEST_TMPDIR}"/zver
	assert_success
	run env LD_LIBRARY_PATH="${EBROOTZLIB}"/lib "${EB_TEST_TMPDIR}"/zver
	assert_success
	assert_output "1.3.2"
	rm -r "${EB_TEST_TMPDIR}"
}
