mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-29 08:09:02 +00:00
90 lines
2.8 KiB
Text
90 lines
2.8 KiB
Text
$description = "The following test creates a makefile to test command \n"
|
|
."echoing. It tests that when a command line starts with \n"
|
|
."a '\@', the echoing of that line is suppressed. It also \n"
|
|
."tests the -n option which tells make to ONLY echo the \n"
|
|
."commands and no execution happens. In this case, even \n"
|
|
."the commands with '\@' are printed. Lastly, it tests the \n"
|
|
."-s flag which tells make to prevent all echoing, as if \n"
|
|
."all commands started with a '\@'.";
|
|
|
|
$details = "This test is similar to the 'clean' test except that a '\@' has\n"
|
|
."been placed in front of the delete command line. Four tests \n"
|
|
."are run here. First, make is run normally and the first echo\n"
|
|
."command should be executed. In this case there is no '\@' so \n"
|
|
."we should expect make to display the command AND display the \n"
|
|
."echoed message. Secondly, make is run with the clean target, \n"
|
|
."but since there is a '\@' at the beginning of the command, we\n"
|
|
."expect no output; just the deletion of a file which we check \n"
|
|
."for. Third, we give the clean target again except this time\n"
|
|
."we give make the -n option. We now expect the command to be \n"
|
|
."displayed but not to be executed. In this case we need only \n"
|
|
."to check the output since an error message would be displayed\n"
|
|
."if it actually tried to run the delete command again and the \n"
|
|
."file didn't exist. Lastly, we run the first test again with \n"
|
|
."the -s option and check that make did not echo the echo \n"
|
|
."command before printing the message.";
|
|
|
|
$example = "EXAMPLE_FILE";
|
|
|
|
open(MAKEFILE,"> $makefile");
|
|
|
|
# The Contents of the MAKEFILE ...
|
|
|
|
print MAKEFILE "all: \n";
|
|
print MAKEFILE "\techo This makefile did not clean the dir... good\n";
|
|
print MAKEFILE "clean: \n";
|
|
print MAKEFILE "\t\@$delete_command $example\n";
|
|
|
|
# END of Contents of MAKEFILE
|
|
|
|
close(MAKEFILE);
|
|
|
|
&touch($example);
|
|
|
|
# TEST #1
|
|
# -------
|
|
|
|
&run_make_with_options($makefile,"",&get_logfile,0);
|
|
$answer = "echo This makefile did not clean the dir... good\n"
|
|
."This makefile did not clean the dir... good\n";
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
|
|
# TEST #2
|
|
# -------
|
|
|
|
&run_make_with_options($makefile,"clean",&get_logfile,0);
|
|
$answer = "";
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
if (-f $example)
|
|
{
|
|
$test_passed = 0;
|
|
}
|
|
|
|
# TEST #3
|
|
# -------
|
|
|
|
&run_make_with_options($makefile,"-n clean",&get_logfile,0);
|
|
$answer = "$delete_command $example\n";
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
|
|
# TEST #4
|
|
# -------
|
|
|
|
&run_make_with_options($makefile,"-s",&get_logfile,0);
|
|
$answer = "This makefile did not clean the dir... good\n";
|
|
&compare_output($answer,&get_logfile(1));
|
|
|
|
|
|
1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|