[4909] | 1 | #!/bin/bash |
---|
| 2 | # Test LMDZ compilation in various situations |
---|
| 3 | |
---|
| 4 | set -eu |
---|
| 5 | |
---|
| 6 | mkdir -p test_logs |
---|
| 7 | |
---|
| 8 | function do_one_test { |
---|
| 9 | # Perform one test, if the log file doesn't already exist |
---|
| 10 | |
---|
| 11 | # Create test args |
---|
| 12 | args="-arch_dir arch_local -arch local-gfortran" |
---|
| 13 | if [[ ! $parallel = "none" ]]; then |
---|
| 14 | args="$args-parallel" |
---|
| 15 | fi |
---|
[4914] | 16 | args="$args -rad $rad -parallel $parallel -netcdf 0 -veget $veget $xios $lmdzrev" |
---|
| 17 | # trim |
---|
| 18 | args=$(echo "$args" | xargs) |
---|
[4909] | 19 | |
---|
| 20 | logfile="test_logs/$args.out" |
---|
| 21 | if [[ -f $logfile ]]; then return; fi |
---|
| 22 | echo "Testing $args" |
---|
| 23 | rm -rf LMDZ |
---|
| 24 | |
---|
| 25 | |
---|
| 26 | # shellcheck disable=SC2086 |
---|
| 27 | if ! ./install_lmdz.sh -name LMDZ $args > "$logfile" 2>&1; then |
---|
| 28 | # Check bench success if bench |
---|
| 29 | if (grep -q "EXECUTION DU BENCH" < "$logfile") && (! grep -q "Everything is cool" < "$logfile"); then |
---|
| 30 | echo "/!\\ Bench FAILED /!\\" |
---|
| 31 | else |
---|
| 32 | echo "/!\\ Install FAILED /!\\" |
---|
| 33 | fi |
---|
| 34 | fi |
---|
| 35 | } |
---|
| 36 | |
---|
| 37 | function run_all_tests { |
---|
| 38 | for parallel in "none" "mpi_omp"; do |
---|
| 39 | for rad in "oldrad" "rrtm"; do |
---|
| 40 | for veget in "none" "orch2.0" "orch2.2"; do |
---|
| 41 | for xios in "" "-xios"; do |
---|
[4914] | 42 | if [[ $xios = "-xios" && $parallel = "none" ]]; then continue; fi |
---|
| 43 | for lmdzrev in "" "-r 4894"; do |
---|
[4909] | 44 | do_one_test |
---|
| 45 | done |
---|
| 46 | done |
---|
| 47 | done |
---|
| 48 | done |
---|
[4914] | 49 | done |
---|
[4909] | 50 | } |
---|
| 51 | |
---|
| 52 | function display_results { |
---|
| 53 | cd "test_logs" |
---|
| 54 | echo "Success=o, Failure=XXX" |
---|
| 55 | echo "INSTALL BENCH NAME" |
---|
| 56 | for fname in *; do |
---|
| 57 | if [[ $(tail -n 1 -- "$fname") = " Everything is cool" ]]; then |
---|
| 58 | echo " o o $fname" |
---|
| 59 | else |
---|
| 60 | if grep -q "EXECUTION DU BENCH" < "$fname"; then |
---|
| 61 | echo " o XXX $fname" |
---|
| 62 | else |
---|
| 63 | echo " XXX $fname" |
---|
| 64 | fi |
---|
| 65 | fi |
---|
| 66 | done |
---|
| 67 | } |
---|
| 68 | |
---|
| 69 | skip_tests="" |
---|
| 70 | while (($# > 0)); do |
---|
| 71 | case $1 in |
---|
| 72 | "-s") skip_tests="y"; shift;; |
---|
| 73 | esac |
---|
| 74 | done |
---|
| 75 | |
---|
| 76 | if [[ -z $skip_tests ]]; then run_all_tests; fi |
---|
| 77 | display_results |
---|