Home | History | Annotate | Download | only in functions
      1 #                                                                    -*-perl-*-
      2 
      3 $description = "The following test creates a makefile to test wildcard
      4 expansions and the ability to put a command on the same
      5 line as the target name separated by a semi-colon.";
      6 
      7 $details = "\
      8 This test creates 4 files by the names of 1.example,
      9 two.example and 3.example.  We execute three tests.  The first
     10 executes the print1 target which tests the '*' wildcard by
     11 echoing all filenames by the name of '*.example'.  The second
     12 test echo's all files which match '?.example' and
     13 [a-z0-9].example.  Lastly we clean up all of the files using
     14 the '*' wildcard as in the first test";
     15 
     16 open(MAKEFILE,"> $makefile");
     17 
     18 # The Contents of the MAKEFILE ...
     19 
     20 print MAKEFILE <<EOM;
     21 .PHONY: print1 print2 clean
     22 print1: ;\@echo \$(sort \$(wildcard example.*))
     23 print2:
     24 \t\@echo \$(sort \$(wildcard example.?))
     25 \t\@echo \$(sort \$(wildcard example.[a-z0-9]))
     26 \t\@echo \$(sort \$(wildcard example.[!A-Za-z_\\!]))
     27 clean:
     28 \t$delete_command \$(sort \$(wildcard example.*))
     29 EOM
     30 
     31 # END of Contents of MAKEFILE
     32 
     33 close(MAKEFILE);
     34 
     35 &touch("example.1");
     36 &touch("example.two");
     37 &touch("example.3");
     38 &touch("example.for");
     39 &touch("example._");
     40 
     41 # TEST #1
     42 # -------
     43 
     44 $answer = "example.1 example.3 example._ example.for example.two\n";
     45 
     46 &run_make_with_options($makefile,"print1",&get_logfile);
     47 
     48 &compare_output($answer,&get_logfile(1));
     49 
     50 
     51 # TEST #2
     52 # -------
     53 
     54 $answer = "example.1 example.3 example._\n"
     55          ."example.1 example.3\n"
     56          ."example.1 example.3\n";
     57 
     58 &run_make_with_options($makefile,"print2",&get_logfile);
     59 
     60 &compare_output($answer,&get_logfile(1));
     61 
     62 
     63 # TEST #3
     64 # -------
     65 
     66 $answer = "$delete_command example.1 example.3 example._ example.for example.two";
     67 if ($vos)
     68 {
     69    $answer .= " \n";
     70 }
     71 else
     72 {
     73    $answer .= "\n";
     74 }
     75 
     76 &run_make_with_options($makefile,"clean",&get_logfile);
     77 
     78 if ((-f "example.1")||(-f "example.two")||(-f "example.3")||(-f "example.for")) {
     79    $test_passed = 0;
     80 }
     81 
     82 &compare_output($answer,&get_logfile(1));
     83 
     84 
     85 1;
     86 
     87 
     88 
     89 
     90 
     91 
     92 
     93 
     94 
     95