#!perl -w
use strict;
# $Id: test.t,v 1.2 1997-12-07 12:05:40-05 roderick Exp $
#
# Copyright (c) 1997 Roderick Schertler. All rights reserved. This
# program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
BEGIN {
$| = 1;
print "1..17\n";
}
use String::ShellQuote;
sub ok {
my ($n, $result, @info) = @_;
if ($result) {
print "ok $n\n";
}
else {
print "not ok $n\n";
print "# ", @info, "\n" if @info;
}
}
my $testsub;
sub test {
my ($n, $want, @args) = @_;
my $got = &$testsub(@args);
ok $n, $got eq $want, qq[wanted "$want", got "$got"];
}
my $s = '\\';
$testsub = \&shell_quote;
test 1, '';
test 2, 'foo', 'foo';
test 3, 'foo bar', qw(foo bar);
test 4, "'foo*'", 'foo*';
test 5, "'foo bar'", 'foo bar';
test 6, "'foo'$s''bar'", "foo'bar";
test 7, "$s''foo'", "'foo";
test 8, "foo 'bar*'", qw(foo bar*);
test 9, "'foo'$s''foo' bar 'baz'$s'", qw(foo'foo bar baz');
test 10, "'$s'", "$s";
test 11, "$s'", "'";
test 12, "'$s'$s'", "$s'";
$testsub = \&shell_comment_quote;
test 13, '';
test 14, 'foo', 'foo';
test 15, "foo\n#bar", "foo\nbar";
test 16, "foo\n#bar\n#baz", "foo\nbar\nbaz";
eval { shell_comment_quote 'foo', 'bar' };
ok 17, $@ =~ /^\QToo many arguments to shell_comment_quote (got 2 expected 1)/,
$@;