#! /usr/bin/perl # Copyright (C) 2010, Geoffrey Leach # #=============================================================================== # # FILE: 05-findsub.t # # DESCRIPTION: Test configuration option "findsub" # # FILES: --- # BUGS: --- # NOTES: --- # AUTHOR: Geoffrey Leach (), # COMPANY: # VERSION: 1.9.7 # CREATED: Mon Oct 19 15:02:10 PDT 2009 # REVISION: --- #=============================================================================== use strict; use warnings; use Test::More tests => 10; use Test::Output; use 5.006; our $VERSION = '1.9.7'; ## no critic (RequireLocalizedPunctuationVars) ## no critic (ProhibitPackageVars)) ## no critic (ProtectPrivateVars) ## no critic (ProtectPrivateSubs) our %options; BEGIN { @ARGV = qw(foo -b --c); use Getopt::Auto( { 'findsub' => 1, 'nohelp' => 1 } ); } my $is_foo_called; sub foo { $is_foo_called = 1; return; } my $is_b_called; sub b { $is_b_called = 1; return; } my $is_c_called; sub c { $is_c_called = 1; return; } ok( $is_foo_called, 'foo() called' ); ok( $is_b_called, 'b() called' ); ok( $is_c_called, 'c() called' ); # The distinction here is that because the options -d and --e are # not registered they are not stored as options internally in # Getopt::Auto. Hence, it does not see them as options. # When they are processed in @ARGV, _our_ %options should be set. @ARGV = qw(-d --e); stderr_is( \&Getopt::Auto::_parse_args, "Getopt::Auto: -d is not a registered option\n" . "Getopt::Auto: --e is not a registered option\n", '-d and -e are not registered options' ); ok( Getopt::Auto::test_option('d') == 0, '-d is not an option' ); ok( Getopt::Auto::test_option('--e') == 0, '--e is not an option' ); ok( !exists $options{'-d'}, '-d is not in %options' ); ok( !exists $options{'--e'}, '--e is not in %options' ); ok( $ARGV[0] eq '-d', '-d returned to ARGV' ); ok( $ARGV[1] eq '--e', '--e returned to ARGV' ); exit 0; __END__