From: Steve Hancock <perltidy@users.sourceforge.net>
Date: Sat, 20 Nov 2021 02:06:18 +0000 (-0800)
Subject: added test case rt140025
X-Git-Tag: 20211029.01~1
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=61680a0fc7626c394f07f91604df0af24ad439fc;p=perltidy.git

added test case rt140025
---

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};