annotate clang/utils/analyzer/update_plist_test.pl @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 2e18cbf3894f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1 #!/usr/bin/env perl
150
anatofuz
parents:
diff changeset
2 use strict;
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
3 use warnings;
150
anatofuz
parents:
diff changeset
4 require File::Temp;
anatofuz
parents:
diff changeset
5 use File::Temp ();
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 die "update_plist_test <test file> <plist file>\n" if ($#ARGV < 1);
anatofuz
parents:
diff changeset
8 my $testFile = shift @ARGV;
anatofuz
parents:
diff changeset
9 die "error: cannot read file $testFile\n" if (! -r $testFile);
anatofuz
parents:
diff changeset
10 my $plistFile = shift @ARGV;
anatofuz
parents:
diff changeset
11 die "error: cannot read file $plistFile\n" if (! -r $plistFile);
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 # Create a temp file for the new test.
anatofuz
parents:
diff changeset
14 my $fh = File::Temp->new();
anatofuz
parents:
diff changeset
15 my $filename = $fh->filename;
anatofuz
parents:
diff changeset
16 $fh->unlink_on_destroy(1);
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 # Copy the existing temp file, skipping the FileCheck comments.
anatofuz
parents:
diff changeset
19 open (IN, $testFile) or die "cannot open $testFile\n";
anatofuz
parents:
diff changeset
20 while (<IN>) {
anatofuz
parents:
diff changeset
21 next if (/^\/\/ CHECK/);
anatofuz
parents:
diff changeset
22 print $fh $_;
anatofuz
parents:
diff changeset
23 }
anatofuz
parents:
diff changeset
24 close(IN);
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 # Copy the plist data, and specially format it.
anatofuz
parents:
diff changeset
27 open (IN, $plistFile) or die "cannot open $plistFile\n";
anatofuz
parents:
diff changeset
28 my $firstArray = 1;
anatofuz
parents:
diff changeset
29 my $first = 1;
anatofuz
parents:
diff changeset
30 while (<IN>) {
anatofuz
parents:
diff changeset
31 # Skip everything not indented.
anatofuz
parents:
diff changeset
32 next if (/^[^\s]/);
anatofuz
parents:
diff changeset
33 # Skip the first array entry, which is for files.
anatofuz
parents:
diff changeset
34 if ($firstArray) {
anatofuz
parents:
diff changeset
35 if (/<\/array>/) { $firstArray = 0; }
anatofuz
parents:
diff changeset
36 next;
anatofuz
parents:
diff changeset
37 }
anatofuz
parents:
diff changeset
38 # Format the CHECK lines.
anatofuz
parents:
diff changeset
39 if ($first) {
anatofuz
parents:
diff changeset
40 print $fh "// CHECK: ";
anatofuz
parents:
diff changeset
41 $first = 0;
anatofuz
parents:
diff changeset
42 }
anatofuz
parents:
diff changeset
43 else {
anatofuz
parents:
diff changeset
44 print $fh "// CHECK-NEXT: ";
anatofuz
parents:
diff changeset
45 }
anatofuz
parents:
diff changeset
46 print $fh $_;
anatofuz
parents:
diff changeset
47 }
anatofuz
parents:
diff changeset
48 close (IN);
anatofuz
parents:
diff changeset
49 close ($fh);
anatofuz
parents:
diff changeset
50
anatofuz
parents:
diff changeset
51 `cp $filename $testFile`;
anatofuz
parents:
diff changeset
52 print "updated $testFile\n";