$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;









