Skip to content

Commit 7b6e5c5

Browse files
committed
Regression test scripts: use /Fe with goto-cl
Instead of a build-then-move dance, just use the appropriate command-line flags. Some scripts already did this, now all of them do so. For goto-instrument/chain.sh that includes a more substantial cleanup that removed a chunk of dead code ([[ x$name == x ]] was necessarily false). Also, this script is no longer hard-coded to create main.gb as output so as to permit multiple tests in the same directory (with different target files) that could potentially be run concurrently.
1 parent d59e8f8 commit 7b6e5c5

File tree

10 files changed

+31
-51
lines changed

10 files changed

+31
-51
lines changed

regression/contracts/chain.sh

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ else
2121
fi
2222

2323
if [[ "${is_windows}" == "true" ]]; then
24-
$goto_cc "${name}.c"
25-
mv "${name}.exe" "${name}.gb"
24+
$goto_cc "${name}.c" "/Fe${name}.gb"
2625
else
2726
$goto_cc -o "${name}.gb" "${name}.c"
2827
fi
@@ -35,8 +34,7 @@ elif echo $args_inst | grep -q -- "--dump-c" ; then
3534
mv "${name}-mod.gb" "${name}-mod.c"
3635

3736
if [[ "${is_windows}" == "true" ]]; then
38-
$goto_cc "${name}-mod.c"
39-
mv "${name}-mod.exe" "${name}-mod.gb"
37+
$goto_cc "${name}-mod.c" "/Fe${name}-mod.gb"
4038
else
4139
$goto_cc -o "${name}-mod.gb" "${name}-mod.c"
4240
fi

regression/goto-cc-cbmc-shared-options/chain.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ base_name=${name%.c}
1212
base_name=${base_name%.cpp}
1313

1414
if [[ "${is_windows}" == "true" ]]; then
15-
"${goto_cc}" "${name}" ${options}
16-
mv "${base_name}.exe" "${base_name}.gb"
15+
"${goto_cc}" "${name}" ${options} "/Fe${base_name}.gb"
1716
else
1817
"${goto_cc}" "${name}" -o "${base_name}.gb" ${options}
1918
fi

regression/goto-cc-cbmc/chain.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ base_name=${name%.c}
1212
base_name=${base_name%.cpp}
1313

1414
if [[ "${is_windows}" == "true" ]]; then
15-
"${goto_cc}" "${name}"
16-
mv "${base_name}.exe" "${base_name}.gb"
15+
"${goto_cc}" "${name}" "/Fe${base_name}.gb"
1716
else
1817
"${goto_cc}" "${name}" -o "${base_name}.gb"
1918
fi

regression/goto-cc-goto-analyzer/chain.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ if test -f ${buildgoto}; then
1515
./${buildgoto} ${goto_cc} ${is_windows}
1616
else
1717
if [[ "${is_windows}" == "true" ]]; then
18-
"${goto_cc}" "${name}.c"
19-
mv "${name}.exe" "${name}.gb"
18+
"${goto_cc}" "${name}.c" "/Fe${name}.gb"
2019
else
2120
"${goto_cc}" "${name}.c" -o "${name}.gb"
2221
fi

regression/goto-cc-multi-file/chain.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ name=${*:$#}
1111
name=${name%.c}
1212

1313
if [[ "${is_windows}" == "true" ]]; then
14-
${goto_cc} ${name}.c ${args}
15-
mv ${name}.exe ${name}.gb
14+
${goto_cc} ${name}.c ${args} "/Fe${name}.gb"
1615
else
1716
${goto_cc} ${name}.c ${args} -o ${name}.gb
1817
fi

regression/goto-cc-regression-gh-issue-5380/chain.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ PROBLEM_OUTFILE="test.gb"
2222

2323
# first drive: compile the problematic file into a gb
2424
if [[ "${is_windows}" == "true" ]]; then
25-
"${goto_cc}" --export-file-local-symbols "${PROBLEM_SRC}" /Fe"${PROBLEM_OUTFILE}"
25+
"${goto_cc}" --export-file-local-symbols "${PROBLEM_SRC}" "/Fe${PROBLEM_OUTFILE}"
2626
else
2727
"${goto_cc}" --export-file-local-symbols "${PROBLEM_SRC}" -o "${PROBLEM_OUTFILE}"
2828
fi

regression/goto-harness/chain.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ args=${*:1:$#-1}
2626

2727

2828
if [[ "${is_windows}" == "true" ]]; then
29-
$goto_cc "$input_c_file"
30-
mv "${name}.exe" "$input_goto_binary"
29+
$goto_cc "$input_c_file" "/Fe$input_goto_binary"
3130
else
3231
$goto_cc -o "$input_goto_binary" "$input_c_file"
3332
fi

regression/goto-instrument-typedef/chain.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ args=${*:4:$#-4}
1313

1414
rm -f "${name}.gb"
1515
if [[ "${is_windows}" == "true" ]]; then
16-
"$GC" "${name}.c" --function fun
17-
mv "${name}.exe" "${name}.gb"
16+
"$GC" "${name}.c" --function fun "/Fe${name}.gb"
1817
else
1918
"$GC" "${name}.c" --function fun -o "${name}.gb"
2019
fi

regression/goto-instrument/chain.sh

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,37 @@ goto_instrument=$2
77
cbmc=$3
88
is_windows=$4
99

10-
name=${*:$#}
11-
12-
if [[ x$name == x ]]; then
13-
name=${name%.c}
14-
fi
15-
10+
sources=${*:$#}
1611
args=${*:5:$#-5}
1712

18-
if [[ "${is_windows}" == "true" && x$name != x ]]; then
19-
$goto_cc "main.gb" ${name}
20-
name="main"
21-
mv "${name}.exe" "${name}.gb"
22-
elif [[ "${is_windows}" == "true" ]]; then
23-
$goto_cc "${name}.c"
24-
mv "${name}.exe" "${name}.gb"
25-
elif [[ x$name != x ]]; then
26-
$goto_cc -o "main.gb" ${name}
27-
echo "name: ${name}"
28-
name="main"
13+
set -- $sources
14+
target=${*:$#}
15+
target=${target%.c}
16+
17+
if [[ "${is_windows}" == "true" ]]; then
18+
$goto_cc ${sources} "/Fe${target}.gb"
2919
else
30-
$goto_cc -o "${name}.gb" "${name}.c"
20+
$goto_cc -o ${target}.gb ${sources}
3121
fi
3222

33-
rm -f "${name}-mod.gb"
34-
$goto_instrument ${args} "${name}.gb" "${name}-mod.gb"
35-
if [ ! -e "${name}-mod.gb" ] ; then
36-
cp "$name.gb" "${name}-mod.gb"
23+
rm -f "${target}-mod.gb"
24+
$goto_instrument ${args} "${target}.gb" "${target}-mod.gb"
25+
if [ ! -e "${target}-mod.gb" ] ; then
26+
cp "${target}.gb" "${target}-mod.gb"
3727
elif echo $args | grep -q -- "--dump-c-type-header" ; then
38-
cat "${name}-mod.gb"
39-
mv "${name}.gb" "${name}-mod.gb"
28+
cat "${target}-mod.gb"
29+
mv "${target}.gb" "${target}-mod.gb"
4030
elif echo $args | grep -q -- "--dump-c" ; then
41-
cat "${name}-mod.gb"
42-
mv "${name}-mod.gb" "${name}-mod.c"
31+
cat "${target}-mod.gb"
32+
mv "${target}-mod.gb" "${target}-mod.c"
4333

4434
if [[ "${is_windows}" == "true" ]]; then
45-
$goto_cc "${name}-mod.c"
46-
mv "${name}-mod.exe" "${name}-mod.gb"
35+
$goto_cc "${target}-mod.c" "/Fe${target}-mod.gb"
4736
else
48-
$goto_cc -o "${name}-mod.gb" "${name}-mod.c"
37+
$goto_cc -o "${target}-mod.gb" "${target}-mod.c"
4938
fi
5039

51-
rm "${name}-mod.c"
40+
rm "${target}-mod.c"
5241
fi
53-
$goto_instrument --show-goto-functions "${name}-mod.gb"
54-
$cbmc "${name}-mod.gb"
42+
$goto_instrument --show-goto-functions "${target}-mod.gb"
43+
$cbmc "${target}-mod.gb"

regression/goto-interpreter/chain.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ name=${*:$#}
1111
base_name=${name%.c}
1212

1313
if [[ "${is_windows}" == "true" ]]; then
14-
"${goto_cc}" "${name}"
15-
mv "${base_name}.exe" "${base_name}.gb"
14+
"${goto_cc}" "${name}" "/Fe${base_name}.gb"
1615
else
1716
"${goto_cc}" "${name}" -o "${base_name}.gb"
1817
fi

0 commit comments

Comments
 (0)