make/tests/scripts/functions/sort

55 lines
2.1 KiB
Text

$description = "The following test creates a makefile to verify\n"
."the ability of make to sort lists of object. Sort\n"
."will also remove any duplicate entries. This will also\n"
."be tested.";
$details = "The make file is built with a list of object in a random order\n"
."and includes some duplicates. Make should sort all of the elements\n"
."remove all duplicates\n";
open(MAKEFILE,"> $makefile");
# The Contents of the MAKEFILE ...
print MAKEFILE "foo := moon_light days \n"
."foo1:= jazz\n"
."bar := captured \n"
."bar2 = boy end, has rise A midnight \n"
."bar3:= \$(foo)\n"
."s1 := _by\n"
."s2 := _and_a\n"
."t1 := \$(addsuffix \$(s1), \$(bar) )\n"
."t2 := \$(addsuffix \$(s2), \$(foo1) )\n"
."t3 := \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \n"
."t4 := \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \n"
."t5 := \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \n"
."t6 := \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \n"
."t7 := \$(t6) \$(t6) \$(t6) \n"
."p1 := \$(addprefix \$(foo1), \$(s2) )\n"
."blank:= \n"
."all:\n"
."\t\@echo \$(sort \$(bar2) \$(foo) \$(addsuffix \$(s1), \$(bar) ) \$(t2) \$(bar2) \$(bar3))\n"
."\t\@echo \$(sort \$(blank) \$(foo) \$(bar2) \$(t1) \$(p1) )\n"
."\t\@echo \$(sort \$(foo) \$(bar2) \$(t1) \$(t4) \$(t5) \$(t7) \$(t6) )\n";
# END of Contents of MAKEFILE
close(MAKEFILE);
&run_make_with_options($makefile,"",&get_logfile);
# Create the answer to what should be produced by this Makefile
$answer = "A boy captured_by days end, has jazz_and_a midnight moon_light rise\n"
."A boy captured_by days end, has jazz_and_a midnight moon_light rise\n"
."A boy captured_by days end, has jazz_and_a midnight moon_light rise\n";
&compare_output($answer,&get_logfile(1));
1;