1dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#!/usr/bin/perl 2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# 3dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# Copyright (C) 2010 Apple Inc. All rights reserved. 4dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# 5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# Redistribution and use in source and binary forms, with or without 6dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# modification, are permitted provided that the following conditions 7dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# are met: 8dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# 1. Redistributions of source code must retain the above copyright 9dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# notice, this list of conditions and the following disclaimer. 10dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# 2. Redistributions in binary form must reproduce the above copyright 11dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# notice, this list of conditions and the following disclaimer in the 12dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# documentation and/or other materials provided with the distribution. 13dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# 14dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY 15dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY 18dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 21dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 25dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# Unit tests of VCSUtils::mergeChangeLogs(). 26dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 27dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockuse strict; 28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 29dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockuse Test::Simple tests => 16; 30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockuse File::Temp qw(tempfile); 31dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockuse VCSUtils; 32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# Read contents of a file and return it. 34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocksub readFile($) 35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my ($fileName) = @_; 37dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block local $/; 39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block open(FH, "<", $fileName); 40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $content = <FH>; 41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block close(FH); 42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 43dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block return $content; 44dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# Write a temporary file and return the filename. 47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocksub writeTempFile($$$) 48dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my ($name, $extension, $content) = @_; 50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my ($FH, $fileName) = tempfile( 52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $name . "-XXXXXXXX", 53dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block DIR => ($ENV{'TMPDIR'} || "/tmp"), 54dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block UNLINK => 0, 55dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ); 56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block print $FH $content; 57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block close $FH; 58dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block if ($extension) { 60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $newFileName = $fileName . $extension; 61dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block rename($fileName, $newFileName); 62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $fileName = $newFileName; 63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block } 64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 65dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block return $fileName; 66dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 67dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# -------------------------------------------------------------------------------- 69dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # New test 72dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $title = "mergeChangeLogs: traditional rejected patch success"; 73dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewerContent = <<'EOF'; 75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Mark Rowe <mrowe@apple.com> 76dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 77dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the Mac build. 78dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 79dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". 80dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 81dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 82dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 83dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 84dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 85dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 86dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 87dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewer = writeTempFile("file", "", $fileNewerContent); 88dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 89dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMineContent = <<'EOF'; 90dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block*************** 91dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block*** 1,3 **** 92dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 93dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 94dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 95dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block--- 1,9 ---- 96dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block+ 2010-01-29 Oliver Hunt <oliver@apple.com> 97dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block+ 98dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block+ Reviewed by Darin Adler. 99dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block+ 100dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block+ JSC is failing to propagate anonymous slot count on some transitions 101dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block+ 102dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 103dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 104dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 105dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 106dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMine = writeTempFile("file", ".rej", $fileMineContent); 107dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block rename($fileMine, $fileNewer . ".rej"); 108dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $fileMine = $fileNewer . ".rej"; 109dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 110dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlderContent = $fileNewerContent; 111dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlder = writeTempFile("file", ".orig", $fileOlderContent); 112dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block rename($fileOlder, $fileNewer . ".orig"); 113dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $fileOlder = $fileNewer . ".orig"; 114dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 115dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); 116dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 117dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # mergeChangeLogs() should return 1 since the patch succeeded. 118dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok($exitStatus == 1, "$title: should return 1 for success"); 119dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 120dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); 121dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); 122dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 123dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $expectedContent = <<'EOF'; 124dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Oliver Hunt <oliver@apple.com> 125dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 126dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Reviewed by Darin Adler. 127dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 128dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSC is failing to propagate anonymous slot count on some transitions 129dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 130dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 131dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $expectedContent .= $fileNewerContent; 132dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileNewer) eq $expectedContent, "$title: \$fileNewer should be updated to include patch"); 133dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 134dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unlink($fileMine, $fileOlder, $fileNewer); 135dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 136dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 137dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# -------------------------------------------------------------------------------- 138dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 139dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 140dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # New test 141dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $title = "mergeChangeLogs: traditional rejected patch failure"; 142dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 143dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewerContent = <<'EOF'; 144dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Mark Rowe <mrowe@apple.com> 145dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 146dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the Mac build. 147dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 148dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". 149dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 150dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 151dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 152dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 153dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 154dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 155dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 156dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewer = writeTempFile("file", "", $fileNewerContent); 157dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 158dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMineContent = <<'EOF'; 159dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block*************** 160dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block*** 1,9 **** 161dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- 2010-01-29 Oliver Hunt <oliver@apple.com> 162dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- 163dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- Reviewed by Darin Adler. 164dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- 165dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- JSC is failing to propagate anonymous slot count on some transitions 166dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block- 167dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 168dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 169dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 170dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block--- 1,3 ---- 171dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 172dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 173dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 174dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 175dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMine = writeTempFile("file", ".rej", $fileMineContent); 176dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block rename($fileMine, $fileNewer . ".rej"); 177dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $fileMine = $fileNewer . ".rej"; 178dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 179dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlderContent = $fileNewerContent; 180dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlder = writeTempFile("file", ".orig", $fileOlderContent); 181dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block rename($fileOlder, $fileNewer . ".orig"); 182dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $fileOlder = $fileNewer . ".orig"; 183dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 184dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); 185dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 186dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # mergeChangeLogs() should return 0 since the patch failed. 187dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok($exitStatus == 0, "$title: should return 0 for failure"); 188dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 189dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); 190dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); 191dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileNewer) eq $fileNewerContent, "$title: \$fileNewer should be unchanged"); 192dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 193dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unlink($fileMine, $fileOlder, $fileNewer); 194dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 195dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 196dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# -------------------------------------------------------------------------------- 197dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 198dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 199dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # New test 200dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $title = "mergeChangeLogs: patch succeeds"; 201dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 202dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMineContent = <<'EOF'; 203dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Oliver Hunt <oliver@apple.com> 204dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 205dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Reviewed by Darin Adler. 206dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 207dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSC is failing to propagate anonymous slot count on some transitions 208dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 209dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 210dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 211dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 212dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 213dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 214dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 215dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMine = writeTempFile("fileMine", "", $fileMineContent); 216dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 217dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlderContent = <<'EOF'; 218dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 219dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 220dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 221dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 222dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 223dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 224dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlder = writeTempFile("fileOlder", "", $fileOlderContent); 225dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 226dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewerContent = <<'EOF'; 227dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Mark Rowe <mrowe@apple.com> 228dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 229dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the Mac build. 230dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 231dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". 232dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 233dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 234dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 235dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 236dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 237dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 238dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 239dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewer = writeTempFile("fileNewer", "", $fileNewerContent); 240dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 241dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); 242dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 243dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # mergeChangeLogs() should return 1 since the patch succeeded. 244dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok($exitStatus == 1, "$title: should return 1 for success"); 245dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 246dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); 247dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); 248dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 249dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $expectedContent = <<'EOF'; 250dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Oliver Hunt <oliver@apple.com> 251dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 252dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Reviewed by Darin Adler. 253dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 254dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSC is failing to propagate anonymous slot count on some transitions 255dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 256dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 257dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block $expectedContent .= $fileNewerContent; 258dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 259dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileNewer) eq $expectedContent, "$title: \$fileNewer should be patched"); 260dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 261dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unlink($fileMine, $fileOlder, $fileNewer); 262dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 263dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 264dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# -------------------------------------------------------------------------------- 265dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 266dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 267dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # New test 268dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $title = "mergeChangeLogs: patch fails"; 269dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 270dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMineContent = <<'EOF'; 271dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Mark Rowe <mrowe@apple.com> 272dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 273dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the Mac build. 274dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 275dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". 276dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 277dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 278dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 279dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 280dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 281dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 282dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 283dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileMine = writeTempFile("fileMine", "", $fileMineContent); 284dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 285dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlderContent = <<'EOF'; 286dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Mark Rowe <mrowe@apple.com> 287dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 288dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the Mac build. 289dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 290dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". 291dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 292dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Oliver Hunt <oliver@apple.com> 293dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 294dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Reviewed by Darin Adler. 295dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 296dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSC is failing to propagate anonymous slot count on some transitions 297dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 298dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 299dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 300dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 301dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 302dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 303dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 304dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileOlder = writeTempFile("fileOlder", "", $fileOlderContent); 305dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 306dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewerContent = <<'EOF'; 307dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Oliver Hunt <oliver@apple.com> 308dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 309dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Reviewed by Darin Adler. 310dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 311dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSC is failing to propagate anonymous slot count on some transitions 312dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 313dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block2010-01-29 Simon Hausmann <simon.hausmann@nokia.com> 314dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 315dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Rubber-stamped by Maciej Stachowiak. 316dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 317dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Fix the ARM build. 318dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEOF 319dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $fileNewer = writeTempFile("fileNewer", "", $fileNewerContent); 320dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 321dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block my $exitStatus = mergeChangeLogs($fileMine, $fileOlder, $fileNewer); 322dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 323dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # mergeChangeLogs() should return a non-zero exit status since the patch failed. 324dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok($exitStatus == 0, "$title: return non-zero exit status for failure"); 325dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 326dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileMine) eq $fileMineContent, "$title: \$fileMine should be unchanged"); 327dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileOlder) eq $fileOlderContent, "$title: \$fileOlder should be unchanged"); 328dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 329dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block # $fileNewer should still exist unchanged because the patch failed 330dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ok(readFile($fileNewer) eq $fileNewerContent, "$title: \$fileNewer should be unchanged"); 331dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 332dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unlink($fileMine, $fileOlder, $fileNewer); 333dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 334dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 335dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block# -------------------------------------------------------------------------------- 336dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 337