[cfe-commits] r70110 - /cfe/trunk/utils/pch-test.pl

Douglas Gregor dgregor at apple.com
Sat Apr 25 20:52:11 PDT 2009


Author: dgregor
Date: Sat Apr 25 22:52:11 2009
New Revision: 70110

URL: http://llvm.org/viewvc/llvm-project?rev=70110&view=rev
Log:
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.

Added:
    cfe/trunk/utils/pch-test.pl   (with props)

Added: cfe/trunk/utils/pch-test.pl
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/pch-test.pl?rev=70110&view=auto

==============================================================================
--- cfe/trunk/utils/pch-test.pl (added)
+++ cfe/trunk/utils/pch-test.pl Sat Apr 25 22:52:11 2009
@@ -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);

Propchange: cfe/trunk/utils/pch-test.pl

------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cfe/trunk/utils/pch-test.pl

------------------------------------------------------------------------------
    svn:executable = *

Propchange: cfe/trunk/utils/pch-test.pl

------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cfe/trunk/utils/pch-test.pl

------------------------------------------------------------------------------
    svn:mime-type = text/x-perl





More information about the cfe-commits mailing list