first commit
This commit is contained in:
700
extern/stdcxx/4.2.1/etc/config/windows/summary.js
vendored
Normal file
700
extern/stdcxx/4.2.1/etc/config/windows/summary.js
vendored
Normal file
@@ -0,0 +1,700 @@
|
||||
//
|
||||
// $Id: summary.js 550991 2007-06-26 23:58:07Z sebor $
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
// contributor license agreements. See the NOTICE file distributed
|
||||
// with this work for additional information regarding copyright
|
||||
// ownership. The ASF licenses this file to you under the Apache
|
||||
// License, Version 2.0 (the "License"); you may not use this file
|
||||
// except in compliance with the License. You may obtain a copy of
|
||||
// the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
// implied. See the License for the specific language governing
|
||||
// permissions and limitations under the License.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
// BuildLog.htm file constants
|
||||
|
||||
var cmdLineTag = "Command Lines";
|
||||
var outputTag = "Output Window";
|
||||
var summaryTag = "Results";
|
||||
|
||||
var errorsTag = "error(s)";
|
||||
var warningsTag = "warning(s)";
|
||||
|
||||
var compilingTag = "Compiling...";
|
||||
var linkingTag = "Linking...";
|
||||
|
||||
var hdrLibrary = "Library Summary";
|
||||
var hdrTestDriver = "Test Driver Summary";
|
||||
var hdrExamples = "Example Summary";
|
||||
var hdrTests = "Test Summary";
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
// read BuildLog.htm
|
||||
function readBuildLog(exeDir, itemInfo, useUnicode)
|
||||
{
|
||||
if (! fso.FolderExists(exeDir))
|
||||
return;
|
||||
|
||||
var blogDir = exeDir + "\\" + itemInfo.name;
|
||||
|
||||
if (! fso.FolderExists(blogDir))
|
||||
return;
|
||||
|
||||
var blogFilePath = blogDir + "\\" + buildlogFile;
|
||||
if (! fso.FileExists(blogFilePath))
|
||||
return;
|
||||
|
||||
var uniMode = (true == useUnicode) ? -1 : 0;
|
||||
var blogFile;
|
||||
|
||||
try
|
||||
{
|
||||
blogFile = fso.OpenTextFile(blogFilePath, 1, false, uniMode);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
WScript.Echo("Cannot open file: " + blogFilePath);
|
||||
return;
|
||||
}
|
||||
|
||||
var blogData = blogFile.AtEndOfStream ? "" : blogFile.ReadAll();
|
||||
|
||||
var posTmp = getCommandLinesInfo(itemInfo, blogData, 0);
|
||||
posTmp = getCompilationInfo(itemInfo, blogData, posTmp);
|
||||
posTmp = getBuildSummaryInfo(itemInfo, blogData, posTmp);
|
||||
}
|
||||
|
||||
// BuildLog.htm parsing methods
|
||||
function getCommandLinesInfo(itemInfo, blogData, posStart)
|
||||
{
|
||||
//lookup for the command lines block
|
||||
var posCmdLines = blogData.indexOf(cmdLineTag, posStart);
|
||||
if (-1 == posCmdLines)
|
||||
return posStart;
|
||||
|
||||
// extract table in the command lines block
|
||||
itemInfo.buildCmdLog = extractTableData(blogData, posCmdLines);
|
||||
return posStart + itemInfo.buildCmdLog.length;
|
||||
}
|
||||
|
||||
|
||||
function getCompilationInfo(itemInfo, blogData, posStart)
|
||||
{
|
||||
//lookup for the output block
|
||||
var posCmplInfo = blogData.indexOf(outputTag, posStart);
|
||||
if (-1 == posCmplInfo)
|
||||
return posStart;
|
||||
|
||||
// extract table in the output block
|
||||
itemInfo.buildOutLog = extractTableData(blogData, posCmplInfo);
|
||||
return posStart + itemInfo.buildOutLog.length;
|
||||
}
|
||||
|
||||
|
||||
function getBuildSummaryInfo(itemInfo, blogData, posStart)
|
||||
{
|
||||
//lookup for the results block
|
||||
var posResInfo = blogData.indexOf(summaryTag, posStart);
|
||||
if (-1 == posResInfo)
|
||||
return posStart;
|
||||
|
||||
// extract table in the results block
|
||||
var summaryData = extractTableData(blogData, posResInfo);
|
||||
|
||||
// skip first line in the summary as not needed at all
|
||||
var posPrjName = summaryData.indexOf(buildlogFile);
|
||||
var posPrjTmp = posPrjName;
|
||||
posPrjName = summaryData.indexOf(String.fromCharCode(10), posPrjTmp);
|
||||
if (-1 == posPrjName)
|
||||
{
|
||||
posPrjName = summaryData.indexOf("\r\n", posPrjTmp);
|
||||
if (-1 == posPrjName)
|
||||
return posStart + summaryData.length;
|
||||
}
|
||||
|
||||
var prjSummary = summaryData.substr(posPrjName);
|
||||
|
||||
// we not needed in tags, so remove them
|
||||
var tagIdx = prjSummary.indexOf("<");
|
||||
itemInfo.buildOutLog += "\r\n" + prjSummary.substr(0, tagIdx);
|
||||
|
||||
// parse project summary and get number of errors and warnings
|
||||
var rgSum = prjSummary.split(" ");
|
||||
|
||||
itemInfo.errorsCnt = rgSum[2];
|
||||
itemInfo.warningsCnt = rgSum[4];
|
||||
|
||||
// check what kind of errors we have
|
||||
if (itemInfo.errorsCnt != "0")
|
||||
{
|
||||
var posLinking = itemInfo.buildOutLog.indexOf(linkingTag);
|
||||
if (posLinking != -1)
|
||||
itemInfo.linkerErrors = true;
|
||||
}
|
||||
|
||||
return posStart + summaryData.length;
|
||||
}
|
||||
|
||||
function extractTextBlockData(blogData, posTextBlock)
|
||||
{
|
||||
var nextTableBlock = blogData.indexOf("<table", posTextBlock);
|
||||
|
||||
var textData = "";
|
||||
if (nextTableBlock > 0)
|
||||
{
|
||||
textData =
|
||||
blogData.substr(posTextBlock, nextTableBlock - posTextBlock);
|
||||
}
|
||||
else
|
||||
{
|
||||
textData = blogData.substr(posTextBlock);
|
||||
}
|
||||
|
||||
var posPreTag = textData.indexOf("<pre", 0);
|
||||
if (-1 == posPreTag)
|
||||
textData = "<pre>" + textData + "</pre>";
|
||||
|
||||
return textData;
|
||||
}
|
||||
|
||||
function extractTableData(blogData, posStart)
|
||||
{
|
||||
var posMainTable = blogData.indexOf("<table", posStart);
|
||||
if (-1 == posMainTable)
|
||||
return "";
|
||||
|
||||
// check that we have data in table form
|
||||
var posFirstCloseTable = blogData.indexOf("</table>", posStart);
|
||||
if (-1 != posFirstCloseTable && posMainTable - posFirstCloseTable > 20)
|
||||
return extractTextBlockData(blogData, posFirstCloseTable + 8);
|
||||
|
||||
// lookup for the main table close tag
|
||||
var posCloseTag = posMainTable;
|
||||
var posOpenTag = posMainTable;
|
||||
while (true)
|
||||
{
|
||||
posCloseTag = blogData.indexOf("</table>", posCloseTag + 5);
|
||||
if (-1 == posCloseTag) // no close tag?
|
||||
break;
|
||||
|
||||
posOpenTag = blogData.indexOf("<table", posOpenTag + 5);
|
||||
if (-1 == posOpenTag)
|
||||
break;
|
||||
|
||||
if (posCloseTag < posOpenTag)
|
||||
break;
|
||||
}
|
||||
|
||||
var tableData = "";
|
||||
var tableDataLen = posCloseTag + 8 - posMainTable;
|
||||
if (tableDataLen > 0)
|
||||
tableData = blogData.substr(posMainTable, tableDataLen);
|
||||
else
|
||||
tableData = blogData.substr(posMainTable);
|
||||
|
||||
// visual studio doesn't provide last table row close tags
|
||||
// add them here
|
||||
var indexClose = tableData.lastIndexOf("</table>");
|
||||
tableData = tableData.substr(0, indexClose) + "</td></tr></table>";
|
||||
|
||||
return tableData;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// get differences method
|
||||
|
||||
function getDifferencesInfo(itemInfo)
|
||||
{
|
||||
var diffs = getWinDiffDifferences(itemInfo.runOutput,
|
||||
itemInfo.runReqOutput, "ILFRGX");
|
||||
|
||||
// replace first line
|
||||
var endLine = String.fromCharCode(13) + String.fromCharCode(10);
|
||||
var pos = diffs.indexOf(endLine);
|
||||
if (-1 == pos)
|
||||
{
|
||||
itemInfo.runDiff = diffs;
|
||||
return;
|
||||
}
|
||||
|
||||
itemInfo.runDiff = "Differences between real output and required: ";
|
||||
itemInfo.runDiff += diffs.substr(pos);
|
||||
|
||||
//WScript.Echo(itemInfo.runDiff);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// save methods
|
||||
|
||||
function saveBuildSummary(itemInfo, fileSummary)
|
||||
{
|
||||
var failed = (itemInfo.exitCode != 0 || itemInfo.errorsCnt != "0")
|
||||
? true : false;
|
||||
|
||||
if (failed == true)
|
||||
fileSummary.WriteLine("<tr bgcolor=\"#FF9999\">");
|
||||
else
|
||||
fileSummary.WriteLine("<tr bgcolor=\"#FFFF99\">");
|
||||
|
||||
var someCol = "<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\" align=\"left\">";
|
||||
var lastCol =
|
||||
"<td style=\"padding:2px;border-bottom:#000000 solid 1px;\" \
|
||||
align=\"right\">";
|
||||
|
||||
fileSummary.Write(someCol);
|
||||
fileSummary.Write("<a href=\"#" + itemInfo.name + "\">");
|
||||
fileSummary.WriteLine(itemInfo.name + "</a></td>");
|
||||
|
||||
if (itemInfo.errorsCnt != "0")
|
||||
{
|
||||
fileSummary.WriteLine(someCol + "Build Failed" + "</td>");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (failed == true)
|
||||
{
|
||||
fileSummary.WriteLine(someCol + "Exited with code " +
|
||||
itemInfo.exitCode + "</td>");
|
||||
}
|
||||
else
|
||||
{
|
||||
fileSummary.WriteLine(someCol + "Succeeded" + "</td>");
|
||||
}
|
||||
}
|
||||
|
||||
if (failed == false)
|
||||
{
|
||||
if (itemInfo.runDiff != "")
|
||||
fileSummary.WriteLine(someCol + "Difference" + "</td>");
|
||||
else
|
||||
fileSummary.WriteLine(someCol + "Equal" + "</td>");
|
||||
}
|
||||
else
|
||||
{
|
||||
fileSummary.WriteLine(someCol + " " + "</td>");
|
||||
}
|
||||
|
||||
fileSummary.WriteLine(lastCol + itemInfo.warningsCnt + "</td>");
|
||||
|
||||
fileSummary.WriteLine("</tr>");
|
||||
}
|
||||
|
||||
function saveBuildInfo(itemInfo, infoDir, infoExt)
|
||||
{
|
||||
var outfileName = infoDir + "\\" + itemInfo.name + "." + infoExt;
|
||||
var outFile = fso.CreateTextFile(outfileName);
|
||||
|
||||
saveBuildInfoTable(outFile, itemInfo, hdrExamples, false);
|
||||
|
||||
outFile.Close();
|
||||
}
|
||||
|
||||
function saveBuildInfoTable(outFile, itemInfo, linkSummary, bLib)
|
||||
{
|
||||
outFile.WriteLine("<table border=\"0\" width=\"100%\" \
|
||||
style=\"border:#000000 solid 1px;\" cellspacing=\"0\">");
|
||||
|
||||
outFile.Write("<tr><td bgcolor=\"#CCCCCC\" \
|
||||
style=\"border-bottom:#000000 solid 1px;\"><strong>");
|
||||
outFile.Write("<a name=\"" + itemInfo.name + "\">" +
|
||||
itemInfo.name + "</a>");
|
||||
outFile.WriteLine("</strong> <a href=\"#" +
|
||||
makeLinkFromString(linkSummary) + "\"><i>(" +
|
||||
linkSummary.toLowerCase() +
|
||||
")</i></a> <a href=\"#top\"><i>(top)</i></a></td></tr>");
|
||||
|
||||
saveBuildInfoBlock(outFile, "Build Command Lines",
|
||||
itemInfo.buildCmdLog, false);
|
||||
saveBuildInfoBlock(outFile, "Build Output",
|
||||
itemInfo.buildOutLog, false);
|
||||
|
||||
if (false == bLib)
|
||||
{
|
||||
if (itemInfo.runOutput == "" && itemInfo.exitCode != 0)
|
||||
itemInfo.runOutput = "Exited with code " + itemInfo.exitCode;
|
||||
|
||||
saveBuildInfoBlock(outFile, "Executable Output",
|
||||
encodeHTML(itemInfo.runOutput), true);
|
||||
}
|
||||
|
||||
if (itemInfo.runDiff != "")
|
||||
{
|
||||
saveBuildInfoBlock(outFile, "Differences",
|
||||
encodeHTML(itemInfo.runDiff), true);
|
||||
}
|
||||
|
||||
outFile.WriteLine("</table>");
|
||||
}
|
||||
|
||||
|
||||
function saveBuildInfoBlock(outFile, blockName, blockData, needPre)
|
||||
{
|
||||
// header
|
||||
outFile.Write("<tr><td style=\"padding:4px;\"><strong>");
|
||||
outFile.Write(blockName);
|
||||
outFile.WriteLine("</strong></td></tr>");
|
||||
|
||||
// data
|
||||
outFile.WriteLine("<tr><td widht=\"100%\" \
|
||||
style=\"padding-left:4px;padding-right:4px;padding-bottom:4px;\">");
|
||||
|
||||
outFile.WriteLine("<table width=\"100%\" border=\"0\" \
|
||||
bgcolor=\"#EEEEEE\" \
|
||||
style=\"left-margin:5px;right-margin:\
|
||||
5px;border:#000000 solid 1px;\"> ");
|
||||
|
||||
outFile.WriteLine("<tr> <td>");
|
||||
|
||||
if (needPre == true)
|
||||
outFile.WriteLine("<pre>");
|
||||
|
||||
outFile.WriteLine(blockData);
|
||||
|
||||
if (needPre == true)
|
||||
outFile.WriteLine("</pre>");
|
||||
|
||||
outFile.WriteLine("</td></tr>");
|
||||
outFile.WriteLine("</table>");
|
||||
outFile.WriteLine("</td></tr>");
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function makeLinkFromString(linkString)
|
||||
{
|
||||
var srcS = " ";
|
||||
var destS = "-";
|
||||
var reRep = new RegExp(srcS, "mg");
|
||||
var res = linkString.replace(reRep, destS);
|
||||
res = res.toLowerCase();
|
||||
return res;
|
||||
}
|
||||
|
||||
function getSummaryLogPath(buildDir, buildSummaryPrefix, buildType)
|
||||
{
|
||||
var outDir = buildDir;
|
||||
return outDir + "\\" + buildSummaryPrefix + buildType + ".html";
|
||||
}
|
||||
|
||||
function makeSummaryLog(buildDir, buildSummaryPrefix, buildType)
|
||||
{
|
||||
var outDir = buildDir;
|
||||
if (! fso.FolderExists(outDir))
|
||||
fso.CreateFolder(outDir);
|
||||
|
||||
var oFolder = fso.GetFolder(outDir);
|
||||
var sumFileName = buildSummaryPrefix + buildType + ".html";
|
||||
var fSum = oFolder.CreateTextFile(sumFileName);
|
||||
|
||||
fSum.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
||||
fSum.WriteLine("<body bgcolor=\"#FFFFFF\"> \
|
||||
<font face=\"arial\" color=\"#000000\">");
|
||||
|
||||
fSum.WriteLine("<center><H2>" + buildType + "</H2></center>");
|
||||
|
||||
fSum.WriteLine("<table border=\"0\" width=\"100%\">");
|
||||
|
||||
fSum.WriteLine("<tr><td style=\"padding-top:5px;padding-bottom:5px; \
|
||||
border-top:#000000 solid 1px;border-bottom:#000000 solid 1px;\" \
|
||||
align=\"center\">");
|
||||
|
||||
fSum.WriteLine("<a href=\"#" + makeLinkFromString(hdrLibrary) +
|
||||
"\">" + hdrLibrary + "</a> : ");
|
||||
fSum.WriteLine("<a href=\"#" + makeLinkFromString(hdrTestDriver) +
|
||||
"\">" + hdrTestDriver + "</a> : ");
|
||||
fSum.WriteLine("<a href=\"#" + makeLinkFromString(hdrExamples) +
|
||||
"\">" + hdrExamples + "</a> : ");
|
||||
fSum.WriteLine("<a href=\"#" + makeLinkFromString(hdrTests) +
|
||||
"\">" + hdrTests + "</a>");
|
||||
|
||||
fSum.WriteLine("</td></tr>");
|
||||
|
||||
fSum.WriteLine("</table>");
|
||||
fSum.WriteLine("<br/>");
|
||||
|
||||
return fSum;
|
||||
}
|
||||
|
||||
|
||||
function saveSummaryHeaderLib(fSum, libInfo, hdrLibrary)
|
||||
{
|
||||
fSum.WriteLine("<strong><a name=\"" + makeLinkFromString(hdrLibrary) +
|
||||
"\">" + hdrLibrary + "</a></strong>");
|
||||
|
||||
fSum.WriteLine("<table border=\"0\" width=\"100%\" \
|
||||
style=\"border:#000000 solid 1px;\" cellspacing=\"0\">");
|
||||
|
||||
// save header row
|
||||
fSum.WriteLine("<tr bgcolor=\"#CCCCCC\">");
|
||||
fSum.WriteLine(
|
||||
"<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\"><strong>Library</strong></td>");
|
||||
fSum.WriteLine(
|
||||
"<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\"><strong>State</strong></td>");
|
||||
fSum.WriteLine(
|
||||
"<td style=\"padding:2px;border-bottom:#000000 solid 1px;\">\
|
||||
<strong>Warnings</strong></td>");
|
||||
fSum.WriteLine("</tr>");
|
||||
|
||||
// save library header
|
||||
if (libInfo.errorsCnt == "0")
|
||||
fSum.WriteLine("<tr bgcolor=\"#FFFFFF\" \
|
||||
style=\"border-bottom:#000000 solid 1px;\">");
|
||||
else
|
||||
fSum.WriteLine("<tr bgcolor=\"#FF9999\" \
|
||||
style=\"border-bottom:#000000 solid 1px;\">");
|
||||
|
||||
fSum.WriteLine(
|
||||
"<td style=\"padding:2px;border-right:#000000 solid 1px;\">"
|
||||
+ "<a href=\"#" + libInfo.name + "\">" + libInfo.name + "</a></td>");
|
||||
|
||||
fSum.Write("<td style=\"padding:2px;border-right:#000000 solid 1px;\">");
|
||||
if (libInfo.errorsCnt == "0")
|
||||
fSum.Write("OK");
|
||||
else
|
||||
fSum.Write("Failed");
|
||||
fSum.WriteLine("</td>");
|
||||
|
||||
fSum.WriteLine("<td style=\"padding:2px;\">" +
|
||||
libInfo.warningsCnt + "</td>");
|
||||
|
||||
fSum.WriteLine("</tr>");
|
||||
|
||||
fSum.WriteLine("</table>");
|
||||
fSum.WriteLine("<br/>");
|
||||
}
|
||||
|
||||
function saveSummaryHeaderTestDriver(fSum, rwtestInfo, hdrDriver)
|
||||
{
|
||||
fSum.WriteLine("<strong><a name=\"" + makeLinkFromString(hdrDriver) +
|
||||
"\">" + hdrDriver + "</a></strong>");
|
||||
|
||||
fSum.WriteLine("<table border=\"0\" width=\"100%\" \
|
||||
style=\"border:#000000 solid 1px;\" cellspacing=\"0\">");
|
||||
|
||||
// save header row
|
||||
fSum.WriteLine("<tr bgcolor=\"#CCCCCC\">");
|
||||
fSum.WriteLine("<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\">\
|
||||
<strong>Test Driver</strong></td>");
|
||||
fSum.WriteLine(
|
||||
"<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\"><strong>State</strong></td>");
|
||||
fSum.WriteLine(
|
||||
"<td style=\"padding:2px;border-bottom:#000000 solid 1px;\">\
|
||||
<strong>Warnings</strong></td>");
|
||||
fSum.WriteLine("</tr>");
|
||||
|
||||
// save test driver header
|
||||
if (rwtestInfo.errorsCnt == "0")
|
||||
fSum.WriteLine("<tr bgcolor=\"#FFFFFF\" \
|
||||
style=\"border-bottom:#000000 solid 1px;\">");
|
||||
else
|
||||
fSum.WriteLine("<tr bgcolor=\"#FF9999\" \
|
||||
style=\"border-bottom:#000000 solid 1px;\">");
|
||||
|
||||
fSum.WriteLine(
|
||||
"<td style=\"padding:2px;border-right:#000000 solid 1px;\">" +
|
||||
"<a href=\"#" + rwtestInfo.name + "\">" +
|
||||
rwtestInfo.name + "</a></td>");
|
||||
|
||||
fSum.Write(
|
||||
"<td style=\"padding:2px;border-right:#000000 solid 1px;\">");
|
||||
if (rwtestInfo.errorsCnt == "0")
|
||||
fSum.Write("OK");
|
||||
else
|
||||
fSum.Write("Failed");
|
||||
fSum.WriteLine("</td>");
|
||||
|
||||
fSum.WriteLine("<td style=\"padding:2px;\">" +
|
||||
rwtestInfo.warningsCnt + "</td>");
|
||||
|
||||
fSum.WriteLine("</tr>");
|
||||
|
||||
fSum.WriteLine("</table>");
|
||||
fSum.WriteLine("<br/>");
|
||||
}
|
||||
|
||||
|
||||
function saveSummaryHeaderMulti(fSum, exsDir, buildType, hdrExamples)
|
||||
{
|
||||
fSum.WriteLine("<strong><a name=\"" + makeLinkFromString(hdrExamples) +
|
||||
"\">" + hdrExamples + "</a></strong>");
|
||||
|
||||
fSum.WriteLine("<table border=\"0\" width=\"100%\" \
|
||||
style=\"border:#000000 solid 1px;\" cellspacing=\"0\">");
|
||||
|
||||
// save header row
|
||||
fSum.WriteLine("<tr bgcolor=\"#CCCCCC\">");
|
||||
fSum.WriteLine("<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\"><strong>Example</strong></td>");
|
||||
fSum.WriteLine("<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\"><strong>State</strong></td>");
|
||||
fSum.WriteLine("<td style=\"padding:2px;border-right:#000000 solid 1px;\
|
||||
border-bottom:#000000 solid 1px;\">\
|
||||
<strong>Comparision</strong></td>");
|
||||
fSum.WriteLine("<td style=\"padding:2px;\
|
||||
border-bottom:#000000 solid 1px;\"><strong>Warnings</strong></td>");
|
||||
fSum.WriteLine("</tr>");
|
||||
|
||||
// load information from local summary file
|
||||
// and save it to general summary
|
||||
var lsumFileName = exsDir + "\\" + summaryFileName;
|
||||
if (fso.FileExists(lsumFileName))
|
||||
{
|
||||
var fileLSum = fso.OpenTextFile(lsumFileName);
|
||||
if (!fileLSum.AtEndOfStream)
|
||||
{
|
||||
var lsumData = fileLSum.ReadAll();
|
||||
fSum.Write(lsumData);
|
||||
}
|
||||
fileLSum.Close();
|
||||
}
|
||||
|
||||
fSum.WriteLine("</table>");
|
||||
fSum.WriteLine("<br/>");
|
||||
}
|
||||
|
||||
function saveBuildSummarySingle(fSum, libInfo, hdrLibrary)
|
||||
{
|
||||
saveBuildInfoTable(fSum, libInfo, hdrLibrary, true);
|
||||
fSum.WriteLine("<br/>");
|
||||
}
|
||||
|
||||
|
||||
function saveBuildSummaryMulti(fSum, htmDir)
|
||||
{
|
||||
if (!fso.FolderExists(htmDir))
|
||||
return;
|
||||
var htmFolder = fso.GetFolder(htmDir);
|
||||
|
||||
var enumHtmSubFolders = new Enumerator(htmFolder.SubFolders);
|
||||
for (; !enumHtmSubFolders.atEnd(); enumHtmSubFolders.moveNext())
|
||||
{
|
||||
var htmFName = enumHtmSubFolders.item().Name;
|
||||
saveBuildSummariesFromFolder(fSum,
|
||||
enumHtmSubFolders.item().Path, htmFolderName);
|
||||
saveBuildSummaryMulti(fSum, htmDir + "\\" + htmFName);
|
||||
}
|
||||
}
|
||||
|
||||
function saveBuildSummariesFromFolder(fSum, testFolder, htmFName)
|
||||
{
|
||||
var htmFldName = testFolder + "\\" + htmFName;
|
||||
if (!fso.FolderExists(htmFldName))
|
||||
return;
|
||||
|
||||
var htmFld = fso.GetFolder(htmFldName);
|
||||
|
||||
var rx = new RegExp("^.+\\.(?:htm)$", "i");
|
||||
var enumHtmFiles = new Enumerator(htmFld.Files);
|
||||
for (; !enumHtmFiles.atEnd(); enumHtmFiles.moveNext())
|
||||
{
|
||||
var htmFileName = enumHtmFiles.item().Name;
|
||||
if (! rx.test(htmFileName))
|
||||
continue;
|
||||
|
||||
var htmFile = fso.OpenTextFile(htmFldName + "\\" + htmFileName);
|
||||
var htmData = htmFile.ReadAll();
|
||||
|
||||
fSum.Write(htmData);
|
||||
|
||||
fSum.WriteLine("<br/>");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function closeSummaryLog(fSum)
|
||||
{
|
||||
fSum.WriteLine("</body>");
|
||||
fSum.Close();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
function checkForFailures(testDir, bType, logHtm, sumHtm, htmTempDir,
|
||||
seeHtm, useUnicode)
|
||||
{
|
||||
if (!fso.FolderExists(testDir))
|
||||
return;
|
||||
var testFolder = fso.GetFolder(testDir);
|
||||
|
||||
var seeHtmHere = seeHtm;
|
||||
if (false == seeHtmHere && testFolder.Name == bType)
|
||||
seeHtmHere = true;
|
||||
|
||||
var enumHtmSubFolders = new Enumerator(testFolder.SubFolders);
|
||||
for (; !enumHtmSubFolders.atEnd(); enumHtmSubFolders.moveNext())
|
||||
{
|
||||
var htmFName = enumHtmSubFolders.item().Name;
|
||||
checkForFailures(testDir + "\\" + htmFName, bType,
|
||||
logHtm, sumHtm, htmTempDir, seeHtmHere, useUnicode);
|
||||
}
|
||||
|
||||
if (false == seeHtmHere)
|
||||
return;
|
||||
|
||||
var rx = new RegExp("^.+\\.(?:htm)$", "i");
|
||||
var enumHtmFiles = new Enumerator(testFolder.Files);
|
||||
for (; !enumHtmFiles.atEnd(); enumHtmFiles.moveNext())
|
||||
{
|
||||
var htmFileName = enumHtmFiles.item().Name;
|
||||
if (! rx.test(htmFileName))
|
||||
continue;
|
||||
|
||||
if (htmFileName != logHtm)
|
||||
continue;
|
||||
|
||||
var testInfo = new ItemBuildInfo(testFolder.Name);
|
||||
|
||||
var uniMode = (true == useUnicode) ? -1 : 0;
|
||||
var blogFile =
|
||||
fso.OpenTextFile(testFolder.Path + "\\" + htmFileName,
|
||||
1, false, uniMode);
|
||||
var blogData = blogFile.AtEndOfStream ? "" : blogFile.ReadAll();
|
||||
|
||||
var posTmp = getCommandLinesInfo(testInfo, blogData, 0);
|
||||
posTmp = getCompilationInfo(testInfo, blogData, posTmp);
|
||||
posTmp = getBuildSummaryInfo(testInfo, blogData, posTmp);
|
||||
|
||||
if (testInfo.errorsCnt != "0")
|
||||
saveBuildFailure(testFolder.Path, testInfo, sumHtm, htmTempDir);
|
||||
}
|
||||
}
|
||||
|
||||
function saveBuildFailure(testDir, testInfo, sumHtm, htmTempDir)
|
||||
{
|
||||
var htmTempPath = getParentFolder(testDir) + "\\" + htmTempDir;
|
||||
if (! fso.FolderExists(htmTempPath))
|
||||
fso.CreateFolder(htmTempPath);
|
||||
|
||||
saveBuildInfo(testInfo, htmTempPath, "htm");
|
||||
|
||||
var sumTempFile;
|
||||
if (fso.FileExists(sumHtm))
|
||||
{
|
||||
sumTempFile = fso.OpenTextFile(sumHtm, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
WScript.Echo("Path " + sumHtm + " not found");
|
||||
return;
|
||||
}
|
||||
|
||||
saveBuildSummary(testInfo, sumTempFile);
|
||||
sumTempFile.Close();
|
||||
}
|
||||
Reference in New Issue
Block a user