Skip to content

Commit

Permalink
cice.setup: name test suite cases less ambiguously
Browse files Browse the repository at this point in the history
In the previous commit, we allowed options from the command line to
override options from the test suite definition file. However, test case
directories are still named using a sorted list of all active options,
both from command line and the suite definition file (variable
'setsarray'). This is nonoptimal since it is not clear from looking at
the test directory name which options have precedence in case of
conflict.

Change the naming logic so that options from the command line are last
in the test directory name, in a "last-one-wins" fashion. To do that,
let 'setsarray' be defined from the test suite options ('sets_tmp') and
add a second loop for the command line options ('sets_base').

Note that we do not check if the same option is mentioned both in the
test suite and the command line, in order not to complicate the code
further.

This also allows greatly simplifying the logic used to adjust 'bfbcomp'
test names to include command line options. This part of the code is
checking if the options for the test aginst which to compare contain
duplicates and 'none', which is unnecessary since these options come
directly from the test suite definition file.
  • Loading branch information
phil-blain committed Aug 2, 2022
1 parent b19149d commit 66ec2d1
Showing 1 changed file with 11 additions and 20 deletions.
31 changes: 11 additions & 20 deletions cice.setup
Original file line number Diff line number Diff line change
Expand Up @@ -761,14 +761,23 @@ EOF
if (${docase} == 0) then
set soptions = ""
# Create sorted array and remove duplicates and "none"
set setsarray = `echo ${sets} | sed 's/,/ /g' | fmt -1 | sort -u`
set setsarray = `echo ${sets_tmp} | sed 's/,/ /g' | fmt -1 | sort -u`
if ("${setsarray}" != "") then
foreach field (${setsarray})
if (${field} != "none") then
set soptions = ${soptions}"_"${field}
endif
end
endif
# Add options from command line, sort and remove duplicates
set soptions_base = ""
set setsarray_base = `echo ${sets_base} | sed 's/,/ /g' | fmt -1 | sort -u`
if ("${setsarray_base}" != "") then
foreach field (${setsarray_base})
set soptions = ${soptions}"_"${field}
set soptions_base = ${soptions_base}"_"${field}
end
endif
# soptions starts with _
set testname_noid = "${machcomp}_${test}_${grid}_${pesx}${soptions}"
set testname_base = "${machcomp}_${test}_${grid}_${pesx}${soptions}.${testid}"
Expand All @@ -777,26 +786,8 @@ EOF
if (${dosuite} == 1) then
# Add -s flags in cice.setup to bfbcomp name
# Parse bfbcomp test_grid_pes and sets
# Add sets_base and sort unique
# Create fbfbcomp string that should be consistent with base casename
set bfbcomp_regex="\(.*_[0-9x]*\)_\(.*\)"
set bfbcomp_test_grid_pes=`echo ${bfbcomp} | sed "s/${bfbcomp_regex}/\1/"`
set bfbcomp_sets=`echo ${bfbcomp} | sed "s/${bfbcomp_regex}/\2/" | sed 's/_/,/g' `
set bfbcomp_sets="${bfbcomp_sets},${sets_base}"
set bfbcomp_soptions = ""
# Create sorted array and remove duplicates and "none"
set bfbcomp_setsarray = `echo ${bfbcomp_sets} | sed 's/,/ /g' | fmt -1 | sort -u`
if ("${bfbcomp_setsarray}" != "") then
foreach field (${bfbcomp_setsarray})
if (${field} != "none") then
set bfbcomp_soptions = ${bfbcomp_soptions}"_"${field}
endif
end
endif
set fbfbcomp = ${spval}
if ($bfbcomp != ${spval}) then
set fbfbcomp = ${machcomp}_${bfbcomp_test_grid_pes}${bfbcomp_soptions}
set fbfbcomp = ${machcomp}_${bfbcomp}${soptions_base}
endif
endif
endif
Expand Down

0 comments on commit 66ec2d1

Please sign in to comment.