Merge cc77cfa4eb
into e48216e4a8
This commit is contained in:
commit
7cce88db61
|
@ -31,6 +31,8 @@ stdout.txt
|
|||
# script-generated expected with absolute file paths
|
||||
tests/tc_locate_ufcs_function/expected.txt
|
||||
tests/tc_recursive_public_import/expected.txt
|
||||
# other script-generated files
|
||||
tests/extra/tc_ufcs_all_kinds/generate_tests
|
||||
|
||||
# Dub files
|
||||
.dub
|
||||
|
|
|
@ -129,21 +129,19 @@ int main(string[] args)
|
|||
|
||||
fs.write("proc_test.d", code);
|
||||
|
||||
auto output = executeShell("$DC -verrors=0 -c proc_test.d").output;
|
||||
// $DC and $ERROR_FLAGS are set up in run.sh
|
||||
auto output = executeShell("$DC $ERROR_FLAGS -c proc_test.d").output;
|
||||
|
||||
size_t numErrors = 0;
|
||||
|
||||
string[][string] variableIncompatibilities;
|
||||
|
||||
// Example of a line we want to match: `proc_test.d:2568:22: error: [...]'
|
||||
auto errRegex = regex(`proc_test\.d:([0-9]*):[0-9]*: error`, "i");
|
||||
foreach (err; output.lineSplitter)
|
||||
{
|
||||
if (!err.startsWith("proc_test.d("))
|
||||
continue;
|
||||
err = err["proc_test.d(".length .. $];
|
||||
auto lineNo = err.parse!int;
|
||||
if (!err.startsWith("): Error: "))
|
||||
continue;
|
||||
err = err["): Error: ".length .. $];
|
||||
if (auto m = matchFirst(err, errRegex)) {
|
||||
auto lineNo = to!int(m[1]);
|
||||
string line = lines[lineNo - 1];
|
||||
enforce(line.endsWith("();"), "Unexpected error in line " ~ lineNo.to!string);
|
||||
line = line[0 .. $ - 3];
|
||||
|
@ -153,6 +151,7 @@ int main(string[] args)
|
|||
variableIncompatibilities[varName] ~= funcName;
|
||||
numErrors++;
|
||||
}
|
||||
}
|
||||
|
||||
enforce(numErrors > 1_000, "compiler didn't error as expected, need to adjust tests!");
|
||||
|
||||
|
|
|
@ -4,4 +4,26 @@ if [ -z "${DC:-}" ]; then
|
|||
DC=dmd
|
||||
fi
|
||||
|
||||
DC="$DC" "$DC" -run generate_tests.d "$1"
|
||||
DCBASE=$(basename ${DC})
|
||||
|
||||
# Set up ERROR_FLAGS to make all compilers output errors in the same
|
||||
# format to make matching easier in generate_tests.d. Also make them
|
||||
# output all errors.
|
||||
if [[ ${DCBASE} == *gdc* ]]; then
|
||||
outputFlag=-o
|
||||
# Not needed as gdc defaults to printing all errors
|
||||
ERROR_FLAGS=
|
||||
elif [[ ${DCBASE} == *gdmd* ]]; then
|
||||
outputFlag=-of
|
||||
ERROR_FLAGS=
|
||||
elif [[ ${DCBASE} == *ldc* || ${DCBASE} == *dmd* ]]; then
|
||||
outputFlag=-of
|
||||
ERROR_FLAGS='-verrors=0 -verror-style=gnu -vcolumns'
|
||||
else
|
||||
echo "Unknown compiler ${DC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$DC ${outputFlag}generate_tests generate_tests.d
|
||||
export DC ERROR_FLAGS
|
||||
./generate_tests "${1}"
|
||||
|
|
Loading…
Reference in New Issue