53 lines
1.2 KiB
Bash
53 lines
1.2 KiB
Bash
|
#!/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
|