mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-28 15:57:48 +00:00
63 lines
1.8 KiB
Perl
63 lines
1.8 KiB
Perl
# -*-perl-*-
|
|
|
|
use warnings;
|
|
|
|
my $description = "Test that make can execute binaries as well as scripts with"
|
|
." various shabangs and without a shbang";
|
|
my $details = "The various shells that this test uses are the default"
|
|
." /bin/sh, \$SHELL and the perl interpreter that is"
|
|
." executing this test program. The shells are used for the value"
|
|
." of SHELL inside the test makefile and also as a shbang in the"
|
|
." executed script. There is also a test which executes a script"
|
|
." that has no shbang.";
|
|
|
|
# Only bother with this on UNIX systems
|
|
$port_type eq 'UNIX' or return -1;
|
|
|
|
my $usersh = $origENV{SHELL};
|
|
my $answer = 'hello, world';
|
|
|
|
my @shbangs = ('', '#!/bin/sh', "#!$usersh", "#!$perl_name");
|
|
my @shells = ('', 'SHELL=/bin/sh', "SHELL=$usersh");
|
|
|
|
# tests [0-11]
|
|
# Have a makefile with various SHELL= exec a shell program with varios
|
|
# shbangs or without a shbang at all.
|
|
my $stem = './exec.cmd';
|
|
my $k = 0;
|
|
for my $shbang (@shbangs) {
|
|
for my $shell (@shells) {
|
|
my $cmd = $k ? "$stem.$k" : $stem;
|
|
++$k;
|
|
unlink $cmd;
|
|
open(CMD,"> $cmd");
|
|
print CMD "$shbang\n";
|
|
print CMD "printf \"$answer\\n\";\n";
|
|
close(CMD);
|
|
chmod 0700, $cmd;
|
|
|
|
run_make_test("# $shbang\n# $shell" . q!
|
|
all:; @$(CMD)
|
|
!, "$shell CMD=$cmd", "$answer\n");
|
|
|
|
rmfiles($cmd);
|
|
}
|
|
}
|
|
|
|
# tests [12-14]
|
|
# Exec a binary from a makefile that has SHELL=.
|
|
for my $shell (@shells) {
|
|
run_make_test(q!
|
|
all:; @#PERL# -e 'printf "$(ANSWER)\n"';
|
|
!, "$shell ANSWER='$answer'", "$answer\n");
|
|
}
|
|
|
|
# test 15
|
|
# Use perl as a shell.
|
|
run_make_test(q!
|
|
SHELL = #PERL#
|
|
.SHELLFLAGS = -e
|
|
all:; @printf "$(ANSWER)\n";
|
|
!, "ANSWER='$answer'", "$answer\n");
|
|
|
|
1;
|