[irons@emmylou: Crypt-GPG-1.28] perl -Iblib/lib/ -d t/gpg.t Default die handler restored. Loading DB routines from perl5db.pl version 1.07 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. 1..40 main::(t/gpg.t:18): my $pgpcompat = 0; # Set to 1 to test PGP5 compatibility. DB<1> t Trace = on DB<1> c main::(t/gpg.t:20): print STDERR "\n\n*** NOTE: Some of these tests can take quite a long time. ***\n"; *** NOTE: Some of these tests can take quite a long time. *** main::(t/gpg.t:22): my ($gpg, $pgp, @x, @y, $pub, $sec); main::(t/gpg.t:23): my ($gpgdebug, $pgpdebug) = (0,0); main::(t/gpg.t:24): my $dir = $0 =~ /^\// ? $0 : $ENV{PWD} . '/' . $0; $dir =~ s/\/[^\/]*$//; main::(t/gpg.t:24): my $dir = $0 =~ /^\// ? $0 : $ENV{PWD} . '/' . $0; $dir =~ s/\/[^\/]*$//; main::(t/gpg.t:25): $ENV{HOME} = $dir; main::(t/gpg.t:36): }); Test::ok(/System/Library/Perl/Test.pm:53): 53: croak "ok: plan before you test!" if !$planned; Test::ok(/System/Library/Perl/Test.pm:54): 54: my ($pkg,$file,$line) = caller($TestLevel); Test::ok(/System/Library/Perl/Test.pm:55): 55: my $repetition = ++$history{"$file:$line"}; Test::ok(/System/Library/Perl/Test.pm:56): 56: my $context = ("$file at line $line". 57: ($repetition > 1 ? " fail \#$repetition" : '')); Test::ok(/System/Library/Perl/Test.pm:58): 58: my $ok=0; Test::ok(/System/Library/Perl/Test.pm:59): 59: my $result = to_value(shift); Test::to_value(/System/Library/Perl/Test.pm:48): 48: my ($v) = @_; Test::to_value(/System/Library/Perl/Test.pm:49): 49: (ref $v or '') eq 'CODE' ? $v->() : $v; main::CODE(0x2e9c4)(t/gpg.t:28): if ($pgpcompat) { main::CODE(0x2e9c4)(t/gpg.t:34): $pgp or print STDERR "*** Skipping PGP5 compatibility tests. ***\n"; *** Skipping PGP5 compatibility tests. *** main::CODE(0x2e9c4)(t/gpg.t:35): print STDERR "\n"; Test::ok(/System/Library/Perl/Test.pm:60): 60: my ($expected,$diag); Test::ok(/System/Library/Perl/Test.pm:61): 61: if (@_ == 0) { Test::ok(/System/Library/Perl/Test.pm:62): 62: $ok = $result; Test::ok(/System/Library/Perl/Test.pm:79): 79: my $todo = $todo{$ntest}; Test::ok(/System/Library/Perl/Test.pm:80): 80: if ($todo and $ok) { Test::ok(/System/Library/Perl/Test.pm:90): 90: my $okline = ''; Test::ok(/System/Library/Perl/Test.pm:91): 91: $okline = "not " if !$ok; Test::ok(/System/Library/Perl/Test.pm:92): 92: $okline .= "ok $ntest\n"; Test::ok(/System/Library/Perl/Test.pm:93): 93: print $TESTOUT $okline; ok 1 Test::ok(/System/Library/Perl/Test.pm:95): 95: if (!$ok) { Test::ok(/System/Library/Perl/Test.pm:126): 126: ++ $ntest; Test::ok(/System/Library/Perl/Test.pm:127): 127: $ok; main::(t/gpg.t:40): }); Test::ok(/System/Library/Perl/Test.pm:53): 53: croak "ok: plan before you test!" if !$planned; Test::ok(/System/Library/Perl/Test.pm:54): 54: my ($pkg,$file,$line) = caller($TestLevel); Test::ok(/System/Library/Perl/Test.pm:55): 55: my $repetition = ++$history{"$file:$line"}; Test::ok(/System/Library/Perl/Test.pm:56): 56: my $context = ("$file at line $line". 57: ($repetition > 1 ? " fail \#$repetition" : '')); Test::ok(/System/Library/Perl/Test.pm:58): 58: my $ok=0; Test::ok(/System/Library/Perl/Test.pm:59): 59: my $result = to_value(shift); Test::to_value(/System/Library/Perl/Test.pm:48): 48: my ($v) = @_; Test::to_value(/System/Library/Perl/Test.pm:49): 49: (ref $v or '') eq 'CODE' ? $v->() : $v; main::CODE(0x2e9c4)(t/gpg.t:39): $gpg = new Crypt::GPG; Crypt::GPG::new(blib/lib//Crypt/GPG.pm:26): 26: bless { GPGBIN => 'gpg', 27: FORCEDOPTS => '--no-secmem-warning', 28: GPGOPTS => '--lock-multiple --compress-algo 1 --cipher-algo cast5 --force-v3-sigs', 29: VERSION => "Version: Crypt::GPG v$VERSION\n", 30: DELAY => 0, 31: PASSPHRASE => '', 32: COMMENT => '', 33: ARMOR => 1, 34: DETACH => 1, 35: ENCRYPTSAFE => 1, 36: TEXT => 1, 37: SIGNFIRST => 1, 38: SECRETKEY => '', 39: DEBUG => 0, 40: VKEYID => '^.*$', 41: VRCPT => '^.*$', 42: VPASSPHRASE => '^.*$', 43: VNAME => '^[a-zA-Z][\w\.\s\-\_]+$', 44: VEXPIRE => '^\d+$', 45: VKEYSZ => '^\d+$', 46: VKEYTYPE => '^ELG-E$', 47: VTRUSTLEVEL => '^[1-4]$', 48: VEMAIL => '^[\w\.\-]+\@[\w\.\-]+\.[A-Za-z]{2,3}$' Test::ok(/System/Library/Perl/Test.pm:60): 60: my ($expected,$diag); Test::ok(/System/Library/Perl/Test.pm:61): 61: if (@_ == 0) { Test::ok(/System/Library/Perl/Test.pm:62): 62: $ok = $result; Test::ok(/System/Library/Perl/Test.pm:79): 79: my $todo = $todo{$ntest}; Test::ok(/System/Library/Perl/Test.pm:80): 80: if ($todo and $ok) { Test::ok(/System/Library/Perl/Test.pm:90): 90: my $okline = ''; Test::ok(/System/Library/Perl/Test.pm:91): 91: $okline = "not " if !$ok; Test::ok(/System/Library/Perl/Test.pm:92): 92: $okline .= "ok $ntest\n"; Test::ok(/System/Library/Perl/Test.pm:93): 93: print $TESTOUT $okline; ok 2 Test::ok(/System/Library/Perl/Test.pm:95): 95: if (!$ok) { Test::ok(/System/Library/Perl/Test.pm:126): 126: ++ $ntest; Test::ok(/System/Library/Perl/Test.pm:127): 127: $ok; main::(t/gpg.t:45): }, $gpgdebug); Test::ok(/System/Library/Perl/Test.pm:53): 53: croak "ok: plan before you test!" if !$planned; Test::ok(/System/Library/Perl/Test.pm:54): 54: my ($pkg,$file,$line) = caller($TestLevel); Test::ok(/System/Library/Perl/Test.pm:55): 55: my $repetition = ++$history{"$file:$line"}; Test::ok(/System/Library/Perl/Test.pm:56): 56: my $context = ("$file at line $line". 57: ($repetition > 1 ? " fail \#$repetition" : '')); Test::ok(/System/Library/Perl/Test.pm:58): 58: my $ok=0; Test::ok(/System/Library/Perl/Test.pm:59): 59: my $result = to_value(shift); Test::to_value(/System/Library/Perl/Test.pm:48): 48: my ($v) = @_; Test::to_value(/System/Library/Perl/Test.pm:49): 49: (ref $v or '') eq 'CODE' ? $v->() : $v; main::CODE(0x2e9c4)(t/gpg.t:43): $gpg->gpgopts('--compress-algo 1 --cipher-algo cast5 --force-v3-sigs --no-comment'); Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:467): 467: my $self = shift; (my $auto = $AUTOLOAD) =~ s/.*:://; Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:467): 467: my $self = shift; (my $auto = $AUTOLOAD) =~ s/.*:://; Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:468): 468: if ($auto =~ /^(passphrase|secretkey|armor|gpgbin|gpgopts|delay| 469: detach|encryptsafe|version|comment|debug)$/x) { Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:470): 470: $self->{"\U$auto"} = shift; main::CODE(0x2e9c4)(t/gpg.t:44): $gpg->debug($gpgdebug); Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:467): 467: my $self = shift; (my $auto = $AUTOLOAD) =~ s/.*:://; Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:467): 467: my $self = shift; (my $auto = $AUTOLOAD) =~ s/.*:://; Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:468): 468: if ($auto =~ /^(passphrase|secretkey|armor|gpgbin|gpgopts|delay| 469: detach|encryptsafe|version|comment|debug)$/x) { Crypt::GPG::AUTOLOAD(blib/lib//Crypt/GPG.pm:470): 470: $self->{"\U$auto"} = shift; Test::ok(/System/Library/Perl/Test.pm:60): 60: my ($expected,$diag); Test::ok(/System/Library/Perl/Test.pm:61): 61: if (@_ == 0) { Test::ok(/System/Library/Perl/Test.pm:64): 64: $expected = to_value(shift); Test::to_value(/System/Library/Perl/Test.pm:48): 48: my ($v) = @_; Test::to_value(/System/Library/Perl/Test.pm:49): 49: (ref $v or '') eq 'CODE' ? $v->() : $v; Test::ok(/System/Library/Perl/Test.pm:65): 65: my ($regex,$ignore); Test::ok(/System/Library/Perl/Test.pm:66): 66: if (!defined $expected) { Test::ok(/System/Library/Perl/Test.pm:76): 76: $ok = $result eq $expected; Test::ok(/System/Library/Perl/Test.pm:79): 79: my $todo = $todo{$ntest}; Test::ok(/System/Library/Perl/Test.pm:80): 80: if ($todo and $ok) { Test::ok(/System/Library/Perl/Test.pm:90): 90: my $okline = ''; Test::ok(/System/Library/Perl/Test.pm:91): 91: $okline = "not " if !$ok; Test::ok(/System/Library/Perl/Test.pm:92): 92: $okline .= "ok $ntest\n"; Test::ok(/System/Library/Perl/Test.pm:93): 93: print $TESTOUT $okline; ok 3 Test::ok(/System/Library/Perl/Test.pm:95): 95: if (!$ok) { Test::ok(/System/Library/Perl/Test.pm:126): 126: ++ $ntest; Test::ok(/System/Library/Perl/Test.pm:127): 127: $ok; main::(t/gpg.t:50): }, $pgpdebug); Test::skip(/System/Library/Perl/Test.pm:131): 131: my $whyskip = to_value(shift); Test::to_value(/System/Library/Perl/Test.pm:48): 48: my ($v) = @_; Test::to_value(/System/Library/Perl/Test.pm:49): 49: (ref $v or '') eq 'CODE' ? $v->() : $v; Test::skip(/System/Library/Perl/Test.pm:132): 132: if ($whyskip) { Test::skip(/System/Library/Perl/Test.pm:133): 133: $whyskip = 'skip' if $whyskip =~ m/^\d+$/; Test::skip(/System/Library/Perl/Test.pm:134): 134: print $TESTOUT "ok $ntest # $whyskip\n"; ok 4 # skip Test::skip(/System/Library/Perl/Test.pm:135): 135: ++ $ntest; Test::skip(/System/Library/Perl/Test.pm:136): 136: 1; main::(t/gpg.t:52): for my $bits (768, 1024, 2048) { main::(t/gpg.t:53): for my $type ('ELG-E') { main::(t/gpg.t:66): }, 0); Test::ok(/System/Library/Perl/Test.pm:53): 53: croak "ok: plan before you test!" if !$planned; Test::ok(/System/Library/Perl/Test.pm:54): 54: my ($pkg,$file,$line) = caller($TestLevel); Test::ok(/System/Library/Perl/Test.pm:55): 55: my $repetition = ++$history{"$file:$line"}; Test::ok(/System/Library/Perl/Test.pm:56): 56: my $context = ("$file at line $line". 57: ($repetition > 1 ? " fail \#$repetition" : '')); Test::ok(/System/Library/Perl/Test.pm:58): 58: my $ok=0; Test::ok(/System/Library/Perl/Test.pm:59): 59: my $result = to_value(shift); Test::to_value(/System/Library/Perl/Test.pm:48): 48: my ($v) = @_; Test::to_value(/System/Library/Perl/Test.pm:49): 49: (ref $v or '') eq 'CODE' ? $v->() : $v; main::CODE(0x2e9c4)(t/gpg.t:58): my $status = $gpg->keygen("A $bits $type", "$bits$type\@test.com", main::CODE(0x2e9c4)(t/gpg.t:59): $type, $bits, 0, "$bits Bit $type Test Key"); Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:232): 232: my $self = shift; my ($name, $email, $keytype, $keysize, $expire, $pass) = @_; Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:232): 232: my $self = shift; my ($name, $email, $keytype, $keysize, $expire, $pass) = @_; Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:233): 233: return unless $keysize =~ /$self->{VKEYSZ}/ and $keysize > 767 and $keysize < 4097 234: and $keytype =~ /$self->{VKEYTYPE}/ and $name =~ /$self->{VNAME}/ and length ($name) > 4 235: and $expire =~ /$self->{VEXPIRE}/ and $email =~ /$self->{VEMAIL}/ 236: and $pass =~ /$self->{VPASSPHRASE}/; Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:237): 237: my $bigkey = ($keysize > 1536); Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:238): 238: my @opts = (split (/\s+/, $self->{FORCEDOPTS}), split (/\s+/, $self->{GPGOPTS})); Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:239): 239: my $discard = backtick ($self->{GPGBIN}, @opts, '--no-tty', '--gen-random', 0, 1); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:275): 275: use English; my @ret; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:276): 276: die "Can't fork: $!" unless defined(my $pid = open(KID, "-|")); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:277): 277: if ($pid) { # parent Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:284): 284: my @temp = ($EUID, $EGID); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:285): 285: my $orig_uid = $UID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:286): 286: my $orig_gid = $GID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:287): 287: $EUID = $UID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:288): 288: $EGID = $GID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:290): 290: $UID = $orig_uid; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:291): 291: $GID = $orig_gid; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:293): 293: ($EUID, $EGID) = @temp; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:294): 294: die "Can't drop privileges" 295: unless $UID == $EUID && $GID eq $EGID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:296): 296: exec (@_) or die "can't exec $_[0]: $!"; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:277): 277: if ($pid) { # parent Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:278): 278: while () { Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:279): 279: push(@ret, $_); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:278): 278: while () { Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:281): 281: close KID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:298): 298: return @ret; Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:240): 240: $discard = backtick ($self->{GPGBIN}, @opts, '--no-tty', '--gen-random', 0, 1); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:275): 275: use English; my @ret; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:276): 276: die "Can't fork: $!" unless defined(my $pid = open(KID, "-|")); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:277): 277: if ($pid) { # parent Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:284): 284: my @temp = ($EUID, $EGID); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:285): 285: my $orig_uid = $UID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:286): 286: my $orig_gid = $GID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:287): 287: $EUID = $UID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:288): 288: $EGID = $GID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:290): 290: $UID = $orig_uid; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:291): 291: $GID = $orig_gid; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:293): 293: ($EUID, $EGID) = @temp; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:294): 294: die "Can't drop privileges" 295: unless $UID == $EUID && $GID eq $EGID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:296): 296: exec (@_) or die "can't exec $_[0]: $!"; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:277): 277: if ($pid) { # parent Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:278): 278: while () { Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:279): 279: push(@ret, $_); Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:278): 278: while () { Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:281): 281: close KID; Crypt::GPG::backtick(blib/lib//Crypt/GPG.pm:298): 298: return @ret; Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:241): 241: my $pid = open(GPG, "-|"); Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:242): 242: return undef unless (defined $pid); Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:243): 243: if ($pid) { Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:248): 248: my $opts = "$self->{FORCEDOPTS} $self->{GPGOPTS}"; Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:249): 249: my $expect = Expect->spawn ("$self->{GPGBIN} $opts --gen-key; sleep 1"); $expect->log_stdout(0); Expect::spawn(/Library/Perl/Expect.pm:90): 90: my ($class) = shift; Expect::spawn(/Library/Perl/Expect.pm:91): 91: my $self; Expect::spawn(/Library/Perl/Expect.pm:93): 93: if (ref($class)) { Expect::spawn(/Library/Perl/Expect.pm:96): 96: $self = $class->new(); Expect::new(/Library/Perl/Expect.pm:68): 68: my ($class) = shift; Expect::new(/Library/Perl/Expect.pm:69): 69: $class = ref($class) if ref($class); # so we can be called as $exp->new() Expect::new(/Library/Perl/Expect.pm:72): 72: my($self) = new IO::Pty; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:20): 20: my ($class) = $_[0] || "IO::Pty"; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:21): 21: $class = ref($class) if ref($class); IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:22): 22: @_ <= 1 or croak 'usage: new $class'; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:24): 24: my ($ptyfd, $ttyfd, $ttyname) = pty_allocate(); IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:26): 26: croak "Cannot open a pty" if not defined $ptyfd; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:28): 28: my $pty = $class->SUPER::new_from_fd($ptyfd, "r+"); IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:306): 306: my $class = ref($_[0]) || $_[0] || "IO::Handle"; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:307): 307: @_ == 3 or croak "usage: new_from_fd $class FD, MODE"; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:308): 308: my $io = gensym; Symbol::gensym(/System/Library/Perl/Symbol.pm:86): 86: my $name = "GEN" . $genseq++; Symbol::gensym(/System/Library/Perl/Symbol.pm:87): 87: my $ref = \*{$genpkg . $name}; Symbol::gensym(/System/Library/Perl/Symbol.pm:87): 87: my $ref = \*{$genpkg . $name}; Symbol::gensym(/System/Library/Perl/Symbol.pm:88): 88: delete $$genpkg{$name}; Symbol::gensym(/System/Library/Perl/Symbol.pm:89): 89: $ref; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:309): 309: shift; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:310): 310: IO::Handle::fdopen($io, @_) 311: or return undef; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:339): 339: @_ == 3 or croak 'usage: $io->fdopen(FD, MODE)'; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:340): 340: my ($io, $fd, $mode) = @_; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:341): 341: local(*GLOB); IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:343): 343: if (ref($fd) && "".$fd =~ /GLOB\(/o) { IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:350): 350: $fd = "=$fd"; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:353): 353: open($io, _open_mode_string($mode) . '&' . $fd) 354: ? $io : undef; IO::Handle::_open_mode_string(/System/Library/Perl/darwin/IO/Handle.pm:329): 329: my ($mode) = @_; IO::Handle::_open_mode_string(/System/Library/Perl/darwin/IO/Handle.pm:330): 330: $mode =~ /^\+?(<|>>?)$/ 331: or $mode =~ s/^r(\+?)$/$1/ 333: or $mode =~ s/^a(\+?)$/$1>>/ 334: or croak "IO::Handle: bad open mode: $mode"; IO::Handle::_open_mode_string(/System/Library/Perl/darwin/IO/Handle.pm:335): 335: $mode; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:312): 312: bless $io, $class; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:29): 29: croak "Cannot create a new $class from fd $ptyfd: $!" if not $pty; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:30): 30: $pty->autoflush(1); IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:460): 460: my $old = new SelectSaver qualify($_[0], caller); Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:242): 242: return undef unless (defined $pid); Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:243): 243: if ($pid) { Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:244): 244: $SIG{CHLD} = 'IGNORE'; Crypt::GPG::keygen(blib/lib//Crypt/GPG.pm:245): 245: return \*GPG; main::CODE(0x2e9c4)(t/gpg.t:60): return 0 unless $status; main::CODE(0x2e9c4)(t/gpg.t:61): $|=1; main::CODE(0x2e9c4)(t/gpg.t:62): while (<$status>) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:40): 40: @_ >= 1 && @_ <= 2 or croak 'usage: new SelectSaver [FILEHANDLE]'; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:41): 41: my $fh = select; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:42): 42: my $self = bless [$fh], $_[0]; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:43): 43: select qualify($_[1], caller) if @_ > 1; Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:44): 44: $self; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:461): 461: my $prev = $|; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:462): 462: $| = @_ > 1 ? $_[1] : 1; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:463): 463: $prev; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:48): 48: my $this = $_[0]; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:49): 49: select $$this[0]; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:31): 31: bless $pty => $class; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:33): 33: my $slave = IO::Tty->new_from_fd($ttyfd, "r+"); IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:306): 306: my $class = ref($_[0]) || $_[0] || "IO::Handle"; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:307): 307: @_ == 3 or croak "usage: new_from_fd $class FD, MODE"; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:308): 308: my $io = gensym; Symbol::gensym(/System/Library/Perl/Symbol.pm:86): 86: my $name = "GEN" . $genseq++; Symbol::gensym(/System/Library/Perl/Symbol.pm:87): 87: my $ref = \*{$genpkg . $name}; Symbol::gensym(/System/Library/Perl/Symbol.pm:87): 87: my $ref = \*{$genpkg . $name}; Symbol::gensym(/System/Library/Perl/Symbol.pm:88): 88: delete $$genpkg{$name}; Symbol::gensym(/System/Library/Perl/Symbol.pm:89): 89: $ref; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:309): 309: shift; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:310): 310: IO::Handle::fdopen($io, @_) 311: or return undef; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:339): 339: @_ == 3 or croak 'usage: $io->fdopen(FD, MODE)'; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:340): 340: my ($io, $fd, $mode) = @_; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:341): 341: local(*GLOB); IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:343): 343: if (ref($fd) && "".$fd =~ /GLOB\(/o) { IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:350): 350: $fd = "=$fd"; IO::Handle::fdopen(/System/Library/Perl/darwin/IO/Handle.pm:353): 353: open($io, _open_mode_string($mode) . '&' . $fd) 354: ? $io : undef; IO::Handle::_open_mode_string(/System/Library/Perl/darwin/IO/Handle.pm:329): 329: my ($mode) = @_; IO::Handle::_open_mode_string(/System/Library/Perl/darwin/IO/Handle.pm:330): 330: $mode =~ /^\+?(<|>>?)$/ 331: or $mode =~ s/^r(\+?)$/$1/ 333: or $mode =~ s/^a(\+?)$/$1>>/ 334: or croak "IO::Handle: bad open mode: $mode"; IO::Handle::_open_mode_string(/System/Library/Perl/darwin/IO/Handle.pm:335): 335: $mode; IO::Handle::new_from_fd(/System/Library/Perl/darwin/IO/Handle.pm:312): 312: bless $io, $class; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:34): 34: croak "Cannot create a new IO::Tty from fd $ttyfd: $!" if not $slave; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:35): 35: $slave->autoflush(1); IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:460): 460: my $old = new SelectSaver qualify($_[0], caller); Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:40): 40: @_ >= 1 && @_ <= 2 or croak 'usage: new SelectSaver [FILEHANDLE]'; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:41): 41: my $fh = select; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:42): 42: my $self = bless [$fh], $_[0]; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:43): 43: select qualify($_[1], caller) if @_ > 1; Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:44): 44: $self; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:461): 461: my $prev = $|; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:462): 462: $| = @_ > 1 ? $_[1] : 1; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:463): 463: $prev; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:48): 48: my $this = $_[0]; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:49): 49: select $$this[0]; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:37): 37: ${*$pty}{'io_pty_slave'} = $slave; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:37): 37: ${*$pty}{'io_pty_slave'} = $slave; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:38): 38: ${*$pty}{'io_pty_ttyname'} = $ttyname; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:38): 38: ${*$pty}{'io_pty_ttyname'} = $ttyname; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:39): 39: ${*$slave}{'io_tty_ttyname'} = $ttyname; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:39): 39: ${*$slave}{'io_tty_ttyname'} = $ttyname; IO::Pty::new(/Library/Perl/darwin/IO/Pty.pm:41): 41: return $pty; Expect::new(/Library/Perl/Expect.pm:73): 73: die "$class: Could not assign a pty" unless $self; Expect::new(/Library/Perl/Expect.pm:74): 74: bless $self => $class; Expect::new(/Library/Perl/Expect.pm:75): 75: $self->autoflush(1); IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:460): 460: my $old = new SelectSaver qualify($_[0], caller); Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:40): 40: @_ >= 1 && @_ <= 2 or croak 'usage: new SelectSaver [FILEHANDLE]'; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:41): 41: my $fh = select; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:42): 42: my $self = bless [$fh], $_[0]; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:43): 43: select qualify($_[1], caller) if @_ > 1; Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:44): 44: $self; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:461): 461: my $prev = $|; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:462): 462: $| = @_ > 1 ? $_[1] : 1; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:463): 463: $prev; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:48): 48: my $this = $_[0]; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:49): 49: select $$this[0]; Expect::new(/Library/Perl/Expect.pm:79): 79: ${*$self}{exp_Log_Stdout} = 1; Expect::new(/Library/Perl/Expect.pm:79): 79: ${*$self}{exp_Log_Stdout} = 1; Expect::new(/Library/Perl/Expect.pm:80): 80: $self->_init_vars(); Expect::_init_vars(/Library/Perl/Expect.pm:1456): 1456: my($self) = shift; Expect::_init_vars(/Library/Perl/Expect.pm:1459): 1459: ${*$self}{exp_Log_Stdout} = $Expect::Log_Stdout 1460: if defined ($Expect::Log_Stdout); Expect::_init_vars(/Library/Perl/Expect.pm:1461): 1461: ${*$self}{exp_Log_Group} = $Expect::Log_Group; Expect::_init_vars(/Library/Perl/Expect.pm:1461): 1461: ${*$self}{exp_Log_Group} = $Expect::Log_Group; Expect::_init_vars(/Library/Perl/Expect.pm:1462): 1462: ${*$self}{exp_Debug} = $Expect::Debug; Expect::_init_vars(/Library/Perl/Expect.pm:1462): 1462: ${*$self}{exp_Debug} = $Expect::Debug; Expect::_init_vars(/Library/Perl/Expect.pm:1463): 1463: ${*$self}{exp_Exp_Internal} = $Expect::Exp_Internal; Expect::_init_vars(/Library/Perl/Expect.pm:1463): 1463: ${*$self}{exp_Exp_Internal} = $Expect::Exp_Internal; Expect::_init_vars(/Library/Perl/Expect.pm:1464): 1464: ${*$self}{exp_Manual_Stty} = $Expect::Manual_Stty; Expect::_init_vars(/Library/Perl/Expect.pm:1464): 1464: ${*$self}{exp_Manual_Stty} = $Expect::Manual_Stty; Expect::_init_vars(/Library/Perl/Expect.pm:1465): 1465: ${*$self}{exp_Stored_Stty} = 'sane'; Expect::_init_vars(/Library/Perl/Expect.pm:1465): 1465: ${*$self}{exp_Stored_Stty} = 'sane'; Expect::_init_vars(/Library/Perl/Expect.pm:1466): 1466: ${*$self}{exp_Do_Soft_Close} = $Expect::Do_Soft_Close; Expect::_init_vars(/Library/Perl/Expect.pm:1466): 1466: ${*$self}{exp_Do_Soft_Close} = $Expect::Do_Soft_Close; Expect::_init_vars(/Library/Perl/Expect.pm:1469): 1469: ${*$self}{exp_Pty_Buffer} = ''; Expect::_init_vars(/Library/Perl/Expect.pm:1469): 1469: ${*$self}{exp_Pty_Buffer} = ''; Expect::_init_vars(/Library/Perl/Expect.pm:1472): 1472: ${*$self}{exp_Max_Accum} = $Expect::Exp_Max_Accum; Expect::_init_vars(/Library/Perl/Expect.pm:1472): 1472: ${*$self}{exp_Max_Accum} = $Expect::Exp_Max_Accum; Expect::_init_vars(/Library/Perl/Expect.pm:1473): 1473: ${*$self}{exp_Accum} = ''; Expect::_init_vars(/Library/Perl/Expect.pm:1473): 1473: ${*$self}{exp_Accum} = ''; Expect::_init_vars(/Library/Perl/Expect.pm:1474): 1474: ${*$self}{exp_NoTransfer} = 0; Expect::_init_vars(/Library/Perl/Expect.pm:1474): 1474: ${*$self}{exp_NoTransfer} = 0; Expect::_init_vars(/Library/Perl/Expect.pm:1477): 1477: ${*$self}{exp_expect_before_list} = []; Expect::_init_vars(/Library/Perl/Expect.pm:1477): 1477: ${*$self}{exp_expect_before_list} = []; Expect::_init_vars(/Library/Perl/Expect.pm:1478): 1478: ${*$self}{exp_expect_after_list} = []; Expect::_init_vars(/Library/Perl/Expect.pm:1478): 1478: ${*$self}{exp_expect_after_list} = []; Expect::new(/Library/Perl/Expect.pm:82): 82: if (@_) { Expect::new(/Library/Perl/Expect.pm:86): 86: return $self; Expect::spawn(/Library/Perl/Expect.pm:100): 100: if exists ${*$self}{"exp_Command"}; Expect::spawn(/Library/Perl/Expect.pm:99): 99: croak "Cannot reuse an object with an already spawned command" Expect::spawn(/Library/Perl/Expect.pm:101): 101: my(@cmd) = @_; # spawn is passed command line args. Expect::spawn(/Library/Perl/Expect.pm:102): 102: ${*$self}{"exp_Command"} = \@cmd; Expect::spawn(/Library/Perl/Expect.pm:102): 102: ${*$self}{"exp_Command"} = \@cmd; Expect::spawn(/Library/Perl/Expect.pm:105): 105: pipe(STAT_RDR, STAT_WTR) or die "Cannot open pipe: $!"; Expect::spawn(/Library/Perl/Expect.pm:106): 106: STAT_WTR->autoflush(1); IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:460): 460: my $old = new SelectSaver qualify($_[0], caller); Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:40): 40: @_ >= 1 && @_ <= 2 or croak 'usage: new SelectSaver [FILEHANDLE]'; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:41): 41: my $fh = select; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:42): 42: my $self = bless [$fh], $_[0]; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:43): 43: select qualify($_[1], caller) if @_ > 1; Symbol::qualify(/System/Library/Perl/Symbol.pm:95): 95: my ($name) = @_; Symbol::qualify(/System/Library/Perl/Symbol.pm:96): 96: if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { Symbol::qualify(/System/Library/Perl/Symbol.pm:107): 107: $name; SelectSaver::new(/System/Library/Perl/SelectSaver.pm:44): 44: $self; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:461): 461: my $prev = $|; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:462): 462: $| = @_ > 1 ? $_[1] : 1; IO::Handle::autoflush(/System/Library/Perl/darwin/IO/Handle.pm:463): 463: $prev; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:48): 48: my $this = $_[0]; SelectSaver::DESTROY(/System/Library/Perl/SelectSaver.pm:49): 49: select $$this[0]; Expect::spawn(/Library/Perl/Expect.pm:108): 108: my $pid = fork; Expect::spawn(/Library/Perl/Expect.pm:110): 110: unless (defined ($pid)) { Expect::spawn(/Library/Perl/Expect.pm:115): 115: if($pid) { Expect::spawn(/Library/Perl/Expect.pm:135): 135: close STAT_RDR; Expect::spawn(/Library/Perl/Expect.pm:137): 137: $self->make_slave_controlling_terminal(); IO::Pty::make_slave_controlling_terminal(/Library/Perl/darwin/IO/Pty.pm:82): 82: @_ == 1 or croak 'usage: $pty->make_slave_controlling_terminal();'; IO::Pty::make_slave_controlling_terminal(/Library/Perl/darwin/IO/Pty.pm:84): 84: my $self = shift; IO::Pty::make_slave_controlling_terminal(/Library/Perl/darwin/IO/Pty.pm:85): 85: local(*DEVTTY); IO::Pty::make_slave_controlling_terminal(/Library/Perl/darwin/IO/Pty.pm:88): 88: if (defined TIOCNOTTY) { IO::Tty::Constant::TIOCNOTTY(/System/Library/Perl/darwin/DynaLoader.pm:65535): 65535: IO::Pty::make_slave_controlling_terminal(/Library/Perl/darwin/IO/Pty.pm:89): 89: if (open (\*DEVTTY, "/dev/tty")) { IO::Pty::make_slave_controlling_terminal(/Library/Perl/darwin/IO/Pty.pm:90): 90: ioctl( \*DEVTTY, TIOCNOTTY, 0 ); IO::Tty::Constant::TIOCNOTTY(/System/Library/Perl/darwin/DynaLoader.pm:65535): 65535: Expect::spawn(/Library/Perl/Expect.pm:110): 110: unless (defined ($pid)) { Expect::spawn(/Library/Perl/Expect.pm:115): 115: if($pid) { Expect::spawn(/Library/Perl/Expect.pm:117): 117: my $errno; Expect::spawn(/Library/Perl/Expect.pm:118): 118: ${*$self}{exp_Pid} = $pid; Expect::spawn(/Library/Perl/Expect.pm:118): 118: ${*$self}{exp_Pid} = $pid; Expect::spawn(/Library/Perl/Expect.pm:119): 119: close STAT_WTR; Expect::spawn(/Library/Perl/Expect.pm:120): 120: $self->close_slave(); IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:52): 52: @_ == 1 or croak 'usage: $pty->close_slave();'; IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:54): 54: my $master = shift; IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:56): 56: if (exists ${*$master}{'io_pty_slave'}) { IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:56): 56: if (exists ${*$master}{'io_pty_slave'}) { IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:57): 57: close ${*$master}{'io_pty_slave'}; IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:57): 57: close ${*$master}{'io_pty_slave'}; IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:58): 58: delete ${*$master}{'io_pty_slave'}; IO::Pty::close_slave(/Library/Perl/darwin/IO/Pty.pm:58): 58: delete ${*$master}{'io_pty_slave'}; Expect::spawn(/Library/Perl/Expect.pm:121): 121: $self->set_raw() if $self->raw_pty and isatty($self); Expect::AUTOLOAD(/Library/Perl/Expect.pm:243): 243: my $self = shift; Expect::AUTOLOAD(/Library/Perl/Expect.pm:244): 244: my $type = ref($self) 245: or croak "$self is not an object"; Expect::AUTOLOAD(/Library/Perl/Expect.pm:248): 248: my $name = $AUTOLOAD; Expect::AUTOLOAD(/Library/Perl/Expect.pm:249): 249: $name =~ s/.*:://; # strip fully-qualified portion Expect::AUTOLOAD(/Library/Perl/Expect.pm:251): 251: unless (exists $Readable_Vars{$name}) { Expect::AUTOLOAD(/Library/Perl/Expect.pm:254): 254: my $varname = $Readable_Vars{$name}; Expect::AUTOLOAD(/Library/Perl/Expect.pm:255): 255: my $tmp; Expect::AUTOLOAD(/Library/Perl/Expect.pm:256): 256: $tmp = ${*$self}{$varname} if exists ${*$self}{$varname}; Expect::AUTOLOAD(/Library/Perl/Expect.pm:256): 256: $tmp = ${*$self}{$varname} if exists ${*$self}{$varname}; Expect::AUTOLOAD(/Library/Perl/Expect.pm:258): 258: if (@_) { Expect::AUTOLOAD(/Library/Perl/Expect.pm:274): 274: my $ref = ref($tmp); Expect::AUTOLOAD(/Library/Perl/Expect.pm:275): 275: return (wantarray? @{$tmp} : $tmp) if ($ref eq 'ARRAY'); Expect::AUTOLOAD(/Library/Perl/Expect.pm:276): 276: return (wantarray? %{$tmp} : $tmp) if ($ref eq 'HASH'); Expect::AUTOLOAD(/Library/Perl/Expect.pm:277): 277: return $tmp; Expect::spawn(/Library/Perl/Expect.pm:124): 124: my $errstatus = sysread(STAT_RDR, $errno, 256);