diff --git a/tests/c++-compiler/stdexcept.cpp b/tests/c++-compiler/stdexcept.cpp new file mode 100644 index 0000000..7c5c9e9 --- /dev/null +++ b/tests/c++-compiler/stdexcept.cpp @@ -0,0 +1,3 @@ +#include + +int main(){return 0;} diff --git a/tests/c++-compiler/test.sh b/tests/c++-compiler/test.sh new file mode 100755 index 0000000..64f1d05 --- /dev/null +++ b/tests/c++-compiler/test.sh @@ -0,0 +1,52 @@ +#!/bin/bash -l + +compilers="pgi gcc cray" + +compiler_version_cmd() { + case $1 in + cray|gcc) + cmd="CC --version" + ;; + pgi) + cmd="CC -V" + ;; + *) + echo "Unknown compiler $1" + esac + echo $cmd + $cmd +} + +compiler_check_stdexcept() { + cmd="CC stdexcept.cpp" + echo $cmd + $cmd +} + +swap_env() { + currentPrgEnv=$(module li 2>&1 | awk '/PrgEnv/{print $2}') + if [ "$1" == gcc ] ; then + newPrgEnv="gnu" + else + newPrgEnv=$1 + fi + module swap $currentPrgEnv PrgEnv-$newPrgEnv +} + + +pwd + +for compiler in $compilers; do + for version in $(module av $compiler -l 2>&1 | awk "/^$compiler/{print \$1}" | awk -F'/' '{print $2}'); do + echo "--------------------------------------------------" + echo "testing $compiler/$version ..." + echo "--------------------------------------------------" + swap_env $compiler + module swap $compiler $compiler/$version + compiler_version_cmd $compiler + compiler_check_stdexcept $compiler + echo "--------------------------------------------------" + done + echo "--------------------------------------------------" + echo "" +done 2>&1 | tee compiler-test.log