diff options
Diffstat (limited to 'WebKitTools/Scripts/webkitperl/VCSUtils_unittest/mergeChangeLogs.pl')
-rw-r--r-- | WebKitTools/Scripts/webkitperl/VCSUtils_unittest/mergeChangeLogs.pl | 336 |
1 files changed, 0 insertions, 336 deletions
diff --git a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/mergeChangeLogs.pl b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/mergeChangeLogs.pl deleted file mode 100644 index a226e43..0000000 --- a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/mergeChangeLogs.pl +++ /dev/null @@ -1,336 +0,0 @@ -#!/usr/bin/perl -# -# Copyright (C) 2010 Apple Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. 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. -# -# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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::mergeChangeLogs(). - -use strict; - -use Test::Simple tests => 16; -use File::Temp qw(tempfile); -use VCSUtils; - -# Read contents of a file and return it. -sub readFile($) -{ - my ($fileName) = @_; - - local $/; - open(FH, "<", $fileName); - my $content = <FH>; - close(FH); - - return $content; -} - -# Write a temporary file and return the filename. -sub writeTempFile($$$) -{ - my ($name, $extension, $content) = @_; - - my ($FH, $fileName) = tempfile( - $name . "-XXXXXXXX", - DIR => ($ENV{'TMPDIR'} || "/tmp"), - UNLINK => 0, - ); - print $FH $content; - close $FH; - - if ($extension) { - my $newFileName = $fileName . $extension; - rename($fileName, $newFileName); - $fileName = $newFileName; - } - - return $fileName; -} - -# -------------------------------------------------------------------------------- - -{ - # New test - my $title = "mergeChangeLogs: traditional rejected patch success"; - - my $fileNewerContent = <<'EOF'; -2010-01-29 Mark Rowe <mrowe@apple.com> - - Fix the Mac build. - - Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". - -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileNewer = writeTempFile("file", "", $fileNewerContent); - - my $fileMineContent = <<'EOF'; -*************** -*** 1,3 **** - 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. ---- 1,9 ---- -+ 2010-01-29 Oliver Hunt <oliver@apple.com> -+ -+ Reviewed by Darin Adler. -+ -+ JSC is failing to propagate anonymous slot count on some transitions -+ - 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. -EOF - my $fileMine = writeTempFile("file", ".rej", $fileMineContent); - rename($fileMine, $fileNewer . ".rej"); - $fileMine = $fileNewer . ".rej"; - - my $fileOlderContent = $fileNewerContent; - my $fileOlder = writeTempFile("file", ".orig", $fileOlderContent); - rename($fileOlder, $fileNewer . ".orig"); - $fileOlder = $fileNewer . ".orig"; - - my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); - - # mergeChangeLogs() should return 1 since the patch succeeded. - ok($exitStatus == 1, "$title: should return 1 for success"); - - ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); - ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); - - my $expectedContent = <<'EOF'; -2010-01-29 Oliver Hunt <oliver@apple.com> - - Reviewed by Darin Adler. - - JSC is failing to propagate anonymous slot count on some transitions - -EOF - $expectedContent .= $fileNewerContent; - ok(readFile($fileNewer) eq $expectedContent, "$title: \$fileNewer should be updated to include patch"); - - unlink($fileMine, $fileOlder, $fileNewer); -} - -# -------------------------------------------------------------------------------- - -{ - # New test - my $title = "mergeChangeLogs: traditional rejected patch failure"; - - my $fileNewerContent = <<'EOF'; -2010-01-29 Mark Rowe <mrowe@apple.com> - - Fix the Mac build. - - Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". - -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileNewer = writeTempFile("file", "", $fileNewerContent); - - my $fileMineContent = <<'EOF'; -*************** -*** 1,9 **** -- 2010-01-29 Oliver Hunt <oliver@apple.com> -- -- Reviewed by Darin Adler. -- -- JSC is failing to propagate anonymous slot count on some transitions -- - 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. ---- 1,3 ---- - 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. -EOF - my $fileMine = writeTempFile("file", ".rej", $fileMineContent); - rename($fileMine, $fileNewer . ".rej"); - $fileMine = $fileNewer . ".rej"; - - my $fileOlderContent = $fileNewerContent; - my $fileOlder = writeTempFile("file", ".orig", $fileOlderContent); - rename($fileOlder, $fileNewer . ".orig"); - $fileOlder = $fileNewer . ".orig"; - - my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); - - # mergeChangeLogs() should return 0 since the patch failed. - ok($exitStatus == 0, "$title: should return 0 for failure"); - - ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); - ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); - ok(readFile($fileNewer) eq $fileNewerContent, "$title: \$fileNewer should be unchanged"); - - unlink($fileMine, $fileOlder, $fileNewer); -} - -# -------------------------------------------------------------------------------- - -{ - # New test - my $title = "mergeChangeLogs: patch succeeds"; - - my $fileMineContent = <<'EOF'; -2010-01-29 Oliver Hunt <oliver@apple.com> - - Reviewed by Darin Adler. - - JSC is failing to propagate anonymous slot count on some transitions - -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileMine = writeTempFile("fileMine", "", $fileMineContent); - - my $fileOlderContent = <<'EOF'; -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileOlder = writeTempFile("fileOlder", "", $fileOlderContent); - - my $fileNewerContent = <<'EOF'; -2010-01-29 Mark Rowe <mrowe@apple.com> - - Fix the Mac build. - - Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". - -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileNewer = writeTempFile("fileNewer", "", $fileNewerContent); - - my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); - - # mergeChangeLogs() should return 1 since the patch succeeded. - ok($exitStatus == 1, "$title: should return 1 for success"); - - ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); - ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); - - my $expectedContent = <<'EOF'; -2010-01-29 Oliver Hunt <oliver@apple.com> - - Reviewed by Darin Adler. - - JSC is failing to propagate anonymous slot count on some transitions - -EOF - $expectedContent .= $fileNewerContent; - - ok(readFile($fileNewer) eq $expectedContent, "$title: \$fileNewer should be patched"); - - unlink($fileMine, $fileOlder, $fileNewer); -} - -# -------------------------------------------------------------------------------- - -{ - # New test - my $title = "mergeChangeLogs: patch fails"; - - my $fileMineContent = <<'EOF'; -2010-01-29 Mark Rowe <mrowe@apple.com> - - Fix the Mac build. - - Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". - -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileMine = writeTempFile("fileMine", "", $fileMineContent); - - my $fileOlderContent = <<'EOF'; -2010-01-29 Mark Rowe <mrowe@apple.com> - - Fix the Mac build. - - Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". - -2010-01-29 Oliver Hunt <oliver@apple.com> - - Reviewed by Darin Adler. - - JSC is failing to propagate anonymous slot count on some transitions - -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileOlder = writeTempFile("fileOlder", "", $fileOlderContent); - - my $fileNewerContent = <<'EOF'; -2010-01-29 Oliver Hunt <oliver@apple.com> - - Reviewed by Darin Adler. - - JSC is failing to propagate anonymous slot count on some transitions - -2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> - - Rubber-stamped by Maciej Stachowiak. - - Fix the ARM build. -EOF - my $fileNewer = writeTempFile("fileNewer", "", $fileNewerContent); - - my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); - - # mergeChangeLogs() should return a non-zero exit status since the patch failed. - ok($exitStatus == 0, "$title: return non-zero exit status for failure"); - - ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); - ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); - - # $fileNewer should still exist unchanged because the patch failed - ok(readFile($fileNewer) eq $fileNewerContent, "$title: \$fileNewer should be unchanged"); - - unlink($fileMine, $fileOlder, $fileNewer); -} - -# -------------------------------------------------------------------------------- - |