File: gol-basic.t

package info (click to toggle)
perl 5.42.0-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 128,392 kB
  • sloc: perl: 534,963; ansic: 240,563; sh: 72,042; pascal: 6,934; xml: 2,428; yacc: 1,360; makefile: 1,197; cpp: 208; lisp: 1
file content (68 lines) | stat: -rw-r--r-- 2,071 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!./perl -w

no strict;

BEGIN {
    if ($ENV{PERL_CORE}) {
	@INC = '../lib';
	chdir 't';
    }
}

use Getopt::Long qw(:config no_ignore_case);
my $want_version="2.24";
die("Getopt::Long version $want_version required--this is only version ".
    $Getopt::Long::VERSION)
  unless $Getopt::Long::VERSION ge $want_version;

print "1..18\n";

@ARGV = qw(-Foo -baR --foo bar);
undef $opt_baR;
undef $opt_bar;
print (GetOptions("foo", "Foo=s") ? "" : "not ", "ok 1\n");
print ((defined $opt_foo)   ? "" : "not ", "ok 2\n");
print (($opt_foo == 1)      ? "" : "not ", "ok 3\n");
print ((defined $opt_Foo)   ? "" : "not ", "ok 4\n");
print (($opt_Foo eq "-baR") ? "" : "not ", "ok 5\n");
print ((@ARGV == 1)         ? "" : "not ", "ok 6\n");
print (($ARGV[0] eq "bar")  ? "" : "not ", "ok 7\n");
print (!(defined $opt_baR)  ? "" : "not ", "ok 8\n");
print (!(defined $opt_bar)  ? "" : "not ", "ok 9\n");

# Tests added, see https://rt.cpan.org/Ticket/Display.html?id=87581
@ARGV = qw(--help --file foo --foo --nobar --num=5 -- file);
$rv  = GetOptions(
	'help'   => \$HELP,
	'file:s' => \$FILE,
	'foo!'   => \$FOO,
	'bar!'   => \$BAR,
	'num:i'  => \$NO,
    );
print ($rv ? "" : "not "); print "ok 10\n";
print ("@ARGV" eq 'file' ? "" : "not ", "ok 11\n");
( $HELP && $FOO && !$BAR && $FILE eq 'foo' && $NO == 5 )
    ? print "" : print "not "; print "ok 12\n";

# Test behaviour when the same option name is given twice, but not an multi-value option.
# The option given later on the command line is used.
#
{
    my $foo;

    @ARGV = qw(--foo a --foo b);
    $rd = GetOptions('foo=s' => \$foo);
    print ($rv ? "" : "not "); print "ok 13\n";
    print ($foo eq 'b' ? "" : "not ", "ok 14\n");

    @ARGV = qw(--no-foo --foo);
    $rd = GetOptions('foo!' => \$foo);
    print ($rv ? "" : "not "); print "ok 15\n";
    print ($foo eq '1' ? "" : "not ", "ok 16\n");

    @ARGV = qw(--foo --no-foo);
    $rd = GetOptions('foo!' => \$foo);
    print ($rv ? "" : "not "); print "ok 17\n";
    # Check it is set to an explicit 0.
    print ($foo eq '0' ? "" : "not ", "ok 18\n");
}