From 61680a0fc7626c394f07f91604df0af24ad439fc Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Fri, 19 Nov 2021 18:06:18 -0800 Subject: [PATCH] added test case rt140025 --- t/snippets/expect/rt140025.def | 23 ++++++++ t/snippets/expect/rt140025.rt140025 | 20 +++++++ t/snippets/packing_list.txt | 2 + t/snippets/rt140025.in | 20 +++++++ t/snippets/rt140025.par | 1 + t/snippets25.t | 83 +++++++++++++++++++++++++++++ 6 files changed, 149 insertions(+) create mode 100644 t/snippets/expect/rt140025.def create mode 100644 t/snippets/expect/rt140025.rt140025 create mode 100644 t/snippets/rt140025.in create mode 100644 t/snippets/rt140025.par diff --git a/t/snippets/expect/rt140025.def b/t/snippets/expect/rt140025.def new file mode 100644 index 00000000..555de77a --- /dev/null +++ b/t/snippets/expect/rt140025.def @@ -0,0 +1,23 @@ +eval { + my $cpid; + my $cmd; + + FORK: { + if ( $cpid = fork ) { + close(STDOUT); + last; + } + elsif ( defined $cpid ) { + close(STDIN); + open( STDIN, '<', '/dev/null' ) or die("open3: $!\n"); + exec $cmd or die("exec: $!\n"); + } + elsif ( $! == EAGAIN ) { + sleep 3; + redo FORK; + } + else { + die("Can't fork: $!\n"); + } + } +}; diff --git a/t/snippets/expect/rt140025.rt140025 b/t/snippets/expect/rt140025.rt140025 new file mode 100644 index 00000000..c03894be --- /dev/null +++ b/t/snippets/expect/rt140025.rt140025 @@ -0,0 +1,20 @@ +eval { + my $cpid; + my $cmd; + +FORK: { + if ( $cpid = fork ) { + close(STDOUT); + last; + } elsif ( defined $cpid ) { + close(STDIN); + open( STDIN, '<', '/dev/null' ) or die("open3: $!\n"); + exec $cmd or die("exec: $!\n"); + } elsif ( $! == EAGAIN ) { + sleep 3; + redo FORK; + } else { + die("Can't fork: $!\n"); + } + } +}; diff --git a/t/snippets/packing_list.txt b/t/snippets/packing_list.txt index f4fcb3f2..dba3830e 100644 --- a/t/snippets/packing_list.txt +++ b/t/snippets/packing_list.txt @@ -474,3 +474,5 @@ ../snippets9.t rt98902.def ../snippets9.t rt98902.rt98902 ../snippets9.t rt99961.def +../snippets25.t rt140025.def +../snippets25.t rt140025.rt140025 diff --git a/t/snippets/rt140025.in b/t/snippets/rt140025.in new file mode 100644 index 00000000..94693e98 --- /dev/null +++ b/t/snippets/rt140025.in @@ -0,0 +1,20 @@ +eval { +my $cpid; +my $cmd; + + FORK: { + if( $cpid = fork ) { + close( STDOUT ); + last; + } elsif( defined $cpid ) { + close( STDIN ); + open( STDIN, '<', '/dev/null' ) or die( "open3: $!\n" ); + exec $cmd or die( "exec: $!\n" ); + } elsif( $! == EAGAIN ) { + sleep 3; + redo FORK; + } else { + die( "Can't fork: $!\n" ); + } + } +}; diff --git a/t/snippets/rt140025.par b/t/snippets/rt140025.par new file mode 100644 index 00000000..53d2cc08 --- /dev/null +++ b/t/snippets/rt140025.par @@ -0,0 +1 @@ +-lp -xci -ci=4 -ce diff --git a/t/snippets25.t b/t/snippets25.t index d0019117..79f0a805 100644 --- a/t/snippets25.t +++ b/t/snippets25.t @@ -8,6 +8,8 @@ #5 lp2.def #6 lp2.lp #7 braces.braces8 +#8 rt140025.def +#9 rt140025.rt140025 # To locate test #13 you can search for its name or the string '#13' @@ -33,6 +35,7 @@ BEGIN { 'novalign1' => "-novalign", 'novalign2' => "-nvsc -nvbc -msc=2", 'novalign3' => "-nvc", + 'rt140025' => "-lp -xci -ci=4 -ce", }; ############################ @@ -116,6 +119,29 @@ my $endkit = 0; # saw end of kit my $fail = 0; # failed } +---------- + + 'rt140025' => <<'----------', +eval { +my $cpid; +my $cmd; + + FORK: { + if( $cpid = fork ) { + close( STDOUT ); + last; + } elsif( defined $cpid ) { + close( STDIN ); + open( STDIN, '<', '/dev/null' ) or die( "open3: $!\n" ); + exec $cmd or die( "exec: $!\n" ); + } elsif( $! == EAGAIN ) { + sleep 3; + redo FORK; + } else { + die( "Can't fork: $!\n" ); + } + } +}; ---------- }; @@ -288,6 +314,63 @@ catch { }; #7........... }, + + 'rt140025.def' => { + source => "rt140025", + params => "def", + expect => <<'#8...........', +eval { + my $cpid; + my $cmd; + + FORK: { + if ( $cpid = fork ) { + close(STDOUT); + last; + } + elsif ( defined $cpid ) { + close(STDIN); + open( STDIN, '<', '/dev/null' ) or die("open3: $!\n"); + exec $cmd or die("exec: $!\n"); + } + elsif ( $! == EAGAIN ) { + sleep 3; + redo FORK; + } + else { + die("Can't fork: $!\n"); + } + } +}; +#8........... + }, + + 'rt140025.rt140025' => { + source => "rt140025", + params => "rt140025", + expect => <<'#9...........', +eval { + my $cpid; + my $cmd; + +FORK: { + if ( $cpid = fork ) { + close(STDOUT); + last; + } elsif ( defined $cpid ) { + close(STDIN); + open( STDIN, '<', '/dev/null' ) or die("open3: $!\n"); + exec $cmd or die("exec: $!\n"); + } elsif ( $! == EAGAIN ) { + sleep 3; + redo FORK; + } else { + die("Can't fork: $!\n"); + } + } +}; +#9........... + }, }; my $ntests = 0 + keys %{$rtests}; -- 2.39.5