diff options
Diffstat (limited to 'WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl')
-rw-r--r-- | WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl | 743 |
1 files changed, 0 insertions, 743 deletions
diff --git a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl deleted file mode 100644 index 6914051..0000000 --- a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl +++ /dev/null @@ -1,743 +0,0 @@ -#!/usr/bin/perl -w -# -# Copyright (C) Research in Motion Limited 2010. All Rights Reserved. -# Copyright (C) 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 Apple Computer, Inc. ("Apple") 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 parseSvnProperty(). - -use strict; -use warnings; - -use Test::More; -use VCSUtils; - -my @testCaseHashRefs = ( -#### -# Simple test cases -## -{ - # New test - diffName => "simple: add svn:executable", - inputText => <<'END', -Added: svn:executable - + * -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -undef], - expectedNextLine => undef, -}, -{ - # New test - diffName => "simple: delete svn:executable", - inputText => <<'END', -Deleted: svn:executable - - * -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => -1, - value => "*", -}, -undef], - expectedNextLine => undef, -}, -{ - # New test - diffName => "simple: add svn:mergeinfo", - inputText => <<'END', -Added: svn:mergeinfo - Merged /trunk/Makefile:r33020 -END - expectedReturn => [ -{ - name => "svn:mergeinfo", - propertyChangeDelta => 1, - value => "/trunk/Makefile:r33020", -}, -undef], - expectedNextLine => undef, -}, -{ - # New test - diffName => "simple: delete svn:mergeinfo", - inputText => <<'END', -Deleted: svn:mergeinfo - Reverse-merged /trunk/Makefile:r33020 -END - expectedReturn => [ -{ - name => "svn:mergeinfo", - propertyChangeDelta => -1, - value => "/trunk/Makefile:r33020", -}, -undef], - expectedNextLine => undef, -}, -{ - # New test - diffName => "simple: modified svn:mergeinfo", - inputText => <<'END', -Modified: svn:mergeinfo - Reverse-merged /trunk/Makefile:r33020 - Merged /trunk/Makefile:r41697 -END - expectedReturn => [ -{ - name => "svn:mergeinfo", - propertyChangeDelta => 1, - value => "/trunk/Makefile:r41697", -}, -undef], - expectedNextLine => undef, -}, -#### -# Using SVN 1.4 syntax -## -{ - # New test - diffName => "simple: modified svn:mergeinfo using SVN 1.4 syntax", - inputText => <<'END', -Name: svn:mergeinfo - Reverse-merged /trunk/Makefile:r33020 - Merged /trunk/Makefile:r41697 -END - expectedReturn => [ -{ - name => "svn:mergeinfo", - propertyChangeDelta => 1, - value => "/trunk/Makefile:r41697", -}, -undef], - expectedNextLine => undef, -}, -{ - # New test - diffName => "simple: delete svn:executable using SVN 1.4 syntax", - inputText => <<'END', -Name: svn:executable - - * -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => -1, - value => "*", -}, -undef], - expectedNextLine => undef, -}, -{ - # New test - diffName => "simple: add svn:executable using SVN 1.4 syntax", - inputText => <<'END', -Name: svn:executable - + * -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -undef], - expectedNextLine => undef, -}, -#### -# Property value followed by empty line and start of next diff -## -{ - # New test - diffName => "add svn:executable, followed by empty line and start of next diff", - inputText => <<'END', -Added: svn:executable - + * - -Index: Makefile.shared -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -"\n"], - expectedNextLine => "Index: Makefile.shared\n", -}, -{ - # New test - diffName => "add svn:executable, followed by empty line and start of next diff using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Added: svn:executable - + * - -Index: Makefile.shared -END -), - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -"\r\n"], - expectedNextLine => "Index: Makefile.shared\r\n", -}, -{ - # New test - diffName => "add svn:executable, followed by empty line and start of next property diff", - inputText => <<'END', -Added: svn:executable - + * - -Property changes on: Makefile.shared -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -"\n"], - expectedNextLine => "Property changes on: Makefile.shared\n", -}, -{ - # New test - diffName => "add svn:executable, followed by empty line and start of next property diff using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Added: svn:executable - + * - -Property changes on: Makefile.shared -END -), - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -"\r\n"], - expectedNextLine => "Property changes on: Makefile.shared\r\n", -}, -{ - # New test - diffName => "multi-line '+' change, followed by empty line and start of next diff", - inputText => <<'END', -Name: documentation - + A -long sentence that spans -multiple lines. - -Index: Makefile.shared -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A\nlong sentence that spans\nmultiple lines.", -}, -"\n"], - expectedNextLine => "Index: Makefile.shared\n", -}, -{ - # New test - diffName => "multi-line '+' change, followed by empty line and start of next diff using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Name: documentation - + A -long sentence that spans -multiple lines. - -Index: Makefile.shared -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A\r\nlong sentence that spans\r\nmultiple lines.", -}, -"\r\n"], - expectedNextLine => "Index: Makefile.shared\r\n", -}, -{ - # New test - diffName => "multi-line '+' change, followed by empty line and start of next property diff", - inputText => <<'END', -Name: documentation - + A -long sentence that spans -multiple lines. - -Property changes on: Makefile.shared -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A\nlong sentence that spans\nmultiple lines.", -}, -"\n"], - expectedNextLine => "Property changes on: Makefile.shared\n", -}, -{ - # New test - diffName => "multi-line '+' change, followed by empty line and start of next property diff using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Name: documentation - + A -long sentence that spans -multiple lines. - -Property changes on: Makefile.shared -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A\r\nlong sentence that spans\r\nmultiple lines.", -}, -"\r\n"], - expectedNextLine => "Property changes on: Makefile.shared\r\n", -}, -#### -# Property value followed by empty line and start of binary patch -## -{ - # New test - diffName => "add svn:executable, followed by empty line and start of binary patch", - inputText => <<'END', -Added: svn:executable - + * - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -"\n"], - expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\n", -}, -{ - # New test - diffName => "add svn:executable, followed by empty line and start of binary patch using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Added: svn:executable - + * - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END -), - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -"\r\n"], - expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\r\n", -}, -{ - # New test - diffName => "multi-line '+' change, followed by empty line and start of binary patch", - inputText => <<'END', -Name: documentation - + A -long sentence that spans -multiple lines. - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A\nlong sentence that spans\nmultiple lines.", -}, -"\n"], - expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\n", -}, -{ - # New test - diffName => "multi-line '+' change, followed by empty line and start of binary patch using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Name: documentation - + A -long sentence that spans -multiple lines. - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A\r\nlong sentence that spans\r\nmultiple lines.", -}, -"\r\n"], - expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\r\n", -}, -{ - # New test - diffName => "multi-line '-' change, followed by multi-line '+' change, empty line, and start of binary patch", - inputText => <<'END', -Modified: documentation - - A -long sentence that spans -multiple lines. - + Another -long sentence that spans -multiple lines. - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "Another\nlong sentence that spans\nmultiple lines.", -}, -"\n"], - expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\n", -}, -{ - # New test - diffName => "multi-line '-' change, followed by multi-line '+' change, empty line, and start of binary patch using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Modified: documentation - - A -long sentence that spans -multiple lines. - + Another -long sentence that spans -multiple lines. - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "Another\r\nlong sentence that spans\r\nmultiple lines.", -}, -"\r\n"], - expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\r\n", -}, -#### -# Successive properties -## -{ - # New test - diffName => "single-line '+' change followed by custom property with single-line '+' change", - inputText => <<'END', -Added: svn:executable - + * -Added: documentation - + A sentence. -END - expectedReturn => [ -{ - name => "svn:executable", - propertyChangeDelta => 1, - value => "*", -}, -"Added: documentation\n"], - expectedNextLine => " + A sentence.\n", -}, -{ - # New test - diffName => "multi-line '+' change, followed by svn:executable", - inputText => <<'END', -Name: documentation - + A -long sentence that spans -multiple lines. -Name: svn:executable - + * -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A\nlong sentence that spans\nmultiple lines.", -}, -"Name: svn:executable\n"], - expectedNextLine => " + *\n", -}, -{ - # New test - diffName => "multi-line '-' change, followed by multi-line '+' change and add svn:executable", - inputText => <<'END', -Modified: documentation - - A -long sentence that spans -multiple lines. - + Another -long sentence that spans -multiple lines. -Added: svn:executable - + * -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "Another\nlong sentence that spans\nmultiple lines.", -}, -"Added: svn:executable\n"], - expectedNextLine => " + *\n", -}, -{ - # New test - diffName => "'Merged' change followed by 'Merged' change", - inputText => <<'END', -Added: svn:mergeinfo - Merged /trunk/Makefile:r33020 - Merged /trunk/Makefile.shared:r58350 -END - expectedReturn => [ -{ - name => "svn:mergeinfo", - propertyChangeDelta => 1, - value => "/trunk/Makefile.shared:r58350", -}, -undef], - expectedNextLine => undef, -}, -{ - # New test - diffName => "'Reverse-merged' change followed by 'Reverse-merged' change", - inputText => <<'END', -Deleted: svn:mergeinfo - Reverse-merged /trunk/Makefile:r33020 - Reverse-merged /trunk/Makefile.shared:r58350 -END - expectedReturn => [ -{ - name => "svn:mergeinfo", - propertyChangeDelta => -1, - value => "/trunk/Makefile.shared:r58350", -}, -undef], - expectedNextLine => undef, -}, -#### -# Property values with trailing new lines. -## -# FIXME: We do not support property values with trailing new lines, since it is difficult to -# disambiguate them from the empty line that preceeds the contents of a binary patch as -# in the test case (above): "multi-line '+' change, followed by empty line and start of binary patch". -{ - # New test - diffName => "single-line '+' with trailing new line", - inputText => <<'END', -Added: documentation - + A sentence. - -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A sentence.", -}, -"\n"], - expectedNextLine => undef, -}, -{ - # New test - diffName => "single-line '+' with trailing new line using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Added: documentation - + A sentence. - -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A sentence.", -}, -"\r\n"], - expectedNextLine => undef, -}, -{ - # New test - diffName => "single-line '+' with trailing new line, followed by empty line and start of binary patch", - inputText => <<'END', -Added: documentation - + A sentence. - - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A sentence.", -}, -"\n"], - expectedNextLine => "\n", -}, -{ - # New test - diffName => "single-line '+' with trailing new line, followed by empty line and start of binary patch using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Added: documentation - + A sentence. - - -Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => 1, - value => "A sentence.", -}, -"\r\n"], - expectedNextLine => "\r\n", -}, -{ - # New test - diffName => "single-line '-' change with trailing new line, and single-line '+' change", - inputText => <<'END', -Modified: documentation - - A long sentence. - - + A sentence. -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => -1, # Since we only interpret the '-' property. - value => "A long sentence.", -}, -"\n"], - expectedNextLine => " + A sentence.\n", -}, -{ - # New test - diffName => "single-line '-' change with trailing new line, and single-line '+' change using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Modified: documentation - - A long sentence. - - + A sentence. -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => -1, # Since we only interpret the '-' property. - value => "A long sentence.", -}, -"\r\n"], - expectedNextLine => " + A sentence.\r\n", -}, -{ - # New test - diffName => "multi-line '-' change with trailing new line, and multi-line '+' change", - inputText => <<'END', -Modified: documentation - - A -long sentence that spans -multiple lines. - - + Another -long sentence that spans -multiple lines. -END - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => -1, # Since we only interpret the '-' property. - value => "A\nlong sentence that spans\nmultiple lines.", -}, -"\n"], - expectedNextLine => " + Another\n", -}, -{ - # New test - diffName => "multi-line '-' change with trailing new line, and multi-line '+' change using Windows line endings", - inputText => toWindowsLineEndings(<<'END', -Modified: documentation - - A -long sentence that spans -multiple lines. - - + Another -long sentence that spans -multiple lines. -END -), - expectedReturn => [ -{ - name => "documentation", - propertyChangeDelta => -1, # Since we only interpret the '-' property. - value => "A\r\nlong sentence that spans\r\nmultiple lines.", -}, -"\r\n"], - expectedNextLine => " + Another\r\n", -}, -); - -my $testCasesCount = @testCaseHashRefs; -plan(tests => 2 * $testCasesCount); # Total number of assertions. - -foreach my $testCase (@testCaseHashRefs) { - my $testNameStart = "parseSvnProperty(): $testCase->{diffName}: comparing"; - - my $fileHandle; - open($fileHandle, "<", \$testCase->{inputText}); - my $line = <$fileHandle>; - - my @got = VCSUtils::parseSvnProperty($fileHandle, $line); - my $expectedReturn = $testCase->{expectedReturn}; - - is_deeply(\@got, $expectedReturn, "$testNameStart return value."); - - my $gotNextLine = <$fileHandle>; - is($gotNextLine, $testCase->{expectedNextLine}, "$testNameStart next read line."); -} |