From: Douglas Gregor Date: Sun, 26 Apr 2009 03:52:11 +0000 (+0000) Subject: Simple little smoke-test script that tries to build PCH files and then X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=69a6b6d7fcf57fa0603214d46484aa2c73f5d884;p=clang Simple little smoke-test script that tries to build PCH files and then dump their contents for all of the compilable tests in Clang's testsuite. All of the tests pass for C, but there are still many failures for Objective-C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70110 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/pch-test.pl b/utils/pch-test.pl new file mode 100755 index 0000000000..4d7634ba04 --- /dev/null +++ b/utils/pch-test.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl -w + +# This tiny little script, which should be run from the clang +# directory (with clang-cc in your patch), tries to take each +# compilable Clang test and build a PCH file from that test, then read +# and dump the contents of the PCH file just created. +use POSIX; + +$exitcode = 0; + +sub testfiles($$) { + my $suffix = shift; + my $language = shift; + + @files = `ls test/*/*.$suffix`; + foreach $file (@files) { + chomp($file); + print("."); + my $code = system("clang-cc -fsyntax-only -x $language $file > /dev/null 2>&1"); + if ($code == 0) { + $code = system("clang-cc -emit-pch -x $language -o $file.pch $file > /dev/null 2>&1"); + if ($code == 0) { + $code = system("clang-cc -include-pch $file.pch -x $language -ast-dump-full /dev/null > /dev/null 2>&1"); + if ($code == 0) { + } elsif (($code & 0xFF) == SIGINT) { + exit($exitcode); + } else { + print("\n---Failed to dump AST file for \"$file\"---\n"); + $exitcode = 1; + } + unlink "$file.pch"; + } elsif (($code & 0xFF) == SIGINT) { + exit($exitcode); + } else { + print("\n---Failed to build PCH file for \"$file\"---\n"); + $exitcode = 1; + } + } elsif (($code & 0xFF) == SIGINT) { + exit($exitcode); + } + } +} + +printf("-----Testing precompiled headers for C-----\n"); +testfiles("c", "c"); +printf("\n-----Testing precompiled headers for Objective-C-----\n"); +testfiles("m", "objective-c"); +print("\n"); +exit($exitcode);