diff options
Diffstat (limited to 'tests/scripts')
-rw-r--r-- | tests/scripts/options/dash-C | 60 | ||||
-rw-r--r-- | tests/scripts/variables/flavors | 25 |
2 files changed, 67 insertions, 18 deletions
diff --git a/tests/scripts/options/dash-C b/tests/scripts/options/dash-C index f31238f..5864ffd 100644 --- a/tests/scripts/options/dash-C +++ b/tests/scripts/options/dash-C @@ -1,32 +1,56 @@ -$description = "The following test creates a makefile to test the -C dir \n" - ."option in make. This option tells make to change to \n" - ."directory dir before reading the makefile."; +# -*-perl-*- -$details = "This test is similar to the clean test except that this test\n" - ."creates the file to delete in the work directory instead of\n" - ."the current directory. Make is called from another directory\n" - ."using the -C workdir option so that it can both find the \n" - ."makefile and the file to delete in the work directory. "; +$description = "Test the -C option to GNU make."; -$example = $workdir . $pathsep . "EXAMPLE_FILE"; +$details = "\ +This test is similar to the clean test except that this test creates the file +to delete in the work directory instead of the current directory. Make is +called from another directory using the -C workdir option so that it can both +find the makefile and the file to delete in the work directory."; + +$example = $workdir . $pathsep . "EXAMPLE"; open(MAKEFILE,"> $makefile"); +print MAKEFILE <<EOF; +all: ; \@echo This makefile did not clean the dir ... good +clean: ; $delete_command EXAMPLE\$(ext) +EOF +close(MAKEFILE); -# The Contents of the MAKEFILE ... +# TEST #1 +# ------- +&touch($example); -print MAKEFILE "all: \n"; -print MAKEFILE "\t\@echo This makefile did not clean the dir ... good\n"; -print MAKEFILE "clean: \n"; -print MAKEFILE "\t$delete_command EXAMPLE_FILE\n"; +&run_make_with_options("${testname}.mk", + "-C $workdir clean", + &get_logfile); -# END of Contents of MAKEFILE +chdir $workdir; +$wpath = &get_this_pwd; +chdir $pwd; -close(MAKEFILE); +if (-f $example) { + $test_passed = 0; +} + +# Create the answer to what should be produced by this Makefile +$answer = "$make_name: Entering directory `$wpath'\n" + . "$delete_command EXAMPLE\n" + . "$make_name: Leaving directory `$wpath'\n"; + +&compare_output($answer,&get_logfile(1)); + + +# TEST #2 +# ------- +# Do it again with trailing "/"; this should work the same + +$example .= "slash"; &touch($example); &run_make_with_options("${testname}.mk", - "-C $workdir clean", + "-C $workdir/ clean ext=slash", &get_logfile); chdir $workdir; @@ -39,7 +63,7 @@ if (-f $example) { # Create the answer to what should be produced by this Makefile $answer = "$make_name: Entering directory `$wpath'\n" - . "$delete_command EXAMPLE_FILE\n" + . "$delete_command EXAMPLEslash\n" . "$make_name: Leaving directory `$wpath'\n"; &compare_output($answer,&get_logfile(1)); diff --git a/tests/scripts/variables/flavors b/tests/scripts/variables/flavors index 88e9ad5..3ceac5e 100644 --- a/tests/scripts/variables/flavors +++ b/tests/scripts/variables/flavors @@ -155,4 +155,29 @@ world'); run_make_test(undef, 'V1=@ V2=@', 'hello world'); +# TEST #10 +# ------- +# Test the basics; a "@" internally to the variable applies to only one line. +# A "@" before the variable applies to the entire variable. + +run_make_test(' +define FOO +@echo hello +echo world +endef +define BAR +echo hello +echo world +endef + +all: foo bar +foo: ; $(FOO) +bar: ; @$(BAR) +', '', 'hello +echo world +world +hello +world +'); + 1; |