$description = "Test various types of escaping in makefiles."; $details = "Make sure that escaping of `:' works in target names."; open(MAKEFILE,"> $makefile"); print MAKEFILE '$(path)foo : ; @echo cp $^ $@ '; close(MAKEFILE); # TEST 1 &run_make_with_options($makefile, "", &get_logfile); $answer = "cp foo\n"; &compare_output($answer,&get_logfile(1)); # TEST 2: This one should fail, since the ":" is unquoted. &run_make_with_options($makefile, "path=p:", &get_logfile, 512); $answer = "$makefile:1: *** target pattern contains no `%'. Stop.\n"; &compare_output($answer,&get_logfile(1)); # TEST 3: This one should work, since we escape the ":". &run_make_with_options($makefile, "'path=p\\:'", &get_logfile, 0); $answer = "cp p:foo\n"; &compare_output($answer,&get_logfile(1)); # TEST 4: This one should fail, since the escape char is escaped. &run_make_with_options($makefile, "'path=p\\\\:'", &get_logfile, 512); $answer = "$makefile:1: *** target pattern contains no `%'. Stop.\n"; &compare_output($answer,&get_logfile(1)); # This tells the test driver that the perl test script executed properly. 1;