diff options
Diffstat (limited to 'src/regtests/jedutil/jedtest.wsf')
-rw-r--r-- | src/regtests/jedutil/jedtest.wsf | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/src/regtests/jedutil/jedtest.wsf b/src/regtests/jedutil/jedtest.wsf new file mode 100644 index 00000000000..cb2e47b509f --- /dev/null +++ b/src/regtests/jedutil/jedtest.wsf @@ -0,0 +1,209 @@ +<?xml version="1.0"?> +<package> + <job id="Test"><?job debug="true" error="true"?> + <runtime> + <description>This script runs regresion tests on the jedutil tool.</description> + </runtime> + + <script language="JScript"> + <![CDATA[ + var g_Verbose = false; + + function diffFiles(file1, file2) + { + var WshShell = WScript.CreateObject("WScript.Shell"); + var oExec; + + if (g_Verbose) + { + WScript.Echo("Diff File 1: " + file1); + WScript.Echo("Diff File 2: " + file2); + WScript.Echo(); + } + + oExec = WshShell.Exec("diff " + file1 + " " + file2); + + while (!oExec.Status) + { + WScript.Sleep(100); + } + + if (g_Verbose) + { + WScript.StdOut.WriteLine(oExec.StdOut.ReadAll()); + WScript.StdErr.WriteLine(oExec.StdErr.ReadAll()); + } + + return oExec.ExitCode; + } + + function runCommandAndCaptureOutput(command, outputFile) + { + var WshShell = WScript.CreateObject("WScript.Shell"); + var fullCommand; + + fullCommand = "%comspec% /c "; + fullCommand += command; + fullCommand += " > "; + fullCommand += outputFile; + fullCommand += " 2>&1"; + + if (g_Verbose) + { + WScript.Echo("Running the command : " + command); + WScript.Echo("Output File: " + outputFile); + WScript.Echo(); + } + + WshShell.Run(fullCommand, 0, true); + } + + function findJedTests(jedsPath, baselinePath, outputPath) + { + var fso = new ActiveXObject("Scripting.FileSystemObject"); + var folder = fso.GetFolder(jedsPath) + var folderCollection = new Enumerator(folder.files); + var jedArray = new Array(); + + while (!folderCollection.atEnd()) + { + ++jedArray.length; + + jedArray[jedArray.length - 1] = new Object; + + jedArray[jedArray.length - 1].name = fso.GetBaseName(folderCollection.item().name); + jedArray[jedArray.length - 1].jedfile = folderCollection.item().path; + jedArray[jedArray.length - 1].baselineFile = baselinePath + "\\" + + jedArray[jedArray.length - 1].name + + ".txt"; + jedArray[jedArray.length - 1].outputFile = outputPath + "\\" + + jedArray[jedArray.length - 1].name + + ".txt"; + + folderCollection.moveNext(); + } + + return jedArray; + } + + function runViewJedTests(jedArray, jedUtilApp) + { + var command; + + for (i = 0; i < jedArray.length; ++i) + { + command = jedUtilApp + " -view " + jedArray[i].jedfile + " " + + jedArray[i].name; + + if (g_Verbose) + { + WScript.Echo("Viewing the JED file: " + jedArray[i].jedfile); + WScript.Echo(); + } + + runCommandAndCaptureOutput(command, jedArray[i].outputFile); + } + } + + function runDiffJedTests(jedArray) + { + var result = true; + + for (i = 0; i < jedArray.length; ++i) + { + if (g_Verbose) + { + WScript.Echo("Diffing the output from viewing the JED file: " + jedArray[i].jedfile); + } + + if (diffFiles(jedArray[i].baselineFile, jedArray[i].outputFile)) + { + WScript.Echo("Results are different for " + jedArray[i].name); + WScript.Echo(); + + result = false; + } + } + + return result; + } + + function main() + { + var result = 0; + var WshShell = WScript.CreateObject("WScript.Shell"); + var fso = new ActiveXObject("Scripting.FileSystemObject"); + var jedsPath = WshShell.CurrentDirectory + "\\jeds"; + var baselinePath = WshShell.CurrentDirectory + "\\baseline"; + var outputPath = WshShell.CurrentDirectory + "\\output"; + var jedUtilApp = WshShell.CurrentDirectory + "\\..\\..\\..\\jedutil.exe"; + var jedArray = new Array(); + + if (g_Verbose) + { + WScript.Echo("JED Path: " + jedsPath); + WScript.Echo("Baseline Path: " + baselinePath); + WScript.Echo("Output Path: " + outputPath); + WScript.Echo("jedutil App: " + jedUtilApp); + WScript.Echo(); + } + + if (fso.FolderExists(outputPath)) + { + if (g_Verbose) + { + WScript.Echo("Emptying the output directory"); + WScript.Echo(); + } + + fso.DeleteFile(outputPath + "\\*.*"); + } + else + { + if (g_Verbose) + { + WScript.Echo("Creating the output directory"); + WScript.Echo(); + } + + fso.CreateFolder(outputPath); + } + + jedArray = findJedTests(jedsPath, baselinePath, outputPath); + + runViewJedTests(jedArray, jedUtilApp); + + if (!runDiffJedTests(jedArray)) + { + result = 1; + } + + if (!result) + { + WScript.Echo("All tests ran successfully."); + } + + return result; + } + + try + { + var result = main(); + + WScript.Quit(result); + } + catch (e) + { + WScript.Echo("Error Occurred"); + WScript.Echo(""); + WScript.Echo("Name: " + e.name); + WScript.Echo("Message: " + e.message); + WScript.Echo("Number: " + e.number); + WScript.Echo("Description: " + e.description); + + WScript.Quit(1); + } + ]]> + </script> + </job> +</package> |