/
niceSOFT
/
make
Обзор
Документация
Войти
/
niceSOFT
/
make
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
4.3
tests/scripts/features/exec
63 строки
2 KB
Paul Smith
* tests/scripts/features/exec: Don't use $ENV in the description
03 янв 2020, 10:08
03 янв 2020, 10:08
53b9770
Код
Авторство
О чём код?
# -*-perl-*- use warnings; my $description = "Test that make can execute binaries as well as scripts with" ." various shabangs and without a shebang"; 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 shebang in the" ." executed script. There is also a test which executes a script" ." that has no shebang."; # Only bother with this on UNIX systems $port_type eq 'UNIX' or return -1; my $usersh = $origENV{SHELL}; my $answer = 'hello, world'; my @shebangs = ('', '#!/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 # shebangs or without a shebang at all. my $stem = './exec.cmd'; my $k = 0; for my $shebang (@shebangs) { for my $shell (@shells) { my $cmd = $k ? "$stem.$k" : $stem; ++$k; unlink $cmd; open(CMD,"> $cmd"); print CMD "$shebang\n"; print CMD "printf \"$answer\\n\";\n"; close(CMD); chmod 0700, $cmd; run_make_test(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;