From f0ccc9f25f636d9ba249fba8fccf02b847877851 Mon Sep 17 00:00:00 2001 From: Kent Fredric Date: Wed, 28 Feb 2018 09:50:13 +1300 Subject: Use file for input data instead of STDIN ( non-interactive testing ) test.pl as-is is useless because it executes no readline code when in automated testing conditions. Additionally, attempting to use the built-in file redirection mechanisms is useless, as there's no way to set those parts from make test And 'preput' support causes readline to barf when the input stream is not a real TTY. Subsequently, the pre-inserted "exit" also has to be removed. Bug: https://bugs.gentoo.org/624044 --- test.pl | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/test.pl b/test.pl index fe99e2f..1f87749 100644 --- a/test.pl +++ b/test.pl @@ -10,26 +10,9 @@ use Term::ReadLine; use Carp; $SIG{__WARN__} = sub { warn Carp::longmess(@_) }; -my $ev; -if ($ENV{$ev = 'AUTOMATED_TESTING'} or $ENV{$ev = 'PERL_MM_NONINTERACTIVE'}) { - print "1..0 # skip: \$ENV{$ev} is TRUE\n"; - exit; -} +open(IN, '<', './t/input.txt') or die "Can't open input.txt, $@, $!"; +$term = Term::ReadLine->new('Simple Perl calc', \*IN, \*STDOUT); -if (!@ARGV) { - $term = new Term::ReadLine 'Simple Perl calc'; -} elsif (@ARGV == 2) { - open(IN,"<$ARGV[0]"); - open(OUT,">$ARGV[1]"); - $term = new Term::ReadLine 'Simple Perl calc', \*IN, \*OUT; -} elsif ($ARGV[0] =~ m|^/dev|) { - open(IN,"<$ARGV[0]"); - open(OUT,">$ARGV[0]"); - $term = new Term::ReadLine 'Simple Perl calc', \*IN, \*OUT; -} else { - $term = new Term::ReadLine 'Simple Perl calc', \*STDIN, \*STDOUT; - $no_print = $ARGV[0] eq '--no-print'; -} $prompt = "Enter arithmetic or Perl expression: "; if ((my $l = $ENV{PERL_RL_TEST_PROMPT_MINLEN} || 0) > length $prompt) { $prompt =~ s/(?=:)/ ' ' x ($l - length $prompt)/e; @@ -60,7 +43,7 @@ print $OUT <readline($prompt, "exit")) ) { +while ( defined ($_ = $term->readline($prompt)) ) { $res = eval($_); warn $@ if $@; print $OUT $res, "\n" unless $@ or $no_print; -- 2.15.1