first commit
This commit is contained in:
731
extern/stdcxx/4.2.1/etc/config/windows/run_locale_utils.wsf
vendored
Normal file
731
extern/stdcxx/4.2.1/etc/config/windows/run_locale_utils.wsf
vendored
Normal file
@@ -0,0 +1,731 @@
|
||||
<?xml version="1.0" ?><!-- -*- SGML -*- -->
|
||||
<package>
|
||||
<comment>
|
||||
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.
|
||||
</comment>
|
||||
<job id="run_locale_utils" prompt="no">
|
||||
<?job error="false" debug="false" ?>
|
||||
<runtime>
|
||||
<description>
|
||||
Checks locale utilities:
|
||||
1. Locale utilities sanity: location, output, etc;
|
||||
2. Functionality:
|
||||
- (re)generation of databases;
|
||||
</description>
|
||||
<named helpstring="Debug output" name="d"/>
|
||||
<named helpstring="Perform sanity check" name="s"/>
|
||||
<named helpstring="Perform functionality check" name="f"/>
|
||||
<named helpstring="Path to the locale source files"
|
||||
name="i" type="string"/>
|
||||
<named helpstring="Locale name" name="l" type="string"/>
|
||||
<named helpstring="Output file" name="O" type="string"/>
|
||||
<example>cscript run_locale_utils.wsf /s /b:..\..\..\bin\11s"
|
||||
</example>
|
||||
<usage>
|
||||
Usage: cscript run_locale_utils.wsf [/d] [/n] [/s] [/f [/i:@NlsDir /l:@LocaleName]] [/b:@BinDir] [/O:@Out],
|
||||
where
|
||||
- "/d" debug;
|
||||
- "/n" no cleanup;
|
||||
- "/s" tests location, output;
|
||||
- "/f" tests functionality; is followed by:
|
||||
- "/i:@NlsDir>"
|
||||
- "/l:@LocaleName>";
|
||||
- "/b:@BinDir";
|
||||
- "/O:@OutFile"
|
||||
</usage>
|
||||
</runtime>
|
||||
<object id="fso" progid="Scripting.FileSystemObject"/>
|
||||
<object id="WshShell" progid="WScript.Shell"/>
|
||||
<script id="run_locale_utils" language="JScript">
|
||||
<![CDATA[
|
||||
//
|
||||
// run_locale_utils script for Stdcxx library
|
||||
//
|
||||
|
||||
var dbgout = false;
|
||||
var chk_sanity = false;
|
||||
var chk_func = false;
|
||||
var nlsdir = "";
|
||||
var locale_db = "";
|
||||
var bindir = "";
|
||||
var outstrm = WScript.StdOut;
|
||||
var no_clean = false;
|
||||
|
||||
var locale = "locale.exe";
|
||||
var localedef = "localedef.exe";
|
||||
|
||||
var TemporaryFolder = 2;
|
||||
var tmpdir = fso.GetSpecialFolder(TemporaryFolder) + "\\" + fso.GetTempName();
|
||||
|
||||
// assertions
|
||||
var assertions = 0;
|
||||
var failedassertions = 0;
|
||||
|
||||
var run_stdout;
|
||||
var run_stderr;
|
||||
|
||||
var WEnv = WshShell.Environment("PROCESS");
|
||||
|
||||
// printf the message line to the stderr
|
||||
function DebugOutLine(msg)
|
||||
{
|
||||
if (dbgout)
|
||||
WScript.StdErr.WriteLine(msg);
|
||||
}
|
||||
|
||||
// printf the message to the stderr
|
||||
function DebugOut(msg)
|
||||
{
|
||||
if (dbgout)
|
||||
WScript.StdErr.Write(msg);
|
||||
}
|
||||
|
||||
// execute command and set run_stdout to the cmd stdout content;
|
||||
// set run_stderr to the cmd stderr content
|
||||
function Run(cmd)
|
||||
{
|
||||
var exec = WshShell.Exec(cmd);
|
||||
run_stdout = "";
|
||||
run_stderr = "";
|
||||
while (0 == exec.Status) {
|
||||
WScript.Sleep(100);
|
||||
run_stdout += exec.StdOut.ReadAll();
|
||||
run_stderr += exec.StdErr.ReadAll();
|
||||
}
|
||||
|
||||
run_stdout += exec.StdOut.ReadAll();
|
||||
run_stderr += exec.StdErr.ReadAll();
|
||||
|
||||
return exec;
|
||||
}
|
||||
|
||||
function Cleanup()
|
||||
{
|
||||
if (!no_clean && fso.FolderExists(tmpdir))
|
||||
fso.DeleteFolder(tmpdir, true);
|
||||
}
|
||||
|
||||
function Exit(code)
|
||||
{
|
||||
Cleanup();
|
||||
WScript.Quit(code);
|
||||
}
|
||||
|
||||
// convert number num to string with specified width
|
||||
function FormatNumber(num, width)
|
||||
{
|
||||
var s = num.toString();
|
||||
var spaces = width - s.length;
|
||||
for (var i = 0; i < spaces; ++i)
|
||||
s = " " + s;
|
||||
return s;
|
||||
}
|
||||
|
||||
// create folder with intermediate folders, if needed
|
||||
function CreateFolder(path)
|
||||
{
|
||||
var res = true;
|
||||
|
||||
if (!fso.FolderExists(path))
|
||||
{
|
||||
var parent = fso.GetParentFolderName(path);
|
||||
if (0 == parent.length)
|
||||
return false;
|
||||
res = CreateFolder(parent);
|
||||
if (res)
|
||||
{
|
||||
try
|
||||
{
|
||||
fso.CreateFolder(path);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
res = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
var description = new run_locale_utils; // run
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Function definitions - checking sanity
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function check_locale_help()
|
||||
{
|
||||
DebugOut("Checking \"locale --help\" output...");
|
||||
|
||||
var cmd = locale + " --help";
|
||||
var exec = Run(cmd);
|
||||
|
||||
var xout = new Array("NAME", "SYNOPSIS", "DESCRIPTION");
|
||||
|
||||
for (var i = 0; i < xout.length; ++i)
|
||||
{
|
||||
++assertions;
|
||||
|
||||
if (0 > run_stdout.search(xout[i]))
|
||||
{
|
||||
DebugOutLine(" incorrect.");
|
||||
DebugOutLine("ERROR: \"locale --help\" gives wrong output ("
|
||||
+ xout[i] + ").");
|
||||
|
||||
++failedassertions;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DebugOutLine(" correct.");
|
||||
}
|
||||
|
||||
function check_locale_all()
|
||||
{
|
||||
DebugOut("Checking \"locale -a\" output...");
|
||||
|
||||
var cmd = locale + " -a";
|
||||
var exec = Run(cmd);
|
||||
var aout = run_stdout.split("\n");
|
||||
|
||||
for (var i = 0; i < aout.length; ++i)
|
||||
{
|
||||
++assertions;
|
||||
|
||||
var line = aout[i].replace("\r", "").replace("\n", "");
|
||||
|
||||
if (0 == line.length || "C" == line)
|
||||
continue;
|
||||
|
||||
if (0 > line.search(new RegExp("[a-z]\{2\}_[A-Z]\{2\}")))
|
||||
{
|
||||
DebugOutLine(" incorrect.");
|
||||
DebugOutLine(" Warning: Locale name " + line
|
||||
+ " not matching pattern.");
|
||||
|
||||
++failedassertions;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DebugOutLine("check completed.");
|
||||
}
|
||||
|
||||
function check_locale_m()
|
||||
{
|
||||
DebugOut("Checking \"locale -m\" output...");
|
||||
|
||||
var cmd = locale + " -m";
|
||||
var exec = Run(cmd);
|
||||
var aout = run_stdout.split("\n");
|
||||
|
||||
for (var i = 0; i < aout.length; ++i)
|
||||
{
|
||||
++assertions;
|
||||
|
||||
var line = aout[i].replace("\r", "").replace("\n", "");
|
||||
|
||||
if (0 > line.search(new RegExp(".cm")))
|
||||
{
|
||||
DebugOutLine(" incorrect.");
|
||||
DebugOutLine("ERROR: \"locale -m\" failed.");
|
||||
|
||||
++failedassertions;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DebugOutLine(" correct.");
|
||||
}
|
||||
|
||||
function check_locale_k()
|
||||
{
|
||||
DebugOut("Checking \"locale -k LC_ALL\" output...")
|
||||
|
||||
var cmd = locale + " -k LC_ALL";
|
||||
var exec = Run(cmd);
|
||||
|
||||
var xout = new Array("upper", "lower", "space", "print", "cntrl",
|
||||
"alpha", "digit", "punct", "graph", "xdigit", "toupper",
|
||||
"tolower", "abday", "day", "abmon", "", "mon", "am_pm",
|
||||
"d_t_fmt", "d_fmt", "t_fmt", "t_fmt_ampm", "int_curr_symbol",
|
||||
"currency_symbol", "mon_decimal_point", "mon_thousands_sep",
|
||||
"mon_grouping", "positive_sign", "negative_sign", "int_frac_digits",
|
||||
"frac_digits", "p_cs_precedes", "p_sep_by_space", "n_cs_precedes",
|
||||
"n_sep_by_space", "p_sign_posn", "n_sign_posn", "decimal_point",
|
||||
"thousands_sep", "grouping");
|
||||
|
||||
var any_failed = false;
|
||||
|
||||
for (var i = 0; i < xout.length; ++i)
|
||||
{
|
||||
++assertions;
|
||||
|
||||
if (0 > run_stdout.search(xout[i]))
|
||||
{
|
||||
// output text only for the first failure
|
||||
if (!any_failed)
|
||||
DebugOutLine(" incorrect.");
|
||||
|
||||
DebugOutLine("ERROR: \"locale -k\" gives wrong output (" +
|
||||
+ xout[i] +").");
|
||||
|
||||
++failedassertions;
|
||||
|
||||
any_failed = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!any_failed)
|
||||
DebugOutLine(" correct.");
|
||||
}
|
||||
|
||||
function check_localedef_help()
|
||||
{
|
||||
DebugOut("Checking \"localedef --help\" output...");
|
||||
|
||||
var cmd = localedef + " --help";
|
||||
var exec = Run(cmd);
|
||||
|
||||
var xout = new Array("NAME", "SYNOPSIS", "DESCRIPTION");
|
||||
|
||||
for (var i = 0; i < xout.length; ++i)
|
||||
{
|
||||
++assertions;
|
||||
|
||||
if (0 > run_stdout.search(xout[i]))
|
||||
{
|
||||
DebugOutLine(" incorrect.");
|
||||
DebugOutLine("ERROR: \"localedef --help\" gives wrong output ("
|
||||
+ xout[i] + ").");
|
||||
|
||||
++failedassertions;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DebugOutLine(" correct.");
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Function definitions - checking functionality
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//
|
||||
// Generates one specified locale
|
||||
//
|
||||
function generate_locale(charmap, src, locname)
|
||||
{
|
||||
var err = "Cannot generate locale database - ";
|
||||
|
||||
// charmap - character map file used in generating the locale database
|
||||
// src - source/locale definition file
|
||||
// locname - locale database name
|
||||
|
||||
if (charmap == "")
|
||||
{
|
||||
outstrm.WriteLine(err + "character maps file not specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
if (src == "")
|
||||
{
|
||||
outstrm.WriteLine(err + "source input file not specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
if (locname == "")
|
||||
{
|
||||
outstrm.WriteLine(err + "output locale name not specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
++assertions;
|
||||
|
||||
// Generating the database
|
||||
var cmd = localedef + " -w -c -f " + charmap
|
||||
+ " -i " + src + " " + locname;
|
||||
DebugOutLine(cmd);
|
||||
|
||||
var exec = Run(cmd);
|
||||
DebugOut(run_stdout);
|
||||
|
||||
var retcode = exec.ExitCode;
|
||||
if (retcode)
|
||||
{
|
||||
// exit with the same status as the tool
|
||||
Exit(retcode);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
function dump_charmap(locname, outfile)
|
||||
{
|
||||
err="Cannot create characater set description file - "
|
||||
|
||||
// locname: LC_ALL value
|
||||
// outfile: output file name
|
||||
|
||||
if (outfile == "")
|
||||
{
|
||||
outstrm.WriteLine(err + " - no output file specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
++assertions;
|
||||
|
||||
// dumping charmap
|
||||
var cmd = locale + " --charmap -l";
|
||||
DebugOutLine("LC_ALL=" + locname + " " + cmd + " > " + outfile);
|
||||
|
||||
WEnv("LC_ALL") = locname;
|
||||
var exec = Run(cmd);
|
||||
|
||||
DebugOut(run_stderr);
|
||||
|
||||
var dmpfile = fso.CreateTextFile(outfile, true);
|
||||
if (dmpfile)
|
||||
{
|
||||
dmpfile.Write(run_stdout);
|
||||
dmpfile.Close();
|
||||
}
|
||||
|
||||
var retcode = exec.ExitCode;
|
||||
if (retcode)
|
||||
{
|
||||
// exit with the same status as the tool
|
||||
Exit(retcode);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Dumps one locale database
|
||||
//
|
||||
function dump_locale(locname, dumpfile)
|
||||
{
|
||||
var err = "Cannot dump locale database - ";
|
||||
|
||||
// locname: LC_ALL value
|
||||
// dumpfile: current locale dump file
|
||||
|
||||
if (dumpfile == "")
|
||||
{
|
||||
outstrm.WriteLine(err + " - no output file specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
++assertions;
|
||||
|
||||
// Dumping locale database
|
||||
var cmd = locale + " -ck -h -l LC_ALL";
|
||||
DebugOutLine("LC_ALL=" + locname + " " + cmd + " > " + dumpfile);
|
||||
|
||||
WEnv("LC_ALL") = locname;
|
||||
var exec = Run(cmd);
|
||||
|
||||
DebugOut(run_stderr);
|
||||
|
||||
var dmpfile = fso.CreateTextFile(dumpfile, true);
|
||||
if (dmpfile)
|
||||
{
|
||||
dmpfile.Write(run_stdout);
|
||||
dmpfile.Close();
|
||||
}
|
||||
|
||||
var retcode = exec.ExitCode;
|
||||
if (retcode)
|
||||
{
|
||||
// exit with the same status as the tool
|
||||
Exit(retcode);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Test one locale
|
||||
//
|
||||
function test_locale(nlsdir, tmpdir, fname)
|
||||
{
|
||||
var err = "Cannot test locale - ";
|
||||
|
||||
// nlsdir - nls subdirectory of the source directory tree
|
||||
// tmpdir - the test (sandbox) directory
|
||||
// locname - name of the locale database
|
||||
|
||||
if (nlsdir == "")
|
||||
{
|
||||
outstrm.WriteLine(err+ " - nls directory not specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
if (tmpdir == "")
|
||||
{
|
||||
outstrm.WriteLine(err + " - temporary directory not specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
if (fname == "")
|
||||
{
|
||||
outstrm.WriteLine(err+ " - locale database name not specified.");
|
||||
Exit(1);
|
||||
}
|
||||
|
||||
// get locale's name and encoding
|
||||
var rx = new RegExp("\([^.]*\)\.\([^@]*\)\(.*\)");
|
||||
var source = fname.replace(rx, "$1$3").replace("@", ".");
|
||||
var charmap = fname.replace(rx, "$2");
|
||||
|
||||
var src_path = nlsdir + "\\src\\" + source;
|
||||
var cm_path = nlsdir + "\\charmaps\\" + charmap;
|
||||
|
||||
var stage_1 = tmpdir + "\\stage.1";
|
||||
var stage_2 = tmpdir + "\\stage.2";
|
||||
var stage_3 = tmpdir + "\\stage.3";
|
||||
|
||||
source += ".src";
|
||||
|
||||
// point locale at the original source directory
|
||||
DebugOutLine("RWSTD_SRC_ROOT=" + nlsdir);
|
||||
WEnv("RWSTD_SRC_ROOT") = nlsdir;
|
||||
|
||||
// create a directory for stage 1 charmap source files
|
||||
var cm_dir1 = stage_1 + "\\charmaps";
|
||||
DebugOutLine("mkdir " + cm_dir1);
|
||||
CreateFolder(cm_dir1);
|
||||
|
||||
++assertions;
|
||||
|
||||
var locname1 = stage_1 + "\\" + fname;
|
||||
var cm_path1 = cm_dir1 + "\\" + charmap;
|
||||
var src_path1 = stage_1 + "\\" + source;
|
||||
|
||||
// generate stage 1 locale database from the orignal sources
|
||||
generate_locale(cm_path, src_path, locname1);
|
||||
|
||||
++assertions;
|
||||
|
||||
// dump the charmap and the locale data from the database
|
||||
// to a pair of charmap and locale source files
|
||||
dump_charmap(locname1, cm_path1);
|
||||
dump_locale(locname1, src_path1);
|
||||
|
||||
// create a directory for stage 2 charmap source files
|
||||
var cm_dir2 = stage_2 + "\\charmaps";
|
||||
DebugOutLine("mkdir " + cm_dir2);
|
||||
CreateFolder(cm_dir2);
|
||||
|
||||
++assertions;
|
||||
|
||||
var locname2 = stage_2 + "\\" + fname;
|
||||
var cm_path2 = cm_dir2 + "\\" + charmap;
|
||||
var src_path2 = stage_2 + "\\" + source;
|
||||
|
||||
// generate stage 2 locale database from the charmap and locale
|
||||
// source files produced by locale from the stage 1 database
|
||||
generate_locale(cm_path1, src_path1, locname2);
|
||||
|
||||
// point locale at the stage 1 directory
|
||||
DebugOutLine("RWSTD_SRC_ROOT=" + stage_1);
|
||||
WEnv("RWSTD_SRC_ROOT") = stage_1;
|
||||
|
||||
++assertions;
|
||||
|
||||
// dump the charmap and the locale data from the database
|
||||
//to a pair of charmap and locale source files
|
||||
dump_charmap(locname2, cm_path2);
|
||||
dump_locale(locname2, src_path2);
|
||||
|
||||
++assertions;
|
||||
|
||||
// create a directory for stage 2 charmap source files
|
||||
var cm_dir3 = stage_3 + "\\charmaps";
|
||||
DebugOutLine("mkdir " + cm_dir3);
|
||||
CreateFolder(cm_dir3);
|
||||
|
||||
++assertions;
|
||||
|
||||
var locname3 = stage_3 + "\\" + fname;
|
||||
var cm_path3 = cm_dir3 + "\\" + charmap;
|
||||
var src_path3 = stage_3 + "\\" + source;
|
||||
|
||||
// generate stage 3 locale database from the charmap and locale
|
||||
// source files produced by locale from the stage 2 database
|
||||
generate_locale(cm_path2, src_path2, locname3);
|
||||
|
||||
// point locale at the stage 2 directory
|
||||
DebugOutLine("RWSTD_SRC_ROOT=" + stage_2);
|
||||
WEnv("RWSTD_SRC_ROOT") = stage_2;
|
||||
|
||||
++assertions;
|
||||
|
||||
// dump the charmap and the locale data from the database
|
||||
// to a pair of charmap and locale source files
|
||||
dump_charmap(locname3, cm_path3);
|
||||
dump_locale(locname3, src_path3);
|
||||
|
||||
++assertions;
|
||||
|
||||
// verify that stage 1 and stage 2 charmaps are the same
|
||||
var cmd = "fc " + cm_path1 + " " + cm_path2;
|
||||
DebugOutLine(cmd);
|
||||
var retcode = Run(cmd).ExitCode;
|
||||
if (retcode)
|
||||
{
|
||||
DebugOutLine("## AssertionFailed: " + cm_path1 +
|
||||
" and " + cm_path2 + " differ.");
|
||||
++failedassertions;
|
||||
}
|
||||
|
||||
// verify that stage 2 and stage 3 charmaps are the same
|
||||
var cmd = "fc " + cm_path2 + " " + cm_path3;
|
||||
DebugOutLine(cmd);
|
||||
var retcode = Run(cmd).ExitCode;
|
||||
if (retcode)
|
||||
{
|
||||
DebugOutLine("## AssertionFailed: " + cm_path2 +
|
||||
" and " + cm_path3 + " differ.");
|
||||
++failedassertions;
|
||||
}
|
||||
|
||||
// verify that stage 2 and stage 3 locale sources are the same
|
||||
var cmd = "fc " + src_path2 + " " + src_path3;
|
||||
DebugOutLine(cmd);
|
||||
var retcode = Run(cmd).ExitCode;
|
||||
if (retcode)
|
||||
{
|
||||
DebugOutLine("## AssertionFailed: " + src_path2 +
|
||||
" and " + src_path3 + " differ.");
|
||||
++failedassertions;
|
||||
}
|
||||
|
||||
if (!no_clean)
|
||||
{
|
||||
// clean up
|
||||
DebugOutLine("rm -rf " + stage_1 + " " + stage_2 + " " + stage_3);
|
||||
if (fso.FolderExists(stage_1))
|
||||
fso.DeleteFolder(stage_1, true);
|
||||
if (fso.FolderExists(stage_2))
|
||||
fso.DeleteFolder(stage_2, true);
|
||||
if (fso.FolderExists(stage_3))
|
||||
fso.DeleteFolder(stage_3, true);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Main code
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function run_locale_utils()
|
||||
{
|
||||
if (WScript.Arguments.Named.Exists("d"))
|
||||
dbgout = true;
|
||||
|
||||
if (WScript.Arguments.Named.Exists("s"))
|
||||
chk_sanity = true;
|
||||
|
||||
if (WScript.Arguments.Named.Exists("f"))
|
||||
chk_func = true;
|
||||
|
||||
if (WScript.Arguments.Named.Exists("i"))
|
||||
nlsdir = WScript.Arguments.Named("i");
|
||||
|
||||
if (WScript.Arguments.Named.Exists("l"))
|
||||
locale_db = WScript.Arguments.Named("l");
|
||||
|
||||
if (WScript.Arguments.Named.Exists("n"))
|
||||
no_clean = true;
|
||||
|
||||
if (WScript.Arguments.Named.Exists("b"))
|
||||
{
|
||||
bindir = WScript.Arguments.Named("b");
|
||||
locale = bindir + "\\" + locale;
|
||||
localedef = bindir + "\\" + localedef;
|
||||
}
|
||||
|
||||
if (WScript.Arguments.Named.Exists("O"))
|
||||
{
|
||||
var outfile = WScript.Arguments.Named("O");
|
||||
outstrm = fso.CreateTextFile(outfile, true);
|
||||
if (!outstrm)
|
||||
{
|
||||
WScript.StdErr.WriteLine("Unable to create " + outfile + ", aborting");
|
||||
WScript.Quit(2);
|
||||
}
|
||||
}
|
||||
|
||||
if (chk_sanity)
|
||||
{
|
||||
// checking locale sanity
|
||||
check_locale_help();
|
||||
check_locale_all();
|
||||
check_locale_m();
|
||||
check_locale_k();
|
||||
check_localedef_help();
|
||||
|
||||
}
|
||||
else if (chk_func)
|
||||
{
|
||||
// create the temp dir
|
||||
if (!CreateFolder(tmpdir))
|
||||
{
|
||||
WScript.StdErr.WriteLine("Unable to create " + tmpdir + ", aborting");
|
||||
WScript.Quit(1);
|
||||
}
|
||||
|
||||
// test only one locale
|
||||
test_locale(nlsdir, tmpdir, locale_db);
|
||||
|
||||
Cleanup();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Invocation is wrong
|
||||
WScript.Arguments.ShowUsage();
|
||||
WScript.Quit(2);
|
||||
}
|
||||
|
||||
if (assertions)
|
||||
{
|
||||
var pcnt = 100 * (assertions - failedassertions) / assertions;
|
||||
pcnt = Math.floor(pcnt + 0.5);
|
||||
outstrm.WriteLine("# +-----------------------+----------+----------+----------+");
|
||||
outstrm.WriteLine("# | DIAGNOSTIC | ACTIVE | TOTAL | INACTIVE |");
|
||||
outstrm.WriteLine("# +-----------------------+----------+----------+----------+");
|
||||
outstrm.WriteLine("# | (S7) ASSERTION | " + FormatNumber(failedassertions, 8)
|
||||
+ " | " + FormatNumber(assertions, 8) + " | " + FormatNumber(pcnt, 7) + "% |");
|
||||
outstrm.WriteLine("# +-----------------------+----------+----------+----------+");
|
||||
outstrm.WriteLine();
|
||||
}
|
||||
outstrm.WriteLine("## Warnings = 0");
|
||||
outstrm.WriteLine("## Assertions = " + assertions);
|
||||
outstrm.WriteLine("## FailedAssertions = " + failedassertions);
|
||||
outstrm.WriteLine();
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
</job>
|
||||
</package>
|
||||
Reference in New Issue
Block a user