[clang][utils] Modify make-ast-dump-check.sh to generate AST serialization dump tests

An AST serialization dump test is a test which compares the output of -ast-dump
on the source and of -ast-dump-all on a PCH generated from the source. Modulo
a few differences the outputs should match.

This patch to make-ast-dump-check.sh enables automatically generating
these tests.

Differential Revision: https://reviews.llvm.org/D81786

Reviewed By: aaron.ballman, lebedev.ri
This commit is contained in:
Bruno Ricci 2020-06-18 13:02:11 +01:00
parent 05843dc6ab
commit c7350a3bab
No known key found for this signature in database
GPG Key ID: D58C906B2F684D92
1 changed files with 14 additions and 1 deletions

View File

@ -3,12 +3,21 @@
# This script is intended as a FileCheck replacement to update the test
# expectations in a -ast-dump test.
#
# Usage:
# Usage (to generate normal AST dump tests):
#
# $ lit -DFileCheck=$PWD/utils/make-ast-dump-check.sh test/AST/ast-dump-openmp-*
#
# Usage (to generate serialization AST dump tests):
#
# $ lit -DFileCheck="generate_serialization_test=1 $PWD/utils/make-ast-dump-check.sh"
# test/AST/ast-dump-openmp-*
prefix=CHECK
if [ -z ${generate_serialization_test+x} ];
then generate_serialization_test=0;
fi
while [[ "$#" -ne 0 ]]; do
case "$1" in
--check-prefix)
@ -54,6 +63,10 @@ BEGIN {
s = \$0
gsub("0x[0-9a-fA-F]+", "{{.*}}", s)
gsub("$testdir/", "{{.*}}", s)
if ($generate_serialization_test == 1) {
gsub(" imported", "{{( imported)?}}", s)
gsub(" <undeserialized declarations>", "{{( <undeserialized declarations>)?}}", s)
}
}
matched_last_line == 0 {