$description = "The following test creates a makefile to test the suffix\n"
              ."function. \n";

$details = "The suffix function will return the string following the last _._\n"
          ."the list provided. It will provide all of the unique suffixes found\n"
          ."in the list. The long strings are sorted to remove duplicates.\n";

# IF YOU NEED >1 MAKEFILE FOR THIS TEST, USE &get_tmpfile; TO GET
# THE NAME OF THE MAKEFILE.  THIS INSURES CONSISTENCY AND KEEPS TRACK OF
# HOW MANY MAKEFILES EXIST FOR EASY DELETION AT THE END.
# EXAMPLE: $makefile2 = &get_tmpfile;


open(MAKEFILE,"> $makefile");

# The Contents of the MAKEFILE ...

print MAKEFILE "string  := word.pl general_test2.pl1 FORCE.pl word.pl3 generic_test.perl /tmp.c/bar foo.baz/bar.c MAKEFILES_variable.c\n"
              ."string2 := \$(string) \$(string) \$(string) \$(string) \$(string) \$(string) \$(string)\n"
              ."string3 := \$(string2) \$(string2) \$(string2) \$(string2) \$(string2) \$(string2) \$(string2)\n"
              ."string4 := \$(string3) \$(string3) \$(string3) \$(string3) \$(string3) \$(string3) \$(string3)\n"
              ."all: \n"
              ."\t\@echo \$(suffix \$(string)) \n"
              ."\t\@echo \$(sort \$(suffix \$(string4))) \n"
              ."\t\@echo \$(suffix \$(string) a.out) \n"
              ."\t\@echo \$(sort \$(suffix \$(string3))) \n";



# END of Contents of MAKEFILE

close(MAKEFILE);

&run_make_with_options($makefile,"",&get_logfile,0);

# Create the answer to what should be produced by this Makefile

# COMPARE RESULTS
$answer = ".pl .pl1 .pl .pl3 .perl .c .c\n"
         .".c .perl .pl .pl1 .pl3\n"
         .".pl .pl1 .pl .pl3 .perl .c .c .out\n"
         .".c .perl .pl .pl1 .pl3\n";

# In this call to compare output, you should use the call &get_logfile(1)
# to send the name of the last logfile created.  You may also use
# the special call &get_logfile(1) which returns the same as &get_logfile(1).

&compare_output($answer,&get_logfile(1));

# This tells the test driver that the perl test script executed properly.
1;






