[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