Divided the Perl unit tests into separate files and put
authorddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Jan 2010 14:59:29 +0000 (14:59 +0000)
committerddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Jan 2010 14:59:29 +0000 (14:59 +0000)
them in a separate directory, and renamed test-webkit-perl
to test-webkitperl.

Patch by Chris Jerdonek <chris.jerdonek@gmail.com> on 2010-01-04
Reviewed by David Kilzer.

https://bugs.webkit.org/show_bug.cgi?id=33124

* Scripts/VCSUtils.pm:
  - Renamed generateRunPatchCommand() to generatePatchCommand().

* Scripts/VCSUtils_unittest.pl: Removed.
  - Divided into three files in Scripts/webkitperl/VCSUtils_unittest.

* Scripts/test-webkit-perl: Removed.
  - Renamed to test-webkitperl.

* Scripts/test-webkit-scripts:
  - Updated paths to test-webkitpy and test-webkitperl.

* Scripts/test-webkitperl: Copied from Scripts/test-webkit-perl.
  - Added paths to new test files.

* Scripts/webkitperl: Added.
* Scripts/webkitperl/VCSUtils_unittest: Added.
* Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatch.pl: Added.
* Scripts/webkitperl/VCSUtils_unittest/generatePatchCommand.pl: Added.
* Scripts/webkitperl/VCSUtils_unittest/runPatchCommand.pl: Copied from Scripts/VCSUtils_unittest.pl.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@52732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/Scripts/VCSUtils.pm
WebKitTools/Scripts/test-webkit-scripts
WebKitTools/Scripts/test-webkitperl [moved from WebKitTools/Scripts/test-webkit-perl with 85% similarity]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatch.pl [moved from WebKitTools/Scripts/VCSUtils_unittest.pl with 60% similarity, mode: 0644]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/generatePatchCommand.pl [new file with mode: 0644]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/runPatchCommand.pl [new file with mode: 0644]

index 7c9796b..1eca884 100644 (file)
@@ -1,3 +1,34 @@
+2010-01-04  Chris Jerdonek  <chris.jerdonek@gmail.com>
+
+        Reviewed by David Kilzer.
+
+        Divided the Perl unit tests into separate files and put
+        them in a separate directory, and renamed test-webkit-perl
+        to test-webkitperl.
+
+        https://bugs.webkit.org/show_bug.cgi?id=33124
+
+        * Scripts/VCSUtils.pm:
+          - Renamed generateRunPatchCommand() to generatePatchCommand().
+
+        * Scripts/VCSUtils_unittest.pl: Removed.
+          - Divided into three files in Scripts/webkitperl/VCSUtils_unittest.
+
+        * Scripts/test-webkit-perl: Removed.
+          - Renamed to test-webkitperl.
+
+        * Scripts/test-webkit-scripts:
+          - Updated paths to test-webkitpy and test-webkitperl.
+
+        * Scripts/test-webkitperl: Copied from Scripts/test-webkit-perl.
+          - Added paths to new test files.
+
+        * Scripts/webkitperl: Added.
+        * Scripts/webkitperl/VCSUtils_unittest: Added.
+        * Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatch.pl: Added.
+        * Scripts/webkitperl/VCSUtils_unittest/generatePatchCommand.pl: Added.
+        * Scripts/webkitperl/VCSUtils_unittest/runPatchCommand.pl: Copied from Scripts/VCSUtils_unittest.pl.
+
 2010-01-04  Eric Seidel  <eric@webkit.org>
 
         Reviewed by Adam Barth.
index c1db3c0..3879264 100644 (file)
@@ -520,7 +520,7 @@ sub fixChangeLogPatch($)
 # Returns ($patchCommand, $isForcing).
 #
 # This subroutine has unit tests in VCSUtils_unittest.pl.
-sub generateRunPatchCommand($)
+sub generatePatchCommand($)
 {
     my ($passedArgsHashRef) = @_;
 
@@ -592,7 +592,7 @@ sub runPatchCommand($$$;$)
 {
     my ($patch, $repositoryRootPath, $pathRelativeToRoot, $args) = @_;
 
-    my ($patchCommand, $isForcing) = generateRunPatchCommand($args);
+    my ($patchCommand, $isForcing) = generatePatchCommand($args);
 
     # Temporarily change the working directory since the path found
     # in the patch's "Index:" line is relative to the repository root
index fbe27fa..af8cd20 100755 (executable)
@@ -71,10 +71,10 @@ if __name__ == '__main__':
     # Use absolute paths so this script can be run from any directory.
     scripts_directory = sys.path[0]
 
-    test_script('Perl scripts', os.path.join(scripts_directory, 'test-webkit-perl'))
+    test_script('Perl scripts', os.path.join(scripts_directory, 'test-webkitperl'))
 
     test_script('Python scripts',
-                os.path.join(scripts_directory, 'test-webkit-python'),
+                os.path.join(scripts_directory, 'test-webkitpy'),
                 ['--all'] if should_include_all else None)
 
     # FIXME: Display a cumulative indication of success or failure.
similarity index 85%
rename from WebKitTools/Scripts/test-webkit-perl
rename to WebKitTools/Scripts/test-webkitperl
index e4e5836..94caeb3 100755 (executable)
 
 use FindBin;
 use Test::Harness;
+use lib $FindBin::Bin; # so this script can be run from any directory.
+use VCSUtils;
 
 # Use an absolute path so this script can be run from any directory.
 $scriptsDir = $FindBin::Bin;
 $scriptsDir =~ s|/+$||; # Remove trailing '/'
 
-runtests("$scriptsDir/VCSUtils_unittest.pl");
+# VCSUtils subroutines
+my @files = (
+    "fixChangeLogPatch.pl",
+    "generatePatchCommand.pl",
+    "runPatchCommand.pl",
+);
+
+@files = map "$scriptsDir/webkitperl/VCSUtils_unittest/$_", @files; # prepend
+
+runtests(@files);
old mode 100755 (executable)
new mode 100644 (file)
similarity index 60%
rename from WebKitTools/Scripts/VCSUtils_unittest.pl
rename to WebKitTools/Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatch.pl
index 17dadcb..d21c706
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-# Unit tests of VCSUtils.pm.
-
-use Test::Simple tests => 21;
-
-use FindBin;
-use lib $FindBin::Bin; # so this script can be run from any directory.
+# Unit tests of VCSUtils::fixChangeLogPatch().
 
+use Test::Simple tests => 7;
 use VCSUtils;
 
-# Call a function while suppressing STDERR.
-sub callSilently($@) {
-    my ($func, @args) = @_;
-
-    open(OLDERR, ">&STDERR");
-    close(STDERR);
-    my @returnValue = &$func(@args);
-    open(STDERR, ">&OLDERR");
-    close(OLDERR); # FIXME: Is this necessary?
-
-    return @returnValue;
-}
-
-# fixChangeLogPatch
-#
 # The source ChangeLog for these tests is the following:
 # 
 # 2009-12-22  Alice  <alice@email.address>
@@ -307,118 +288,3 @@ $out = <<'END';
 END
 
 ok(fixChangeLogPatch($in) eq $out, $title);
-
-# Tests: generateRunPatchCommand
-
-# New test
-$title = "generateRunPatchCommand: Undefined optional arguments.";
-
-my $argsHashRef;
-my ($patchCommand, $isForcing) = VCSUtils::generateRunPatchCommand($argsHashRef);
-
-ok($patchCommand eq "patch -p0", $title);
-ok($isForcing == 0, $title);
-
-# New test
-$title = "generateRunPatchCommand: Undefined options.";
-
-my $options;
-$argsHashRef = {options => $options};
-($patchCommand, $isForcing) = VCSUtils::generateRunPatchCommand($argsHashRef);
-
-ok($patchCommand eq "patch -p0", $title);
-ok($isForcing == 0, $title);
-
-# New test
-$title = "generateRunPatchCommand: --force and no \"ensure force\".";
-
-$argsHashRef = {options => ["--force"]};
-($patchCommand, $isForcing) = VCSUtils::generateRunPatchCommand($argsHashRef);
-
-ok($patchCommand eq "patch -p0 --force", $title);
-ok($isForcing == 1, $title);
-
-# New test
-$title = "generateRunPatchCommand: no --force and \"ensure force\".";
-
-$argsHashRef = {ensureForce => 1};
-($patchCommand, $isForcing) = VCSUtils::generateRunPatchCommand($argsHashRef);
-
-ok($patchCommand eq "patch -p0 --force", $title);
-ok($isForcing == 1, $title);
-
-# New test
-$title = "generateRunPatchCommand: \"should reverse\".";
-
-$argsHashRef = {shouldReverse => 1};
-($patchCommand, $isForcing) = VCSUtils::generateRunPatchCommand($argsHashRef);
-
-ok($patchCommand eq "patch -p0 --reverse", $title);
-
-# New test
-$title = "generateRunPatchCommand: --fuzz=3, --force.";
-
-$argsHashRef = {options => ["--fuzz=3", "--force"]};
-($patchCommand, $isForcing) = VCSUtils::generateRunPatchCommand($argsHashRef);
-
-ok($patchCommand eq "patch -p0 --force --fuzz=3", $title);
-
-# Tests: runPatchCommand
-
-# New test
-$title = "runPatchCommand: Unsuccessful patch, forcing.";
-
-# Since $patch has no "Index:" path, passing this to runPatchCommand
-# should not affect any files.
-my $patch = <<'END';
-Garbage patch contents
-END
-
-# We call via callSilently() to avoid output like the following to STDERR:
-# patch: **** Only garbage was found in the patch input.
-$argsHashRef = {ensureForce => 1};
-$exitStatus = callSilently(\&runPatchCommand, $patch, ".", "file_to_patch.txt", $argsHashRef);
-
-ok($exitStatus != 0, $title);
-
-# New test
-$title = "runPatchCommand: New file, --dry-run.";
-
-# This file should not exist after the tests, but we take care with the
-# file name and contents just in case.
-my $fileToPatch = "temp_OK_TO_ERASE__README_FOR_MORE.txt";
-$patch = <<END;
-Index: $fileToPatch
-===================================================================
---- $fileToPatch       (revision 0)
-+++ $fileToPatch       (revision 0)
-@@ -0,0 +1,5 @@
-+This is a test file for WebKitTools/Scripts/VCSUtils_unittest.pl.
-+This file should not have gotten created on your system.
-+If it did, some unit tests don't seem to be working quite right:
-+It would be great if you could file a bug report. Thanks!
-+---------------------------------------------------------------------
-END
-
-# --dry-run prevents creating any files.
-# --silent suppresses the success message to STDOUT.
-$argsHashRef = {options => ["--dry-run", "--silent"]};
-$exitStatus = runPatchCommand($patch, ".", $fileToPatch, $argsHashRef);
-
-ok($exitStatus == 0, $title);
-
-# New test
-$title = "runPatchCommand: New file: \"$fileToPatch\".";
-
-$argsHashRef = {options => ["--silent"]};
-$exitStatus = runPatchCommand($patch, ".", $fileToPatch, $argsHashRef);
-
-ok($exitStatus == 0, $title);
-
-# New test
-$title = "runPatchCommand: Reverse new file (clean up previous).";
-
-$argsHashRef = {shouldReverse => 1,
-                options => ["--silent", "--remove-empty-files"]}; # To clean up.
-$exitStatus = runPatchCommand($patch, ".", $fileToPatch, $argsHashRef);
-ok($exitStatus == 0, $title);
diff --git a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/generatePatchCommand.pl b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/generatePatchCommand.pl
new file mode 100644 (file)
index 0000000..483a0a8
--- /dev/null
@@ -0,0 +1,87 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2009, 2010 Chris Jerdonek (chris.jerdonek@gmail.com)
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# 
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Unit tests of VCSUtils::generatePatchCommand().
+
+use Test::Simple tests => 10;
+use VCSUtils;
+
+# New test
+$title = "generatePatchCommand: Undefined optional arguments.";
+
+my $argsHashRef;
+my ($patchCommand, $isForcing) = VCSUtils::generatePatchCommand($argsHashRef);
+
+ok($patchCommand eq "patch -p0", $title);
+ok($isForcing == 0, $title);
+
+# New test
+$title = "generatePatchCommand: Undefined options.";
+
+my $options;
+$argsHashRef = {options => $options};
+($patchCommand, $isForcing) = VCSUtils::generatePatchCommand($argsHashRef);
+
+ok($patchCommand eq "patch -p0", $title);
+ok($isForcing == 0, $title);
+
+# New test
+$title = "generatePatchCommand: --force and no \"ensure force\".";
+
+$argsHashRef = {options => ["--force"]};
+($patchCommand, $isForcing) = VCSUtils::generatePatchCommand($argsHashRef);
+
+ok($patchCommand eq "patch -p0 --force", $title);
+ok($isForcing == 1, $title);
+
+# New test
+$title = "generatePatchCommand: no --force and \"ensure force\".";
+
+$argsHashRef = {ensureForce => 1};
+($patchCommand, $isForcing) = VCSUtils::generatePatchCommand($argsHashRef);
+
+ok($patchCommand eq "patch -p0 --force", $title);
+ok($isForcing == 1, $title);
+
+# New test
+$title = "generatePatchCommand: \"should reverse\".";
+
+$argsHashRef = {shouldReverse => 1};
+($patchCommand, $isForcing) = VCSUtils::generatePatchCommand($argsHashRef);
+
+ok($patchCommand eq "patch -p0 --reverse", $title);
+
+# New test
+$title = "generatePatchCommand: --fuzz=3, --force.";
+
+$argsHashRef = {options => ["--fuzz=3", "--force"]};
+($patchCommand, $isForcing) = VCSUtils::generatePatchCommand($argsHashRef);
+
+ok($patchCommand eq "patch -p0 --force --fuzz=3", $title);
diff --git a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/runPatchCommand.pl b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/runPatchCommand.pl
new file mode 100644 (file)
index 0000000..8111def
--- /dev/null
@@ -0,0 +1,105 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2009, 2010 Chris Jerdonek (chris.jerdonek@gmail.com)
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# 
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Unit tests of VCSUtils::runPatchCommand().
+
+use Test::Simple tests => 4;
+use VCSUtils;
+
+# Call a function while suppressing STDERR.
+sub callSilently($@) {
+    my ($func, @args) = @_;
+
+    open(OLDERR, ">&STDERR");
+    close(STDERR);
+    my @returnValue = &$func(@args);
+    open(STDERR, ">&OLDERR");
+    close(OLDERR); # FIXME: Is this necessary?
+
+    return @returnValue;
+}
+
+# New test
+$title = "runPatchCommand: Unsuccessful patch, forcing.";
+
+# Since $patch has no "Index:" path, passing this to runPatchCommand
+# should not affect any files.
+my $patch = <<'END';
+Garbage patch contents
+END
+
+# We call via callSilently() to avoid output like the following to STDERR:
+# patch: **** Only garbage was found in the patch input.
+$argsHashRef = {ensureForce => 1};
+$exitStatus = callSilently(\&runPatchCommand, $patch, ".", "file_to_patch.txt", $argsHashRef);
+
+ok($exitStatus != 0, $title);
+
+# New test
+$title = "runPatchCommand: New file, --dry-run.";
+
+# This file should not exist after the tests, but we take care with the
+# file name and contents just in case.
+my $fileToPatch = "temp_OK_TO_ERASE__README_FOR_MORE.txt";
+$patch = <<END;
+Index: $fileToPatch
+===================================================================
+--- $fileToPatch       (revision 0)
++++ $fileToPatch       (revision 0)
+@@ -0,0 +1,5 @@
++This is a test file for WebKitTools/Scripts/VCSUtils_unittest.pl.
++This file should not have gotten created on your system.
++If it did, some unit tests don't seem to be working quite right:
++It would be great if you could file a bug report. Thanks!
++---------------------------------------------------------------------
+END
+
+# --dry-run prevents creating any files.
+# --silent suppresses the success message to STDOUT.
+$argsHashRef = {options => ["--dry-run", "--silent"]};
+$exitStatus = runPatchCommand($patch, ".", $fileToPatch, $argsHashRef);
+
+ok($exitStatus == 0, $title);
+
+# New test
+$title = "runPatchCommand: New file: \"$fileToPatch\".";
+
+$argsHashRef = {options => ["--silent"]};
+$exitStatus = runPatchCommand($patch, ".", $fileToPatch, $argsHashRef);
+
+ok($exitStatus == 0, $title);
+
+# New test
+$title = "runPatchCommand: Reverse new file (clean up previous).";
+
+$argsHashRef = {shouldReverse => 1,
+                options => ["--silent", "--remove-empty-files"]}; # To clean up.
+$exitStatus = runPatchCommand($patch, ".", $fileToPatch, $argsHashRef);
+ok($exitStatus == 0, $title);