$description = "The following test creates a makefile to test the findstring "
              ."function.";

$details = "";

# 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 := \$(findstring port, reporter)\n"
              ."all: \n"
              ."\t\@echo \$(string) \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
$answer = "port\n";

# COMPARE RESULTS

# 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;






