New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
perform_test_fcm1 in vendors/FCM-2017.10.0/test – NEMO

source: vendors/FCM-2017.10.0/test/perform_test_fcm1 @ 11998

Last change on this file since 11998 was 10672, checked in by nicolasmartin, 5 years ago

Reimport latest FCM release

File size: 4.9 KB
Line 
1#!/bin/ksh
2set -u
3
4echo "$(date): Running $TEST ..."
5
6cfg_name=$TEST
7if [[ -a $MY_BIN/test_config/$TEST ]]; then
8 . $MY_BIN/test_config/$TEST
9fi
10
11export THIS_RUN_DIR=$RUN_DIR/$TEST
12rm -rf $THIS_RUN_DIR
13mkdir $THIS_RUN_DIR
14cd $THIS_RUN_DIR
15mirror=${mirror:-false}
16if [[ $mirror == remote ]]; then
17  export THIS_RUN_DIR_HPC=$RUN_DIR_HPC/$TEST
18fi
19
20NPROC=${NPROC:-1}
21let count=1
22for this_cfg in $cfg_name
23do
24  extract=$(eval "echo \${extract_$count:-}")
25  build=$(eval "echo \${build_$count:-}")
26  run=$(eval "echo \${run_$count:-}")
27  if [[ $DEBUG == true ]]; then
28    echo "Running extract ($count) ..."
29  fi
30  fcm extract -v 3 $REPOS_URL/trunk/cfg/$this_cfg.cfg >../$TEST.extract.stdout.$count 2>../$TEST.extract.stderr.$count
31  RC=$?
32  if [[ $extract == fail ]]; then
33    if [[ $RC == 0 ]]; then
34      echo "FAILED: $TEST ($count) extract did not fail"
35      exit 1
36    fi
37  elif [[ $extract == fail_known ]]; then
38    if [[ $RC == 0 ]]; then
39      echo "FAILED: $TEST ($count) extract did not fail as expected (known problem fixed?)"
40      exit 1
41    else
42      if [[ $DEBUG == true ]]; then
43        echo "Known problem: $TEST ($count) extract failed"
44      fi
45      break
46    fi
47  elif [[ $extract == succeed_known ]]; then
48    if [[ $RC == 0 ]]; then
49      if [[ $DEBUG == true ]]; then
50        echo "Known problem: $TEST ($count) extract did not fail"
51      fi
52      break
53    else
54      echo "FAILED: $TEST ($count) extract did not succeed as expected (known problem fixed?)"
55      exit 1
56    fi
57  else
58    if [[ $RC != 0 ]]; then
59      echo "FAILED: $TEST ($count) extract failed"
60      exit 1
61    else
62      if [[ $mirror == local ]]; then
63        cd ${THIS_RUN_DIR}_mirror
64      elif [[ $mirror == remote ]]; then
65        echo "$TEST" >> $BATCH_DIRS
66        break
67      fi
68      if [[ $DEBUG == true ]]; then
69        echo "Running build ($count) ..."
70      fi
71      export command_file=$RUN_DIR/$TEST.build.commands.$count
72      touch $command_file
73      fcm build -v 2 -j $NPROC >../$TEST.build.stdout.$count 2>../$TEST.build.stderr.$count
74      RC=$?
75      if [[ $build == fail ]]; then
76        if [[ $RC == 0 ]]; then
77          echo "FAILED: $TEST ($count) build did not fail"
78          exit 1
79        fi
80      elif [[ $build == fail_known ]]; then
81        if [[ $RC == 0 ]]; then
82          echo "FAILED: $TEST ($count) build did not fail as expected (known problem fixed?)"
83          exit 1
84        else
85          if [[ $DEBUG == true ]]; then
86            echo "Known problem: $TEST ($count) build failed"
87          fi
88          break
89        fi
90      elif [[ $build == succeed_known ]]; then
91        if [[ $RC == 0 ]]; then
92          if [[ $DEBUG == true ]]; then
93            echo "Known problem: $TEST ($count) build did not fail"
94          fi
95          break
96        else
97          echo "FAILED: $TEST ($count) build did not succeed as expected (known problem fixed?)"
98          exit 1
99        fi
100      else
101        if [[ $RC != 0 ]]; then
102          echo "FAILED: $TEST ($count) build failed"
103          exit 1
104        else
105          if [[ $run != no ]]; then
106            exe_name=hello.sh
107            env_file=fcm_env.sh
108            if [[ ! -a $env_file ]]; then
109              echo "FAILED: $TEST ($count) env file does not exist"
110              exit 1
111            else
112              . $env_file
113              if [[ $DEBUG == true ]]; then
114                echo "Running executable ($count) ..."
115              fi
116              $exe_name >../$TEST.exe.stdout.$count 2>../$TEST.exe.stderr.$count
117              RC=$?
118              if [[ $run == fail ]]; then
119                if [[ $RC == 0 ]]; then
120                  echo "FAILED: $TEST ($count) run did not fail"
121                  exit 1
122                fi
123              elif [[ $run == fail_known ]]; then
124                if [[ $RC == 0 ]]; then
125                  echo "FAILED: $TEST ($count) run did not fail as expected (known problem fixed?)"
126                  exit 1
127                else
128                  if [[ $DEBUG == true ]]; then
129                    echo "Known problem: $TEST ($count) run failed"
130                  fi
131                  break
132                fi
133              elif [[ $run == succeed_known ]]; then
134                if [[ $RC == 0 ]]; then
135                  if [[ $DEBUG == true ]]; then
136                    echo "Known problem: $TEST ($count) run did not fail"
137                  fi
138                  break
139                else
140                  echo "FAILED: $TEST ($count) run did not succeed as expected (known problem fixed?)"
141                  exit 1
142                fi
143              else
144                if [[ $RC != 0 ]]; then
145                  echo "FAILED: $TEST ($count) run failed"
146                  exit 1
147                fi
148              fi
149            fi
150          fi
151        fi
152      fi
153    fi
154  fi
155  let count=count+1
156done
157
158rm -rf $BASE_DIR/work
159
160if [[ $TYPE == control ]]; then
161  touch $THIS_RUN_DIR/.tests.complete
162else
163  cd $BASE_DIR
164  $MY_BIN/compare_results_fcm1 $TEST
165fi
Note: See TracBrowser for help on using the repository browser.