# the default.
# -compileflags Next argument specifies extra options passed to make when
# building LLVM.
+# -use-gmake Use gmake instead of the default make command to build
+# llvm and run tests.
#
# ---------------- Options to configure llvm-test ----------------------------
# -extraflags Next argument specifies extra options that are passed to
$nickname="";
$NOTEST=0;
$NORUNNINGTESTS=0;
+$MAKECMD="make";
while (scalar(@ARGV) and ($_ = $ARGV[0], /^[-+]/)) {
shift;
if (/^-norunningtests$/) { $NORUNNINGTESTS = 1; next; }
if (/^-parallel$/) { $MAKEOPTS = "$MAKEOPTS -j2 -l3.0"; next; }
if (/^-release$/) { $MAKEOPTS = "$MAKEOPTS ENABLE_OPTIMIZED=1 ".
- "OPTIMIZE_OPTION=-O2";
- $BUILDTYPE="release"; next; }
+ "OPTIMIZE_OPTION=-O2";
+ $BUILDTYPE="release"; next; }
if (/^-enable-llcbeta$/) { $PROGTESTOPTS .= " ENABLE_LLCBETA=1"; next; }
if (/^-disable-llc$/) { $PROGTESTOPTS .= " DISABLE_LLC=1";
$CONFIGUREARGS .= " --disable-llc_diffs"; next; }
if (/^-compileflags/) {
$MAKEOPTS = "$MAKEOPTS $ARGV[0]"; shift; next;
}
+ if (/^-use-gmake/) {
+ $MAKECMD = "gmake"; shift; next;
+ }
if (/^-extraflags/) {
$PROGTESTOPTS .= " EXTRA_FLAGS=\'$ARGV[0]\'"; shift; next;
}
if($nickname eq ""){
die ("Please invoke NewNightlyTest.pl with command line option \"-nickname <nickname>\"");
}
-if($BUILDTYPE ne "releaese"){
- $BUILDTYPE = "debug";
-}
-#FIXME: this is a hack for SunOS, there must be a better way
-if(`uname` eq "SunOS"){
- $MAKECMD = "gmake";
-}
-else {
- $MAKECMD="make";
+if($BUILDTYPE ne "release"){
+ $BUILDTYPE = "debug";
}
-
##############################################################
#
#define the file names we'll use
my ($dir,$name) = @_;
chomp($dir);
if ( $VERBOSE ) { print "Changing To: $name ($dir)\n"; }
- chdir($dir) || (print "Cannot change directory to: $name ($dir) " && return -1);
- return 0;
+ $result = chdir($dir);
+ if(!$result){
+ print "ERROR!!! Cannot change directory to: $name ($dir) because $!";
+ return false;
+ }
+ return true;
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
##############################################################
sub TestDirectory {
- my $SubDir = shift;
-
- ChangeDir( "projects/llvm-test/$SubDir", "Programs Test Subdirectory" ) || return ("", "");
-
- my $ProgramTestLog = "$Prefix-$SubDir-ProgramTest.txt";
- #my $ProgramTestLog = "$Prefix-MultiSource-ProgramTest.txt"; #CHANGE ME!
-
- # Run the programs tests... creating a report.nightly.csv file
- if (!$NOTEST) {
- print "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv "
- . "TEST=nightly > $ProgramTestLog 2>&1\n";
- system "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv "
- . "TEST=nightly > $ProgramTestLog 2>&1";
- $llcbeta_options=`$MAKECMD print-llcbeta-option`;
- }
+ my $SubDir = shift;
+
+ ChangeDir( "$BuildDir/llvm/projects/llvm-test/$SubDir", "Programs Test Subdirectory" ) || return ("", "");
+
+ my $ProgramTestLog = "$Prefix-$SubDir-ProgramTest.txt";
+
+ # Run the programs tests... creating a report.nightly.csv file
+ if (!$NOTEST) {
+ print "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv ".
+ "TEST=nightly > $ProgramTestLog 2>&1\n";
+ system "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv ".
+ "TEST=nightly > $ProgramTestLog 2>&1";
+ $llcbeta_options=`$MAKECMD print-llcbeta-option`;
+ }
- my $ProgramsTable;
- if (`grep '^$MAKECMD\[^:]: .*Error' $ProgramTestLog | wc -l` + 0){
- $TestError = 1;
- $ProgramsTable="Error running test $SubDir\n";
- print "ERROR TESTING\n";
- } elsif (`grep '^$MAKECMD\[^:]: .*No rule to make target' $ProgramTestLog | wc -l` + 0) {
- $TestError = 1;
- $ProgramsTable="Makefile error running tests $SubDir!\n";
- print "ERROR TESTING\n";
- } else {
- $TestError = 0;
+ my $ProgramsTable;
+ if (`grep '^$MAKECMD\[^:]: .*Error' $ProgramTestLog | wc -l` + 0){
+ $TestError = 1;
+ $ProgramsTable="Error running test $SubDir\n";
+ print "ERROR TESTING\n";
+ } elsif (`grep '^$MAKECMD\[^:]: .*No rule to make target' $ProgramTestLog | wc -l` + 0) {
+ $TestError = 1;
+ $ProgramsTable="Makefile error running tests $SubDir!\n";
+ print "ERROR TESTING\n";
+ } else {
+ $TestError = 0;
+ #
+ # Create a list of the tests which were run...
+ #
+ system "egrep 'TEST-(PASS|FAIL)' < $ProgramTestLog ".
+ "| sort > $Prefix-multisourceprogramstable.txt";
+ }
+ $ProgramsTable = ReadFile "report.nightly.csv";
- #
- # Create a list of the tests which were run...
- #
- system "egrep 'TEST-(PASS|FAIL)' < $ProgramTestLog "
- . "| sort > $Prefix-multisourceprogramstable.txt";
- }
- $ProgramsTable = ReadFile "report.nightly.csv";
-
- ChangeDir( "../../..", "Programs Test Parent Directory" );
- return ($ProgramsTable, $llcbeta_options);
+ ChangeDir( "../../..", "Programs Test Parent Directory" );
+ return ($ProgramsTable, $llcbeta_options);
}
-$patrickjenkins=1;
-if(!$patrickjenkins){
- if ( $VERBOSE ) {
- print "Modified Multisource Olden test stage\n";
- }
- ($MultiSourceProgramsTable, $multisource_llcbeta_options) = TestDirectory("MultiSource/");
- ChangeDir( "../../..", "Programs Test Parent Directory" );
-
-
- WriteFile "$WebDir/multisourceprogramstable.txt", $MultiSourceProgramsTable;
-}
-if (!$BuildError && $patrickjenkins) {
- if ( $VERBOSE ) {
- print "SingleSource TEST STAGE\n";
- }
- ($SingleSourceProgramsTable, $llcbeta_options) = TestDirectory("SingleSource");
- WriteFile "$Prefix-singlesourceprogramstable.txt", $SingleSourceProgramsTable;
- if ( $VERBOSE ) {
- print "MultiSource TEST STAGE\n";
- }
- ($MultiSourceProgramsTable, $llcbeta_options) = TestDirectory("MultiSource");
- WriteFile "$Prefix-multisourceprogramstable.txt", $MultiSourceProgramsTable;
- if ( ! $NOEXTERNALS ) {
+if (!$BuildError) {
if ( $VERBOSE ) {
- print "External TEST STAGE\n";
+ print "SingleSource TEST STAGE\n";
}
- ($ExternalProgramsTable, $llcbeta_options) = TestDirectory("External");
- WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
- system "cat $Prefix-singlesourceprogramstable.txt $Prefix-multisourceprogramstable.txt ".
- " $Prefix-externalprogramstable.txt | sort > $Prefix-Tests.txt";
- } else {
- $ExternalProgramsTable = "External TEST STAGE SKIPPED\n";
+ ($SingleSourceProgramsTable, $llcbeta_options) = TestDirectory("SingleSource");
if ( $VERBOSE ) {
- print "External TEST STAGE SKIPPED\n";
+ print "SingleSource returned $SingleSourceProgramsTable\n";
}
- system "cat $Prefix-singlesourceprogramstable.txt $Prefix-multisourceprogramstable.txt ".
- " | sort > $Prefix-Tests.txt";
- }
- WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
+ WriteFile "$Prefix-singlesourceprogramstable.txt", $SingleSourceProgramsTable;
+ if ( $VERBOSE ) {
+ print "MultiSource TEST STAGE\n";
+ }
+ ($MultiSourceProgramsTable, $llcbeta_options) = TestDirectory("MultiSource");
+ WriteFile "$Prefix-multisourceprogramstable.txt", $MultiSourceProgramsTable;
+ if ( $VERBOSE ) {
+ print "MultiSource returned $MultiSourceProgramsTable\n";
+ }
+ if ( ! $NOEXTERNALS ) {
+ if ( $VERBOSE ) {
+ print "External TEST STAGE\n";
+ }
+ ($ExternalProgramsTable, $llcbeta_options) = TestDirectory("External");
+ WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
+ system "cat $Prefix-singlesourceprogramstable.txt $Prefix-multisourceprogramstable.txt ".
+ " $Prefix-externalprogramstable.txt | sort > $Prefix-Tests.txt";
+ } else {
+ $ExternalProgramsTable = "External TEST STAGE SKIPPED\n";
+ if ( $VERBOSE ) {
+ print "External TEST STAGE SKIPPED\n";
+ }
+ system "cat $Prefix-singlesourceprogramstable.txt $Prefix-multisourceprogramstable.txt ".
+ " | sort > $Prefix-Tests.txt";
+ }
+ WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
}
##############################################################