source: BOL/script_install_amaury/test_compils.sh @ 5037

Last change on this file since 5037 was 5037, checked in by abarral, 2 weeks ago

some improvements to automated tests

  • Property svn:executable set to *
File size: 2.6 KB
Line 
1#!/bin/bash
2# Test LMDZ compilation in various situations
3
4set -eu
5
6## Params
7
8#submit_cmd="sbatch -A $(/usr/sbin/my_project.py -l 2>&1 | head -1 | cut -d " " -f 3- | cut -c 5-) --constraint=GENOA --time=00:15:00 -N 1 -n 1 -c 8"  # to launch on Adastra /!\ Not working rn, since jobs don't have internet access
9submit_cmd=""  # to launch directly
10#base_args="-arch_dir arch_local -arch local-gfortran"  # to use local arch
11base_args="-arch local-gfortran-parallel"
12
13
14## End params
15
16local=$(pwd)
17mkdir -p test_logs
18
19function do_one_test {
20    # Perform one test, if the log file doesn't already exist
21
22    # Create test args
23    local args="$base_args -rad $rad -parallel $parallel -netcdf 0 -veget $veget $xios $lmdzrev $cosp"
24    # trim
25    args=$(echo "$args" | xargs)
26
27    local logfile="$local/test_logs/$args.out"
28    if [[ -f $logfile ]]; then return; fi  # ALready exists = test already ran
29    echo "Testing $args"
30
31    # Create temp folder
32    mkdir -p "test_logs/${args// /_}_$$" && cd "test_logs/${args// /_}_$$"
33    cp ../../install_lmdz.sh .
34
35    # shellcheck disable=SC2086
36    local test_cmd="$submit_cmd ./install_lmdz.sh -name LMDZ $args"
37    if ! $test_cmd > "$logfile" 2>&1; then
38        # Check bench success if bench
39        if (grep -q "EXECUTION DU BENCH" < "$logfile") && (! grep -q "Everything is cool" < "$logfile"); then
40            echo "/!\\ Bench FAILED /!\\"
41        else
42            echo "/!\\ Install FAILED /!\\"
43        fi
44    fi
45}
46
47function run_all_tests {
48    cd "$local"
49    for parallel in "none" "mpi_omp"; do
50    for rad in "oldrad" "rrtm" "ecrad"; do
51    for veget in "none" "orch2.0" "orch2.2"; do
52    for xios in "" "-xios"; do
53      if [[ $xios = "-xios" && $parallel = "none" ]]; then continue; fi
54    for lmdzrev in ""; do
55    for cosp in "" "-cosp v1" "-cosp v2"; do
56        do_one_test
57    done
58    done
59    done
60    done
61    done
62    done
63}
64
65function display_results {
66    cd "$local/test_logs"
67    echo "Success=o, Failure=XXX, non-breaking error=/!\\"
68    echo "INSTALL  BENCH  NAME"
69    for fname in *.out; do
70        if [[ $(tail -n 1 -- "$fname") = " Everything is cool" ]]; then
71            if grep -q "Error" < "$fname"; then
72                    echo "   o      /!\\   $fname"
73                else
74                    echo "   o       o    $fname"
75                fi
76        else
77            if grep -q "EXECUTION DU BENCH" < "$fname"; then
78                echo "   o      XXX   $fname"
79            else
80                echo "  XXX           $fname"
81            fi
82        fi
83    done
84}
85
86skip_tests=""
87while (($# > 0)); do
88    case $1 in
89        "-s") skip_tests="y"; shift;;
90    esac
91done
92
93if [[ -z $skip_tests ]]; then run_all_tests; fi
94display_results
Note: See TracBrowser for help on using the repository browser.