From bf6a4dcf2d31ce287e567c08c6d6aedd9b0b00b3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 18 Aug 2003 06:05:21 +0000 Subject: [PATCH] * Split the programs table into MultiSource and SingleSource components * Instead of printing the time to configure as the build time, print the time to configure AND the build time, explicitly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7942 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/NightlyTest.pl | 55 +++++++++++++++++++++++++--------- utils/NightlyTestTemplate.html | 9 +++++- 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/utils/NightlyTest.pl b/utils/NightlyTest.pl index 7fb857095f5..99ca4d454e7 100755 --- a/utils/NightlyTest.pl +++ b/utils/NightlyTest.pl @@ -158,6 +158,12 @@ if (!$NOCHECKOUT) { } +sub GetRegexNum { + my ($Regex, $Num, $Regex2, $File) = @_; + my @Items = split "\n", `grep '$Regex' $File`; + return GetRegex $Regex2, $Items[$Num]; +} + # # Get some statistics about the build... # @@ -165,10 +171,17 @@ my @Linked = split '\n', `grep Linking $Prefix-Build-Log.txt`; my $NumExecutables = scalar(grep(/executable/, @Linked)); my $NumLibraries = scalar(grep(!/executable/, @Linked)); my $NumObjects = `grep '^Compiling' $Prefix-Build-Log.txt | wc -l` + 0; -my $BuildTimeU = GetRegex "([0-9.]+)", `grep '^user' $Prefix-Build-Log.txt`; -my $BuildTimeS = GetRegex "([0-9.]+)", `grep '^sys' $Prefix-Build-Log.txt`; -my $BuildWallTime = GetRegex "([0-9.]+)", `grep '^real' $Prefix-Build-Log.txt`; + +my $ConfigTimeU = GetRegexNum "^user", 0, "([0-9.]+)", "$Prefix-Build-Log.txt"; +my $ConfigTimeS = GetRegexNum "^sys", 0, "([0-9.]+)", "$Prefix-Build-Log.txt"; +my $ConfigTime = $BuildTimeU+$BuildTimeS; # ConfigTime = User+System +my $ConfigWallTime = GetRegexNum "^real", 0,"([0-9.]+)","$Prefix-Build-Log.txt"; + +my $BuildTimeU = GetRegexNum "^user", 1, "([0-9.]+)", "$Prefix-Build-Log.txt"; +my $BuildTimeS = GetRegexNum "^sys", 1, "([0-9.]+)", "$Prefix-Build-Log.txt"; my $BuildTime = $BuildTimeU+$BuildTimeS; # BuildTime = User+System +my $BuildWallTime = GetRegexNum "^real", 1, "([0-9.]+)","$Prefix-Build-Log.txt"; + my $BuildError = ""; if (`grep '^gmake[^:]*: .*Error' $Prefix-Build-Log.txt | wc -l` + 0) { $BuildError = "

Build error: compilation " @@ -253,24 +266,29 @@ my $ModifiedFilesList = AddPreTag join "\n", sort keys %ModifiedFiles; my $RemovedFilesList = AddPreTag join "\n", sort keys %RemovedFiles; my $TestError = 1; -my $ProgramsTable; +my $SingleSourceProgramsTable; +my $MultiSourceProgramsTable; -# If we build the tree successfully, the nightly programs tests... -if ($BuildError eq "") { - chdir "test/Programs" or die "Could not change into programs testdir!"; + +sub TestDirectory { + my $SubDir = shift; + + chdir "test/Programs/$SubDir" or + die "Could not change into test/Programs/$SubDir testdir!"; # Run the programs tests... creating a report.nightly.html file if (!$NOTEST) { system "gmake $MAKEOPTS report.nightly.html TEST=nightly " - . "RUNTIMELIMIT=300 > $Prefix-ProgramTest.txt 2>&1"; + . "RUNTIMELIMIT=300 > $Prefix-$SubDir-ProgramTest.txt 2>&1"; } else { - system "gunzip $Prefix-ProgramTest.txt.gz"; + system "gunzip $Prefix-$SubDir-ProgramTest.txt.gz"; } - if (`grep '^gmake: .*Error' $Prefix-ProgramTest.txt | wc -l` + 0) { + my $ProgramsTable; + if (`grep '^gmake: .*Error' $Prefix-$SubDir-ProgramTest.txt | wc -l` + 0) { $TestError = 1; $ProgramsTable = "

Error running tests!

"; - } elsif (`grep '^gmake: .*No rule to make target' $Prefix-ProgramTest.txt | wc -l` + 0) { + } elsif (`grep '^gmake: .*No rule to make target' $Prefix-$SubDir-ProgramTest.txt | wc -l` + 0) { $TestError = 1; $ProgramsTable = "

Makefile error running tests!

"; @@ -281,12 +299,21 @@ if ($BuildError eq "") { # # Create a list of the tests which were run... # - system "egrep 'TEST-(PASS|FAIL)' < $Prefix-ProgramTest.txt " - . "| sort > $Prefix-Tests.txt"; + system "egrep 'TEST-(PASS|FAIL)' < $Prefix-$SubDir-ProgramTest.txt " + . "| sort > $Prefix-$SubDir-Tests.txt"; } # Compress the test output - system "gzip -f $Prefix-ProgramTest.txt"; + system "gzip -f $Prefix-$SubDir-ProgramTest.txt"; + chdir "../../.." or die "Cannot return to parent directory!"; + return $ProgramsTable; +} + +# If we build the tree successfully, the nightly programs tests... +if ($BuildError eq "") { + $SingleSourceProgramsTable = TestDirectory("SingleSource"); + $MultiSourceProgramsTable = TestDirectory("MultiSource"); + system "cat $Prefix-SingleSource-Tests.txt $Prefix-MultiSource-Tests.txt > $Prefix-$SubDir-Tests.txt"; } my ($TestsAdded, $TestsRemoved, $TestsFixed, $TestsBroken) = ("","","",""); diff --git a/utils/NightlyTestTemplate.html b/utils/NightlyTestTemplate.html index 583c6b306f8..e8e055f9859 100644 --- a/utils/NightlyTestTemplate.html +++ b/utils/NightlyTestTemplate.html @@ -52,6 +52,8 @@
  • Compilation Log
      $BuildError + Time to configure CVS tree: $ConfigTime seconds + ($ConfigWallTime seconds wall time)
      Time to build CVS tree: $BuildTime seconds ($BuildWallTime seconds wall time)
      Number of object files compiled: $NumObjects
      @@ -154,11 +156,16 @@ for further analysis.
      -$ProgramsTable +$MultiSourceProgramsTable

      Programs/SingleSource

      +
      +
      +$SingleSourceProgramsTable +
      +