diff options
author | Steve Hay <steve.m.hay@googlemail.com> | 2015-12-03 14:00:55 +0000 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2015-12-03 14:05:50 +0000 |
commit | a28f0da7f5d8baefef1f3868d270369755117804 (patch) | |
tree | 61a3aab2265371c4b93cb9181f5203defc146762 /cpan | |
parent | 2eb17d1d8a93746b71831fb53576551007aafc64 (diff) | |
download | perl-a28f0da7f5d8baefef1f3868d270369755117804.tar.gz |
Undo blead customization of Text-ParseWords test script
The customization simply changed DOS EOLs to UNIX EOLs, dating from a time
when the intention was to get all files in blead into UNIX EOL format.
However, since then many more files have crept in with DOS EOLs (for
example, many files under cpan/Pod-Checker, cpan/Pod-Parser and
cpan/Pod-Usage have DOS EOLs in my Git workspace (on Windows) and in the
most recent perl release tarballs (5.22.1-RC3 (made from Windows) and
5.23.5 (not made from Windows AFAIK))) and they clearly do no harm, so
there is no point in trying to make all files have UNIX EOLs and keep them
that way, and therefore no point in this customization.
The GitHub PR that was referenced in Porting/Maintainers.pl has already
been closed (not merged).
There are no changes to ParseWords.t here other than the EOLs.
Diffstat (limited to 'cpan')
-rw-r--r-- | cpan/Text-ParseWords/t/ParseWords.t | 244 |
1 files changed, 122 insertions, 122 deletions
diff --git a/cpan/Text-ParseWords/t/ParseWords.t b/cpan/Text-ParseWords/t/ParseWords.t index 3fb7ac67b2..905ea00864 100644 --- a/cpan/Text-ParseWords/t/ParseWords.t +++ b/cpan/Text-ParseWords/t/ParseWords.t @@ -1,122 +1,122 @@ -#!./perl - -use warnings; -use Text::ParseWords; -use Test::More tests => 27; - -@words = shellwords(qq(foo "bar quiz" zoo)); -is($words[0], 'foo'); -is($words[1], 'bar quiz'); -is($words[2], 'zoo'); - -{ - # Gonna get some undefined things back - no warnings 'uninitialized' ; - - # Test quotewords() with other parameters and null last field - @words = quotewords(':+', 1, 'foo:::"bar:foo":zoo zoo:'); - is(join(";", @words), qq(foo;"bar:foo";zoo zoo;)); -} - -# Test $keep eq 'delimiters' and last field zero -@words = quotewords('\s+', 'delimiters', '4 3 2 1 0'); -is(join(";", @words), qq(4; ;3; ;2; ;1; ;0)); - -# Big ol' nasty test (thanks, Joerk!) -$string = 'aaaa"bbbbb" cc\\ cc \\\\\\"dddd" eee\\\\\\"ffff" "gg"'; - -# First with $keep == 1 -$result = join('|', parse_line('\s+', 1, $string)); -is($result, 'aaaa"bbbbb"|cc\\ cc|\\\\\\"dddd" eee\\\\\\"ffff"|"gg"'); - -# Now, $keep == 0 -$result = join('|', parse_line('\s+', 0, $string)); -is($result, 'aaaabbbbb|cc cc|\\"dddd eee\\"ffff|gg'); - -# Now test single quote behavior -$string = 'aaaa"bbbbb" cc\\ cc \\\\\\"dddd\' eee\\\\\\"ffff\' gg'; -$result = join('|', parse_line('\s+', 0, $string)); -is($result, 'aaaabbbbb|cc cc|\\"dddd eee\\\\\\"ffff|gg'); - -# Make sure @nested_quotewords does the right thing -@lists = nested_quotewords('\s+', 0, 'a b c', '1 2 3', 'x y z'); -is (@lists, 3); -is (@{$lists[0]}, 3); -is (@{$lists[1]}, 3); -is (@{$lists[2]}, 3); - -# Now test error return -$string = 'foo bar baz"bach blech boop'; - -@words = shellwords($string); -is(@words, 0); - -@words = parse_line('s+', 0, $string); -is(@words, 0); - -@words = quotewords('s+', 0, $string); -is(@words, 0); - -{ - # Gonna get some more undefined things back - no warnings 'uninitialized' ; - - @words = nested_quotewords('s+', 0, $string); - is(@words, 0); - - # Now test empty fields - $result = join('|', parse_line(':', 0, 'foo::0:"":::')); - is($result, 'foo||0||||'); - - # Test for 0 in quotes without $keep - $result = join('|', parse_line(':', 0, ':"0":')); - is($result, '|0|'); - - # Test for \001 in quoted string - $result = join('|', parse_line(':', 0, ':"' . "\001" . '":')); - is($result, "|\1|"); - -} - -# Now test perlish single quote behavior -$Text::ParseWords::PERL_SINGLE_QUOTE = 1; -$string = 'aaaa"bbbbb" cc\ cc \\\\\"dddd\' eee\\\\\"\\\'ffff\' gg'; -$result = join('|', parse_line('\s+', 0, $string)); -is($result, 'aaaabbbbb|cc cc|\"dddd eee\\\\"\'ffff|gg'); - -# test whitespace in the delimiters -@words = quotewords(' ', 1, '4 3 2 1 0'); -is(join(";", @words), qq(4;3;2;1;0)); - -# [perl #30442] Text::ParseWords does not handle backslashed newline inside quoted text -$string = qq{"field1" "field2\\\nstill field2" "field3"}; - -$result = join('|', parse_line("\t", 1, $string)); -is($result, qq{"field1"|"field2\\\nstill field2"|"field3"}); - -$result = join('|', parse_line("\t", 0, $string)); -is($result, "field1|field2\nstill field2|field3"); - -SKIP: { # unicode - skip "No unicode",1 if $]<5.008; - $string = qq{"field1"\x{1234}"field2\\\x{1234}still field2"\x{1234}"field3"}; - $result = join('|', parse_line("\x{1234}", 0, $string)); - is($result, "field1|field2\x{1234}still field2|field3",'Unicode'); -} - -# missing quote after matching regex used to hang after change #22997 -"1234" =~ /(1)(2)(3)(4)/; -$string = qq{"missing quote}; -$result = join('|', shellwords($string)); -is($result, ""); - -# make sure shellwords strips out leading whitespace and trailng undefs -# from parse_line, so it's behavior is more like /bin/sh -$result = join('|', shellwords(" aa \\ \\ bb ", " \\ ", "cc dd ee\\ ")); -is($result, "aa| | bb| |cc|dd|ee "); - -$SIG{ALRM} = sub {die "Timeout!"}; -alarm(3); -@words = Text::ParseWords::old_shellwords("foo\\"); -is(@words, 1); -alarm(0); +#!./perl
+
+use warnings;
+use Text::ParseWords;
+use Test::More tests => 27;
+
+@words = shellwords(qq(foo "bar quiz" zoo));
+is($words[0], 'foo');
+is($words[1], 'bar quiz');
+is($words[2], 'zoo');
+
+{
+ # Gonna get some undefined things back
+ no warnings 'uninitialized' ;
+
+ # Test quotewords() with other parameters and null last field
+ @words = quotewords(':+', 1, 'foo:::"bar:foo":zoo zoo:');
+ is(join(";", @words), qq(foo;"bar:foo";zoo zoo;));
+}
+
+# Test $keep eq 'delimiters' and last field zero
+@words = quotewords('\s+', 'delimiters', '4 3 2 1 0');
+is(join(";", @words), qq(4; ;3; ;2; ;1; ;0));
+
+# Big ol' nasty test (thanks, Joerk!)
+$string = 'aaaa"bbbbb" cc\\ cc \\\\\\"dddd" eee\\\\\\"ffff" "gg"';
+
+# First with $keep == 1
+$result = join('|', parse_line('\s+', 1, $string));
+is($result, 'aaaa"bbbbb"|cc\\ cc|\\\\\\"dddd" eee\\\\\\"ffff"|"gg"');
+
+# Now, $keep == 0
+$result = join('|', parse_line('\s+', 0, $string));
+is($result, 'aaaabbbbb|cc cc|\\"dddd eee\\"ffff|gg');
+
+# Now test single quote behavior
+$string = 'aaaa"bbbbb" cc\\ cc \\\\\\"dddd\' eee\\\\\\"ffff\' gg';
+$result = join('|', parse_line('\s+', 0, $string));
+is($result, 'aaaabbbbb|cc cc|\\"dddd eee\\\\\\"ffff|gg');
+
+# Make sure @nested_quotewords does the right thing
+@lists = nested_quotewords('\s+', 0, 'a b c', '1 2 3', 'x y z');
+is (@lists, 3);
+is (@{$lists[0]}, 3);
+is (@{$lists[1]}, 3);
+is (@{$lists[2]}, 3);
+
+# Now test error return
+$string = 'foo bar baz"bach blech boop';
+
+@words = shellwords($string);
+is(@words, 0);
+
+@words = parse_line('s+', 0, $string);
+is(@words, 0);
+
+@words = quotewords('s+', 0, $string);
+is(@words, 0);
+
+{
+ # Gonna get some more undefined things back
+ no warnings 'uninitialized' ;
+
+ @words = nested_quotewords('s+', 0, $string);
+ is(@words, 0);
+
+ # Now test empty fields
+ $result = join('|', parse_line(':', 0, 'foo::0:"":::'));
+ is($result, 'foo||0||||');
+
+ # Test for 0 in quotes without $keep
+ $result = join('|', parse_line(':', 0, ':"0":'));
+ is($result, '|0|');
+
+ # Test for \001 in quoted string
+ $result = join('|', parse_line(':', 0, ':"' . "\001" . '":'));
+ is($result, "|\1|");
+
+}
+
+# Now test perlish single quote behavior
+$Text::ParseWords::PERL_SINGLE_QUOTE = 1;
+$string = 'aaaa"bbbbb" cc\ cc \\\\\"dddd\' eee\\\\\"\\\'ffff\' gg';
+$result = join('|', parse_line('\s+', 0, $string));
+is($result, 'aaaabbbbb|cc cc|\"dddd eee\\\\"\'ffff|gg');
+
+# test whitespace in the delimiters
+@words = quotewords(' ', 1, '4 3 2 1 0');
+is(join(";", @words), qq(4;3;2;1;0));
+
+# [perl #30442] Text::ParseWords does not handle backslashed newline inside quoted text
+$string = qq{"field1" "field2\\\nstill field2" "field3"};
+
+$result = join('|', parse_line("\t", 1, $string));
+is($result, qq{"field1"|"field2\\\nstill field2"|"field3"});
+
+$result = join('|', parse_line("\t", 0, $string));
+is($result, "field1|field2\nstill field2|field3");
+
+SKIP: { # unicode
+ skip "No unicode",1 if $]<5.008;
+ $string = qq{"field1"\x{1234}"field2\\\x{1234}still field2"\x{1234}"field3"};
+ $result = join('|', parse_line("\x{1234}", 0, $string));
+ is($result, "field1|field2\x{1234}still field2|field3",'Unicode');
+}
+
+# missing quote after matching regex used to hang after change #22997
+"1234" =~ /(1)(2)(3)(4)/;
+$string = qq{"missing quote};
+$result = join('|', shellwords($string));
+is($result, "");
+
+# make sure shellwords strips out leading whitespace and trailng undefs
+# from parse_line, so it's behavior is more like /bin/sh
+$result = join('|', shellwords(" aa \\ \\ bb ", " \\ ", "cc dd ee\\ "));
+is($result, "aa| | bb| |cc|dd|ee ");
+
+$SIG{ALRM} = sub {die "Timeout!"};
+alarm(3);
+@words = Text::ParseWords::old_shellwords("foo\\");
+is(@words, 1);
+alarm(0);
|