+2007-08-20 Adam Roben <aroben@apple.com>
+
+ Fix Bug 15026: prepare-ChangeLog should list new tests in WebCore/ChangeLog
+
+ http://bugs.webkit.org/show_bug.cgi?id=15026
+
+ Reviewed by David Kilzer and Darin Adler.
+
+ * Scripts/prepare-ChangeLog:
+ (sub isModifiedStatus): Split out from isModifiedOrAddedStatus.
+ (sub isAddedStatus): Ditto.
+ (sub testListForChangeLog): Added.
+
2007-08-19 Oleg Sukhodolsky <son.two@gmail.com>
Reviewed by Mark.
sub diffHeaderFormat();
sub findOriginalFileFromSvn($);
sub generateFileList(\@\@\%);
-sub isModifiedOrAddedStatus($);
+sub isModifiedStatus($);
+sub isAddedStatus($);
sub isConflictStatus($);
sub statusDescription($$);
sub extractLineRange($);
sub canonicalizePath($);
+sub testListForChangeLog(@);
sub get_function_line_ranges($$);
sub get_function_line_ranges_for_c($$);
sub get_function_line_ranges_for_java($$);
my $SVN = "svn";
my $GIT = "git";
-my $changedLayoutTests = 0;
+my %supportedTestExtensions = map { $_ => 1 } qw(html shtml svg xml xhtml pl php);
+my @addedRegressionTests = ();
+my $didChangeRegressionTests = 0;
generateFileList(@changed_files, @conflict_files, %function_lists);
} else {
print CHANGE_LOG " Reviewed by NOBODY (OO" . "PS!).\n\n";
if ($prefix =~ m/WebCore/ || `pwd` =~ m/WebCore/) {
- print CHANGE_LOG " WARNING: NO TEST CASES ADDED OR CHANGED\n\n" unless $changedLayoutTests;
+ if ($didChangeRegressionTests) {
+ print CHANGE_LOG testListForChangeLog(sort @addedRegressionTests);
+ } else {
+ print CHANGE_LOG " WARNING: NO TEST CASES ADDED OR CHANGED\n\n";
+ }
}
}
$file = makeFilePathRelative($file);
- if (isModifiedOrAddedStatus($status)) {
+ if (isModifiedStatus($status) || isAddedStatus($status)) {
my @components = File::Spec->splitdir($file);
- $changedLayoutTests = 1 if $components[0] eq "LayoutTests";
+ if ($components[0] eq "LayoutTests") {
+ $didChangeRegressionTests = 1;
+ push @addedRegressionTests, $file if isAddedStatus($status) && $file =~ /\.([a-zA-Z]+)$/ && $supportedTestExtensions{$1};
+ }
push @{$changedFiles}, $file if $components[$#components] ne "ChangeLog";
} elsif (isConflictStatus($status)) {
push @{$conflictFiles}, $file;
close STAT;
}
-sub isModifiedOrAddedStatus($)
+sub isModifiedStatus($)
+{
+ my ($status) = @_;
+
+ my %statusCodes = (
+ "M" => 1,
+ );
+
+ return $statusCodes{$status};
+}
+
+sub isAddedStatus($)
{
my ($status) = @_;
my %statusCodes = (
"A" => 1,
"C" => $isGit,
- "M" => 1,
"R" => 1,
);
return $dir;
}
+
+sub testListForChangeLog(@)
+{
+ my (@tests) = @_;
+
+ return "" unless @tests;
+
+ my $leadString = " Test" . (@tests == 1 ? "" : "s") . ": ";
+ my $list = $leadString;
+ foreach my $i (0..$#tests) {
+ $list .= " " x length($leadString) if $i;
+ my $test = $tests[$i];
+ $test =~ s/^LayoutTests\///;
+ $list .= "$test\n";
+ }
+ $list .= "\n";
+
+ return $list;
+}