| # -*-perl-*- |
| $description = "The following test creates a makefile to test command |
| echoing. It tests that when a command line starts with |
| a '\@', the echoing of that line is suppressed. It also |
| tests the -n option which tells make to ONLY echo the |
| commands and no execution happens. In this case, even |
| the commands with '\@' are printed. Lastly, it tests the |
| -s flag which tells make to prevent all echoing, as if |
| all commands started with a '\@'."; |
| |
| $details = "This test is similar to the 'clean' test except that a '\@' has |
| been placed in front of the delete command line. Four tests |
| are run here. First, make is run normally and the first echo |
| command should be executed. In this case there is no '\@' so |
| we should expect make to display the command AND display the |
| echoed message. Secondly, make is run with the clean target, |
| but since there is a '\@' at the beginning of the command, we |
| expect no output; just the deletion of a file which we check |
| for. Third, we give the clean target again except this time |
| we give make the -n option. We now expect the command to be |
| displayed but not to be executed. In this case we need only |
| to check the output since an error message would be displayed |
| if it actually tried to run the delete command again and the |
| file didn't exist. Lastly, we run the first test again with |
| the -s option and check that make did not echo the echo |
| command before printing the message.\n"; |
| |
| $example = "EXAMPLE_FILE"; |
| |
| touch($example); |
| |
| # TEST #1 |
| # ------- |
| |
| run_make_test(" |
| all: |
| \techo This makefile did not clean the dir... good |
| clean: |
| \t\@$delete_command $example\n", |
| '', 'echo This makefile did not clean the dir... good |
| This makefile did not clean the dir... good'); |
| |
| # TEST #2 |
| # ------- |
| |
| run_make_test(undef, 'clean', ''); |
| if (-f $example) { |
| $test_passed = 0; |
| unlink($example); |
| } |
| |
| # TEST #3 |
| # ------- |
| |
| run_make_test(undef, '-n clean', "$delete_command $example\n"); |
| |
| |
| # TEST #4 |
| # ------- |
| |
| run_make_test(undef, '-s', "This makefile did not clean the dir... good\n"); |
| |
| |
| 1; |