[cfe-commits] r163486 - /cfe/trunk/utils/analyzer/update_plist_test.pl
Ted Kremenek
kremenek at apple.com
Sun Sep 9 23:19:34 PDT 2012
Author: kremenek
Date: Mon Sep 10 01:19:34 2012
New Revision: 163486
URL: http://llvm.org/viewvc/llvm-project?rev=163486&view=rev
Log:
Add handy script for updating plist FileCheck expected output for
analyzer tests.
Added:
cfe/trunk/utils/analyzer/update_plist_test.pl (with props)
Added: cfe/trunk/utils/analyzer/update_plist_test.pl
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/analyzer/update_plist_test.pl?rev=163486&view=auto
==============================================================================
--- cfe/trunk/utils/analyzer/update_plist_test.pl (added)
+++ cfe/trunk/utils/analyzer/update_plist_test.pl Mon Sep 10 01:19:34 2012
@@ -0,0 +1,51 @@
+#!/usr/bin/perl -w
+use strict;
+require File::Temp;
+use File::Temp ();
+
+die "update_plist_test <test file> <plist file>\n" if ($#ARGV < 1);
+my $testFile = shift @ARGV;
+die "error: cannot read file $testFile\n" if (! -r $testFile);
+my $plistFile = shift @ARGV;
+die "error: cannot read file $plistFile\n" if (! -r $plistFile);
+
+# Create a temp file for the new test.
+my $fh = File::Temp->new();
+my $filename = $fh->filename;
+$fh->unlink_on_destroy(1);
+
+# Copy the existing temp file, skipping the FileCheck comments.
+open (IN, $testFile) or die "cannot open $testFile\n";
+while (<IN>) {
+ next if (/^\/\/ CHECK/);
+ print $fh $_;
+}
+close(IN);
+
+# Copy the plist data, and specially format it.
+open (IN, $plistFile) or die "cannot open $plistFile\n";
+my $firstArray = 1;
+my $first = 1;
+while (<IN>) {
+ # Skip everything not indented.
+ next if (/^[^\s]/);
+ # Skip the first array entry, which is for files.
+ if ($firstArray) {
+ if (/<\/array>/) { $firstArray = 0; }
+ next;
+ }
+ # Format the CHECK lines.
+ if ($first) {
+ print $fh "// CHECK: ";
+ $first = 0;
+ }
+ else {
+ print $fh "// CHECK-NEXT: ";
+ }
+ print $fh $_;
+}
+close (IN);
+close ($fh);
+
+`cp $filename $testFile`;
+print "updated $testFile\n";
Propchange: cfe/trunk/utils/analyzer/update_plist_test.pl
------------------------------------------------------------------------------
svn:executable = *
More information about the cfe-commits
mailing list