From cf78e65fdaff051640ae9a83130d139aeb690e28 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Tue, 25 Oct 2022 14:46:58 -0400 Subject: [PATCH] * tests/scripts/features/exec: Don't test with C shells Using C shells (csh, tcsh) with make is known to be problematic due to incorrect ways it handles open file descriptors, at least. If the user's shell is *csh then don't try it during exec tests. --- tests/scripts/features/exec | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/scripts/features/exec b/tests/scripts/features/exec index 29cba02a..f139cf8c 100644 --- a/tests/scripts/features/exec +++ b/tests/scripts/features/exec @@ -15,11 +15,19 @@ my $details = "The various shells that this test uses are the default" $port_type eq 'UNIX' or return -1; $^O =~ /cygwin/ and return -1; -my $usersh = $origENV{SHELL}; -my $answer = 'hello, world'; +my @shbangs = ('', '#!/bin/sh', "#!$perl_name"); +my @shells = ('', 'SHELL=/bin/sh'); -my @shbangs = ('', '#!/bin/sh', "#!$usersh", "#!$perl_name"); -my @shells = ('', 'SHELL=/bin/sh', "SHELL=$usersh"); +# Try whatever shell the user has, as long as it's not a C shell. +# The C shell is not usable with make, due to not correctly handling +# file descriptors and possibly other issues. +my $usersh = $origENV{SHELL}; +if ($usersh !~ /csh/) { + push @shbangs, ("#!$usersh"); + push @shells, ("SHELL=$usersh"); +} + +my $answer = 'hello, world'; # tests [0-11] # Have a makefile with various SHELL= exec a shell program with varios