Return-Path: Delivered-To: apmail-incubator-stdcxx-commits-archive@www.apache.org Received: (qmail 74993 invoked from network); 20 Apr 2007 17:00:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 20 Apr 2007 17:00:18 -0000 Received: (qmail 62193 invoked by uid 500); 20 Apr 2007 17:00:25 -0000 Delivered-To: apmail-incubator-stdcxx-commits-archive@incubator.apache.org Received: (qmail 62181 invoked by uid 500); 20 Apr 2007 17:00:25 -0000 Mailing-List: contact stdcxx-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-commits@incubator.apache.org Received: (qmail 62170 invoked by uid 99); 20 Apr 2007 17:00:25 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Apr 2007 10:00:25 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Apr 2007 10:00:17 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 621511A9838; Fri, 20 Apr 2007 09:59:57 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r530852 - in /incubator/stdcxx/trunk/etc/config/windows: projectdef.js projects.js runall.wsf Date: Fri, 20 Apr 2007 16:59:56 -0000 To: stdcxx-commits@incubator.apache.org From: faridz@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070420165957.621511A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: faridz Date: Fri Apr 20 09:59:52 2007 New Revision: 530852 URL: http://svn.apache.org/viewvc?view=rev&rev=530852 Log: 2007-04-20 Farid Zaripov * runall.wsf: Added options /PRJDIR and /COMPAT, removed options /BUILDTYPE and /COPYDLL * projectdef.js: Add the library path to the PATH environment variable before invoking scripts or utilities (exec, localedef) * projects.js: Ditto. Removed copying libstdxx.dll to bin directory before invoking scripts or utilities Modified: incubator/stdcxx/trunk/etc/config/windows/projectdef.js incubator/stdcxx/trunk/etc/config/windows/projects.js incubator/stdcxx/trunk/etc/config/windows/runall.wsf Modified: incubator/stdcxx/trunk/etc/config/windows/projectdef.js URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/etc/config/windows/projectdef.js?view=diff&rev=530852&r1=530851&r2=530852 ============================================================================== --- incubator/stdcxx/trunk/etc/config/windows/projectdef.js (original) +++ incubator/stdcxx/trunk/etc/config/windows/projectdef.js Fri Apr 20 09:59:52 2007 @@ -726,6 +726,7 @@ new FilterDef("Src", null, "", eFileTypeText, false). addFiles(null, new Array(srcFile.Path))); projectDef.CustomBuildCmd = + "set PATH=$(SolutionDir)%CONFIG%\\lib;%PATH%\r\n" + "\"$(SolutionDir)%CONFIG%\\bin\\localedef.exe\" -w -c" + " -f \"" + cmFileName + "\"" + " -i \"" + srcFileName + "\"" + " \"$(OutDir)\\" + locale.Name + "\""; @@ -754,6 +755,8 @@ var exec = bindir + "\\exec.exe"; var test = bindir + "\\sanity_test"; + var setPath = "set PATH=$(SolutionDir)%CONFIG%\\lib;%PATH%"; + // create test_locale_sanity project var sanityDef = this.clone(); sanityDef.Name = "test_locale_sanity"; @@ -764,7 +767,7 @@ sanityDef.PreBuildCmd += "echo cscript /nologo \"" + srcdir + "\\run_locale_utils.wsf\"" + " /s /b:\"" + bindir + "\" > \"" + test + ".bat\""; - sanityDef.CustomBuildCmd = "\"" + exec + "\" -t " + execTimeout + " \"" + test + ".bat\""; + sanityDef.CustomBuildCmd = setPath + "\r\n\"" + exec + "\" -t " + execTimeout + " \"" + test + ".bat\""; sanityDef.CustomBuildOut = test + ".out"; projectDefs.push(sanityDef); @@ -817,7 +820,7 @@ "echo cscript /nologo \"" + srcdir + "\\run_locale_utils.wsf\"" + " /f /b:\"" + bindir + "\" /i:\"" + nlsDir + "\"" + " /l:" + locale.Name + " > \"" + test + ".bat\""; - projectDef.CustomBuildCmd = "\"" + exec + "\" -t " + execTimeout + " \"" + test + ".bat\""; + projectDef.CustomBuildCmd = setPath + "\r\n\"" + exec + "\" -t " + execTimeout + " \"" + test + ".bat\""; projectDef.CustomBuildOut = test + ".out"; projectDef.PrjDeps.push(sanityDef); Modified: incubator/stdcxx/trunk/etc/config/windows/projects.js URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/etc/config/windows/projects.js?view=diff&rev=530852&r1=530851&r2=530852 ============================================================================== --- incubator/stdcxx/trunk/etc/config/windows/projects.js (original) +++ incubator/stdcxx/trunk/etc/config/windows/projects.js Fri Apr 20 09:59:52 2007 @@ -246,14 +246,14 @@ "if exist \"$(OutDir)\\summary.htm del\" \"$(OutDir)\\summary.htm\"\r\n" + "if exist \"$(OutDir)\\runexamples.log\" del \"$(OutDir)\\runexamples.log\""; runexamplesDef.CustomBuildFile = "runall.wsf"; - runexamplesDef.CustomBuildCmd = "cscript /nologo \"%CUSTOMFILE%\"" + + runexamplesDef.CustomBuildCmd = + "set PATH=$(SolutionDir)%CONFIG%\\lib;%PATH%\r\n" + + "cscript /nologo \"%CUSTOMFILE%\"" + " /INOUTDIR:\"%SRCDIR%\\examples\"" + " /EXEDIR:\"$(OutDir)\"" + - " /BUILDTYPE:\"%CONFIG%\"" + + " /PRJDIR:\"" + runexamplesDef.VCProjDir + "\"" + " /CONFIG:\"%SOLUTION%\"" + - " /LOGFILE:\"runexamples.log\"" + - " /COPYDLL:" + (copyDll ? "false" : "true") + - " /LIBDIR:\"" + libPath + "\""; + " /LOGFILE:\"runexamples.log\""; runexamplesDef.CustomBuildOut = "$(OutDir)\\runexamples.log"; runexamplesDef.CustomBuildDeps = "%FILES%"; //runexamplesDef.PrjDeps.push(allexamplesDef); @@ -306,13 +306,14 @@ "if exist \"$(OutDir)\\summary.htm\" del \"$(OutDir)\\summary.htm\"\r\n" + "if exist \"$(OutDir)\\runtests.log\" del \"$(OutDir)\\runtests.log\""; runtestsDef.CustomBuildFile = "runall.wsf"; - runtestsDef.CustomBuildCmd = "cscript /nologo \"%CUSTOMFILE%\"" + + runtestsDef.CustomBuildCmd = + "set PATH=$(SolutionDir)%CONFIG%\\lib;%PATH%\r\n" + + "cscript /nologo \"%CUSTOMFILE%\"" + " /EXEDIR:\"$(OutDir)\"" + - " /BUILDTYPE:\"%CONFIG%\"" + + " /PRJDIR:\"" + runtestsDef.VCProjDir + "\"" + " /CONFIG:\"%SOLUTION%\"" + - " /LOGFILE:\"runtests.log\"" + - " /COPYDLL:" + (copyDll ? "false" : "true") + - " /LIBDIR:\"" + libPath + "\""; + " /COMPAT" + + " /LOGFILE:\"runtests.log\""; runtestsDef.CustomBuildOut = "$(OutDir)\\runtests.log"; runtestsDef.CustomBuildDeps = "%FILES%"; //runtestsDef.PrjDeps.push(alltestsDef); @@ -336,19 +337,7 @@ localeTplDef.CustomBuildFile = "run_locale_utils.wsf"; localeTplDef.CustomBuildDeps = "%FILES%"; localeTplDef.PrjDeps.push(localedefDef); - if (!copyDll) - { - // copy libstdxx.dll to the bin directory - // before executing localedef.exe utility - // and finally delete the copied file - var libname = "libstd%CONFIG%.dll"; - var src = "\"" + libPath + "\\" + libname + "\""; - var dst = "\"" + binPath + "\\" + libname + "\""; - localeTplDef.PreBuildCmd = "if exist " + src + " if not exist " + dst + - " copy /Y " + src + " " + dst; - localeTplDef.PostBuildCmd = "if exist " + dst + " del " + dst; - } - + var localeDefs = localeTplDef.createLocaleDefs("%SRCDIR%\\etc\\nls"); localeArray = localeArray.concat(localeDefs); @@ -380,23 +369,6 @@ testlocaleTplDef.PrjDeps.push(execDef); testlocaleTplDef.PrjDeps.push(localeDef); testlocaleTplDef.PrjDeps.push(localedefDef); - if (!copyDll) - { - // copy libstdxx.dll to the bin directory - // before executing run_locale_utils.wsf script - // and finally delete the copied file - var libname = "libstd%CONFIG%.dll"; - var set = - "set soldir=%BUILDDIR%\r\n" + - "set bindir=%soldir%\\%CONFIG%\\bin\r\n" + - "set dstdll=\"%bindir%\\" + libname + "\"\r\n"; - testlocaleTplDef.PreBuildCmd = set + - "set srcdll=\"%soldir%\\%CONFIG%\\lib\\" + libname + "\"\r\n" + - "if exist %srcdll% if not exist %dstdll% " + - "copy /Y %srcdll% %dstdll%"; - testlocaleTplDef.PostBuildCmd = set + - "if exist %dstdll% del %dstdll%"; - } if (testLocales) { @@ -412,12 +384,13 @@ new Array("runall.wsf", "config.js", "utilities.js", "summary.js"))); testlocaleTplDef.CustomBuildFile = "runall.wsf"; - testlocaleTplDef.CustomBuildCmd = "cscript /nologo \"%CUSTOMFILE%\"" + + testlocaleTplDef.CustomBuildCmd = + "set PATH=$(SolutionDir)%CONFIG%\\lib;%PATH%\r\n" + + "cscript /nologo \"%CUSTOMFILE%\"" + " /EXEDIR:\"$(OutDir)\"" + - " /BUILDTYPE:\"%CONFIG%\"" + " /CONFIG:\"%SOLUTION%\"" + " /LOGFILE:\"runloctests.log\"" + - " /COPYDLL:false /EXT:bat"; + " /EXT:bat"; testlocaleTplDef.CustomBuildOut = "$(OutDir)\\runloctests.log"; var testlocalesDef = testlocaleTplDef.createTestLocalesDef("%SRCDIR%\\etc\\nls"); Modified: incubator/stdcxx/trunk/etc/config/windows/runall.wsf URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/etc/config/windows/runall.wsf?view=diff&rev=530852&r1=530851&r2=530852 ============================================================================== --- incubator/stdcxx/trunk/etc/config/windows/runall.wsf (original) +++ incubator/stdcxx/trunk/etc/config/windows/runall.wsf Fri Apr 20 09:59:52 2007 @@ -26,38 +26,39 @@ - - + + - - cscript runexamples.wsf /EXEDIR:"C:\stdcxx\build" - /INOUTDIR:"C:\stdcxx\build" /BUILDTYPE:11d /CONFIG:msvc-7.1 + cscript runall.wsf /EXEDIR:"C:\stdcxx\build\examples" + /PRJDIR:"C:\stdcxx\build\projects\examples" + /INOUTDIR:"C:\stdcxx\examples" /CONFIG:msvc-7.1 -Usage: cscript runexamples.wsf /EXEDIR:@EXEDIR [/INOUTDIR:@INOUTDIR] -/BUILDTYPE:@BUILDTYPE /CONFIG:@CONFIG [/LOGFILE:@LOGFILE] -[/COPYDLL:@COPYDLL] [/LIBDIR:@LIBDIR] [/EXT:@EXT] +Usage: cscript runexamples.wsf /EXEDIR:@EXEDIR /CONFIG:@CONFIG +[/PRJDIR:@PRJDIR] [/INOUTDIR:@INOUTDIR] [/LOGFILE:@LOGFILE] +[/COMPAT] [/LIBDIR:@LIBDIR] [/EXT:@EXT] where -@EXEDIR is the root directory with executables ro be run and checked, -@TOPDIR is the root directory with .in and .out files +@EXEDIR is the root directory with executables to be run and checked, +@PRJDIR is the directory with .vcproj files of the executables, +@INOUTDIR is the root directory with .in and .out files , required by executables, -@BUILDTYPE is the build type (11d, 11s, etc). -@CONFIG is the compiler configuration (msvc-7.1, icc-9.0, etc). -@LOGFILE is the log file name. -@COPYDLL is the option for copy libstdxx.dll to executables -@LIBDIR is the library dll folder (specify when COPYDLL is true) -@EXT is the extension of the example files, default value: "exe" +@CONFIG is the compiler configuration (msvc-7.1, icc-9.0, etc), +@LOGFILE is the log file name, +@COMPAT is the option for run tests in compat mode, +@LIBDIR is the library dll folder, +@EXT is the extension of the example files, default value: "exe". @@ -72,13 +73,13 @@ // var examplesDir = ""; // path to the root directory containing executables +var projectsDir = ""; // path to the directory containing projects of the executables var inoutDir = ""; // path to the root directory - // containing the .in and .out files -var buildType = "" // the buid type (11d, 11s, etc) + // containing the .in and .out files var currentCfg = "msvc-7.1" // the configuration var logFileName = ""; // the log file name var logFileDefault = "runexamples.log"; // the default log file name -var copyDll = false; +var compatMode = false; var libdllFolder = ""; var ext = "exe"; @@ -89,6 +90,7 @@ var exRunFailed = 0; var exRunTimedOut = 0; var exBadCode = 0; +var exNotCompiled = 0; var runTimeout = 180; @@ -118,19 +120,16 @@ var fLog = fso.CreateTextFile(examplesDir + "\\" + logFileName); var fSummary = fso.CreateTextFile(buildOutDir + "\\" + summaryFileName); - runAllExamples(examplesDir, inoutDir, fLog, fSummary, ext); + runAllExamples(examplesDir, projectsDir, inoutDir, fLog, fSummary, ext); + + var logMsg = "Total run " + exRun + "; " + exRunSucceeded + " succeeded, " + + exRunFailed + " failed, " + exRunTimedOut + " failed because of timeout, " + + exBadCode + " exited with non-zero code, " + + exNotCompiled + " has not compiled"; - WScript.Echo("Total run " + exRun + "; " + exRunSucceeded - + " succeeded, " - + exRunFailed + " failed, " + exRunTimedOut - + " failed because of timeout, " + exBadCode - + " exited with non-zero code"); - - fLog.WriteLine("Total run " + exRun + "; " + exRunSucceeded - + " succeeded, " - + exRunFailed + " failed, " + exRunTimedOut - + " failed because of timeout, " + exBadCode - + " exited with non-zero code"); + WScript.Echo(logMsg); + + fLog.WriteLine(logMsg); fLog.Close(); fSummary.Close(); @@ -149,36 +148,32 @@ WScript.Quit(2); } - if (!WScript.Arguments.Named.Exists("BUILDTYPE")) + if (!WScript.Arguments.Named.Exists("CONFIG")) { WScript.StdErr.WriteLine( - "Generate: Missing required argument BUILDTYPE."); + "Generate: Missing required argument CONFIG."); WScript.Arguments.ShowUsage(); WScript.Quit(2); } examplesDir = WScript.Arguments.Named("EXEDIR"); - buildType = WScript.Arguments.Named("BUILDTYPE"); + currentCfg = WScript.Arguments.Named("CONFIG"); + + if (WScript.Arguments.Named.Exists("PRJDIR")) + projectsDir = WScript.Arguments.Named("PRJDIR"); if (WScript.Arguments.Named.Exists("INOUTDIR")) inoutDir = WScript.Arguments.Named("INOUTDIR"); utlExec = examplesDir + "\\..\\bin\\" + utlExec; - if (WScript.Arguments.Named.Exists("CONFIG")) - currentCfg = WScript.Arguments.Named("CONFIG"); - if (WScript.Arguments.Named.Exists("LOGFILE")) logFileName = WScript.Arguments.Named("LOGFILE"); else logFileName = logFileDefault; - if (WScript.Arguments.Named.Exists("COPYDLL")) - { - var copyOption = WScript.Arguments.Named("COPYDLL"); - if ("true" == copyOption) - copyDll = true; - } + if (WScript.Arguments.Named.Exists("COMPAT")) + compatMode = true; if (WScript.Arguments.Named.Exists("LIBDIR")) libdllFolder = WScript.Arguments.Named("LIBDIR"); @@ -204,16 +199,21 @@ } // run all executables starting from exeDir -// exeDir - starting folder to search executables in +// exeDir - folder containing the executables +// prjDir - folder with .vcproj files of the executables // srcDir - starting folder to search .in and .out files for the executable // fileLog - filename of the logfile // fileSimmary - filename of the summary file -function runAllExamples(exeDir, srcDir, fileLog, fileSummary, exeExt) +function runAllExamples(exeDir, prjDir, srcDir, fileLog, fileSummary, exeExt) { - var exeFolder = fso.GetFolder(exeDir); - if (! exeFolder) + if (!fso.FolderExists(exeDir)) + return; + + if (0 < prjDir.length && !fso.FolderExists(prjDir)) return; + var enumFolder = fso.GetFolder(0 < prjDir.length ? prjDir : exeDir); + var htmDir = exeDir + "\\" + htmFolderName; if (! fso.FolderExists(htmDir)) fso.CreateFolder(htmDir); @@ -221,19 +221,30 @@ var exeFiles = new Array(); var arrInfo = new Array(); - var rx = new RegExp("^.+\\.(?:" + exeExt + ")$", "i"); - var enumExeFiles = new Enumerator(exeFolder.Files); - for (; !enumExeFiles.atEnd(); enumExeFiles.moveNext()) + var enumFiles = new Enumerator(enumFolder.Files); + for (; !enumFiles.atEnd(); enumFiles.moveNext()) { - var exeFileName = enumExeFiles.item().Name; - if (! rx.test(exeFileName)) + var fileName = enumFiles.item().Name; + + if (0 < prjDir.length) + { + // skip "stdcxx_..." projects + if (0 == fileName.indexOf("stdcxx_") || + "vcproj" != fso.GetExtensionName(fileName)) + { + continue; + } + } + else if (exeExt != fso.GetExtensionName(fileName)) continue; + + var pureFileName = fso.GetBaseName(fileName); + var exeFileName = pureFileName + "." + exeExt; - var itemInfo = - new ItemBuildInfo(getPureFileName(exeFileName, exeExt)); + var itemInfo = new ItemBuildInfo(pureFileName); readBuildLog(exeDir, itemInfo, unicodeLog); - itemInfo.runReqOutput = readOutFile(srcDir, exeFileName, exeExt); + itemInfo.runReqOutput = readOutFile(srcDir, exeFileName); exeFiles.push(exeFileName); arrInfo.push(itemInfo); @@ -241,23 +252,16 @@ ++exRun; } - // temporary copy the dll to the executable - if (copyDll) - { - var dllName = libFileName + buildType + ".dll"; - var copyDllCmd = "cmd /c \"copy /Y " + libdllFolder + "\\" + dllName + - " " + exeDir + "\\" + dllName + "\""; - - WshShell.Run(copyDllCmd, 7, true); - } - var runCmd = "\"" + utlExec + "\" -t " + runTimeout; if (0 < srcDir.length) runCmd += " -d \"" + srcDir + "\""; + + if (compatMode) + runCmd += " --compat -x \"--compat -O -\""; runCmd += " " + exeFiles.join(" "); - + var prevDir = WshShell.CurrentDirectory; WshShell.CurrentDirectory = exeDir; var oExec = WshShell.Exec(runCmd); @@ -278,38 +282,27 @@ WScript.Echo(execOut); - // delete the dll if it was copied - if (copyDll) - { - try - { - fso.DeleteFile(exeFolder.Path + "\\" + dllName); - } - catch(e) - { - fileLog.WriteLine("error: could not delete temporary file" + - exeFolder.Path + "\\" + dllName); - } - } - for (var i = 0; i < arrInfo.length; ++i) { var itemInfo = arrInfo[i]; var outFileName = exeDir + "\\" + itemInfo.name + ".out"; - try - { - var outFile = fso.OpenTextFile(outFileName, 1); - if (!outFile.AtEndOfStream) - itemInfo.runOutput = outFile.ReadAll(); - - outFile.Close(); - fso.DeleteFile(outFileName); - } - catch(e) + if (fso.FileExists(outFileName)) { - WScript.Echo("Could not delete temporary file " + outFileName); + try + { + var outFile = fso.OpenTextFile(outFileName, 1); + if (!outFile.AtEndOfStream) + itemInfo.runOutput = outFile.ReadAll(); + + outFile.Close(); + fso.DeleteFile(outFileName); + } + catch(e) + { + WScript.Echo("Could not delete temporary file " + outFileName); + } } itemInfo.exitCode = parseStatus(itemInfo.name + "." + exeExt, execOut); @@ -331,10 +324,14 @@ ++exRunFailed; break; case -3: // SEGV - case -4: // other + case -5: // other ++exRunFailed; fileLog.WriteLine(itemInfo.name + " failed"); break; + case -4: // COMP + fileLog.WriteLine(itemInfo.name + " has not compiled"); + ++exNotCompiled; + break; default: ++exBadCode; fileLog.WriteLine(itemInfo.name + " completed successfully, exit code " + @@ -374,8 +371,11 @@ case " SEGV": res = -3; break; - default: + case " COMP": res = -4; + break; + default: + res = -5; } } } @@ -387,12 +387,12 @@ // srcDir - folder containing subfolders with .in and .out files // exeFileName - filename of the executable // nameSuffix - one of varIn, varOut -function readAllFromFile(srcDir, exeFileName, nameSuffix, exeExt) +function readAllFromFile(srcDir, exeFileName, nameSuffix) { if (! fso.FolderExists(srcDir)) return ""; - var pureName = getPureFileName(exeFileName, exeExt); + var pureName = fso.GetBaseName(exeFileName); var someDir = srcDir + "\\" + nameSuffix; if (! fso.FolderExists(someDir)) @@ -412,18 +412,18 @@ // returns the content of the .out file for the specified executable // srcDir - folder containing .out files // exeFileName - filename of the executable -function readOutFile(srcDir, exeFileName, exeExt) +function readOutFile(srcDir, exeFileName) { - var outData = readAllFromFile(srcDir, exeFileName, varOut, exeExt); + var outData = readAllFromFile(srcDir, exeFileName, varOut); if (0 == outData.length) { - outData = readAllFromFile(srcDir + "\\manual", exeFileName, varOut, exeExt); + outData = readAllFromFile(srcDir + "\\manual", exeFileName, varOut); if (0 < outData.length) srcDir += "\\manual"; else { - outData = readAllFromFile(srcDir + "\\tutorial", exeFileName, varOut, exeExt); + outData = readAllFromFile(srcDir + "\\tutorial", exeFileName, varOut); if (0 < outData.length) srcDir += "\\tutorial"; } @@ -447,20 +447,6 @@ return (linkedFile.ReadAll()); } - -// returns the filename without extension -// fileName - source filename -// fileExtension - extension of the file -function getPureFileName(fileName, fileExtension) -{ - var pureName = fileName; - var indexTmp = fileName.lastIndexOf("." + fileExtension); - if (indexTmp != -1) - pureName = fileName.substr(0, indexTmp); - - return pureName; -} - ]]>