dbertoni    02/01/24 16:34:51

  Modified:    c/Tests/Extensions extensions.cpp
               c/Tests/InputSource inputsource.cpp
               c/Tests/Params Params.cpp
               c/Tests/PerfT PerfT.dsp perft.cpp
  Log:
  Major clean-up.
  
  Revision  Changes    Path
  1.16      +107 -65   xml-xalan/c/Tests/Extensions/extensions.cpp
  
  Index: extensions.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/Extensions/extensions.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- extensions.cpp    17 Dec 2001 14:40:26 -0000      1.15
  +++ extensions.cpp    25 Jan 2002 00:34:50 -0000      1.16
  @@ -67,11 +67,7 @@
   #include <crtdbg.h>
   #endif
   
  -// XERCES HEADERS...
  -//   Are included by HarnessInit.hpp
   
  -// XALAN HEADERS...
  -//   Are included by FileUtility.hpp
   
   // EXTENSION HEADERS...
   #include <XalanExtensions/FunctionDifference.hpp>
  @@ -81,30 +77,34 @@
   #include <XalanExtensions/FunctionIntersection.hpp>
   #include <XalanExtensions/FunctionNodeSet.hpp>
   
  +
  +
  +#include <XalanTransformer/XalanTransformer.hpp>
  +
  +
  +
   // HARNESS HEADERS...
  -#include <XMLFileReporter.hpp>
  -#include <FileUtility.hpp>
  -#include <HarnessInit.hpp>
  +#include <Harness/XMLFileReporter.hpp>
  +#include <Harness/FileUtility.hpp>
  +#include <Harness/HarnessInit.hpp>
  +
   
   
   #if !defined(XALAN_NO_NAMESPACES)
  -     using std::cerr;
        using std::cout;
        using std::endl;
   #endif
   
  -// GLOBAL VARIABLES...
  -FileUtility                          h;
   
  -const XalanDOMString currentDir("library");
  -const XalanDOMString theNamespace("http://xml.apache.org/xalan";);
  -const char *resultString = "The specified function is not available: 
http://xml.apache.org/xalan:nodeset";;
  +
  +// GLOBAL VARIABLES...
  +const char* const    resultString = "The specified function is not 
available: http://xml.apache.org/xalan:nodeset";;
   
   
   void
  -setHelp()
  +setHelp(FileUtility& h)
   {
  -     h.args.help << endl
  +     h.args.getHelpStream() << endl
                 << "extensions dirname [-out]"
                 << endl
                 << endl
  @@ -116,24 +116,28 @@
   
   
   // Generate the various filenames needed for testing.
  -void generateFiles(const XalanDOMString &fileName, 
  -                                XalanDOMString &xml, 
  -                                XalanDOMString &xsl,
  -                                XalanDOMString &out,
  -                                XalanDOMString &gold,
  -                                const char* test)
  +void
  +generateFiles(
  +                     const XalanDOMString&   fileName,
  +                     const XalanDOMString&   currentDir,
  +                     XalanDOMString&                 xml, 
  +                     XalanDOMString&                 xsl,
  +                     XalanDOMString&                 out,
  +                     XalanDOMString&                 gold,
  +                     const char*                             test,
  +                     FileUtility&                    h)
   {
        // Set up the input/output files.
        const XalanDOMString testName(h.generateFileName(fileName,"out"));
   
  -     xsl = h.args.base + currentDir + pathSep + fileName;
  +     xsl = h.args.base + currentDir + FileUtility::s_pathSep + fileName;
        xml = h.generateFileName(xsl,"xml");
        h.data.xmlFileURL = xml;
        h.data.xslFileURL = xsl;
   
  -     out =  h.args.output + currentDir + pathSep + XalanDOMString(test) + 
testName; 
  +     out =  h.args.output + currentDir + FileUtility::s_pathSep + 
XalanDOMString(test) + testName; 
   
  -     gold = h.args.gold + currentDir + pathSep + testName;
  +     gold = h.args.gold + currentDir + FileUtility::s_pathSep + testName;
   
   }
   
  @@ -146,12 +150,18 @@
   //           globally. Currently XalanC supports the following extensions; 
difference, distinct, evaluate, 
   //           hasSameNodes, intersection and nodeset. 
   //            
  -void TestCase1(XalanTransformer &xalan, const XalanDOMString &fileName, 
XMLFileReporter &logFile)
  +void
  +TestCase1(
  +                     XalanTransformer&               xalan,
  +                     const XalanDOMString&   fileName,
  +                     const XalanDOMString&   currentDir,
  +                     XMLFileReporter&                logFile,
  +                     FileUtility&                    h)
   {
        
        XalanDOMString  xml, xsl, theOutputFile, theGoldFile;
                
  -     generateFiles(fileName, xml, xsl, theOutputFile, theGoldFile, "tc1-");
  +     generateFiles(fileName, currentDir, xml, xsl, theOutputFile, 
theGoldFile, "tc1-", h);
   
        h.data.testOrFile = XalanDOMString("TestCase1: ") + fileName;
        h.data.xmlFileURL = xml;
  @@ -175,12 +185,19 @@
   //           This test verifies that the 'nodeset' function is properly 
uninstalled via the api.
   //           Output file should NOT contain data. 
   //
  -void TestCase2(XalanTransformer &xalan, const XalanDOMString &fileName, 
XMLFileReporter &logFile)
  +void
  +TestCase2(
  +                     XalanTransformer&               xalan,
  +                     const XalanDOMString&   fileName,
  +                     const XalanDOMString&   currentDir,
  +                     const XalanDOMString&   theNamespace,
  +                     XMLFileReporter&                logFile,
  +                     FileUtility&                    h)
   {    
   
        XalanDOMString  xml, xsl, theOutputFile, theGoldFile;
        
  -     generateFiles(fileName, xml, xsl, theOutputFile, theGoldFile, "tc2-");
  +     generateFiles(fileName, currentDir, xml, xsl, theOutputFile, 
theGoldFile, "tc2-", h);
        h.data.testOrFile = XalanDOMString("TestCase2");
        h.data.xmlFileURL = xml;
        h.data.xslFileURL = xsl;
  @@ -213,12 +230,19 @@
   //           This tests the installExternalFunction method of 
XalanTransformer using the nodeset function.
   //           Output file should NOT contain data.
   //
  -void TestCase3(XalanTransformer &xalan, const XalanDOMString &fileName, 
XMLFileReporter &logFile)
  +void TestCase3(
  +                     XalanTransformer&               xalan,
  +                     const XalanDOMString&   fileName,
  +                     const XalanDOMString&   currentDir,
  +                     const XalanDOMString&   theNamespace,
  +                     XMLFileReporter&                logFile,
  +                     FileUtility&                    h)
   {
        
        XalanDOMString  xml, xsl, theOutputFile, theGoldFile;
        
  -     generateFiles(fileName, xml, xsl, theOutputFile, theGoldFile, "tc3-");
  +     generateFiles(fileName, currentDir, xml, xsl, theOutputFile, 
theGoldFile, "tc3-", h);
  +
        h.data.testOrFile = XalanDOMString("TestCase3a");
        h.data.xmlFileURL = xml;
        h.data.xslFileURL = xsl;
  @@ -275,12 +299,18 @@
   //           This tests uses transformer method 
installExternalFunctionGlobal to add the nodeset function. 
   //           The output file should contain data.
   //
  -void TestCase4(XalanTransformer &xalan, const XalanDOMString &fileName, 
XMLFileReporter &logFile)
  +void TestCase4(
  +                     XalanTransformer&               xalan,
  +                     const XalanDOMString&   fileName,
  +                     const XalanDOMString&   currentDir,
  +                     const XalanDOMString&   theNamespace,
  +                     XMLFileReporter&                logFile,
  +                     FileUtility&                    h)
   {
        
        XalanDOMString  xml, xsl, theOutputFile, theGoldFile;
   
  -     generateFiles(fileName, xml, xsl, theOutputFile, theGoldFile, "tc4-");
  +     generateFiles(fileName, currentDir, xml, xsl, theOutputFile, 
theGoldFile, "tc4-", h);
        h.data.testOrFile = XalanDOMString("TestCase4a");
        h.data.xmlFileURL = xml;
        h.data.xslFileURL = xsl;
  @@ -308,6 +338,7 @@
   
   }
   
  +
   int
   main(int                     argc,
         const char*    argv [])
  @@ -318,18 +349,24 @@
        _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
   #endif
   
  +     HarnessInit             xmlPlatformUtils;
  +
  +     FileUtility             h;
  +
        // Set the program help string,  then get the command line parameters.
        //
  -     setHelp();      
  +     setHelp(h);     
  +
        if (h.getParams(argc, argv, "EXTENSION-RESULTS") == true)
        {
  +             const XalanDOMString    currentDir("library");
                const XalanDOMString    extDir(h.args.base + currentDir);
   
                // Check that the base directory is correct.
                if ( !h.checkDir(extDir) )
                {
                        cout << "Invalid base directory - " << 
c_str(TranscodeToLocalCodePage(extDir)) << endl;
  -                     cout << h.args.help.str();
  +                     cout << h.args.getHelpMessage();
                        return 0;
                }
   
  @@ -338,7 +375,7 @@
   
                // Defined basic constants for file manipulation 
                const XalanDOMString drive(h.getDrive());
  -             const XalanDOMString  resultsFile(drive + h.args.output + 
currentDir + UniqRunid + XMLSuffix);
  +             const XalanDOMString  resultsFile(drive + h.args.output + 
currentDir + UniqRunid + FileUtility::s_xmlSuffix);
                
                XMLFileReporter logFile(resultsFile);
                logFile.logTestFileInit("C++ Extension Testing. ");
  @@ -347,41 +384,46 @@
                cout << "Performing Extension testing ..." << endl;
   
                // Call the static initializers...
  -             HarnessInit xmlPlatformUtils;
                XalanTransformer::initialize();
   
  -             XalanTransformer xalan;                         
  -                             
  -             // Check that output directory is there.
  -             XalanDOMString            fileName;
  -                             
  -             const XalanDOMString  theOutputDir = h.args.output + currentDir;
  -             h.checkAndCreateDir(theOutputDir);
  +             {
  +                     XalanTransformer        xalan;                          
  +                                     
  +                     // Check that output directory is there.
  +                     XalanDOMString          fileName;
  +                                     
  +                     const XalanDOMString    theOutputDir(h.args.output + 
currentDir);
  +
  +                     h.checkAndCreateDir(theOutputDir);
  +
  +                     // Get the files found in the "cextension" directory
  +                     const FileNameVectorType        files = 
h.getTestFileNames(h.args.base, currentDir, true);
  +
  +                     // TestCase1 is used to verify correct functioning of 
the default extension functions
  +                     TestCase1(xalan, files[0], currentDir, logFile, h);     
// Difference function
  +                     TestCase1(xalan, files[1], currentDir, logFile, h);     
// Distinct 
  +                     TestCase1(xalan, files[2], currentDir, logFile, h);     
// Evaluate 
  +                     TestCase1(xalan, files[3], currentDir, logFile, h);     
// HasSameNodes 
  +                     TestCase1(xalan, files[4], currentDir, logFile, h);     
// Intersection 
  +                     TestCase1(xalan, files[5], currentDir, logFile, h);     
// NodeSet01 - basic testing
  +                     TestCase1(xalan, files[6], currentDir, logFile, h);     
// NodeSet02 - extensive RTF testing. 
  +
  +                     const XalanDOMString    
theNamespace("http://xml.apache.org/xalan";);
  +
  +                     // These testcases are used to test the 
Install/Uninstall Function API's of the transformer.
  +                     TestCase2(xalan, files[5], theNamespace, currentDir, 
logFile, h);
  +                     TestCase3(xalan, files[5], theNamespace, currentDir, 
logFile, h);
  +                     TestCase4(xalan, files[5], theNamespace, currentDir, 
logFile, h);
   
  -             // Get the files found in the "cextension" directory
  -             const FileNameVectorType        files = 
h.getTestFileNames(h.args.base, currentDir, true);
  +                     logFile.logTestCaseClose("Done", "Pass");
  +                     h.reportPassFail(logFile, UniqRunid);
  +                             
  +                     logFile.logTestFileClose("C++ Extension Testing: ", 
"Done");
  +                     logFile.close();
   
  -             // TestCase1 is used to verify correct functioning of the 
default extension functions
  -             TestCase1(xalan, files[0], logFile);    // Difference function
  -             TestCase1(xalan, files[1], logFile);    // Distinct 
  -             TestCase1(xalan, files[2], logFile);    // Evaluate 
  -             TestCase1(xalan, files[3], logFile);    // HasSameNodes 
  -             TestCase1(xalan, files[4], logFile);    // Intersection 
  -             TestCase1(xalan, files[5], logFile);    // NodeSet01 - basic 
testing
  -             TestCase1(xalan, files[6], logFile);    // NodeSet02 - 
extensive RTF testing. 
  -
  -             // These testcases are used to excerise the Install/Uninstall 
Function API's of the transformer.
  -             TestCase2(xalan, files[5], logFile);
  -             TestCase3(xalan, files[5], logFile);
  -             TestCase4(xalan, files[5], logFile);
  -
  -             logFile.logTestCaseClose("Done", "Pass");
  -             h.reportPassFail(logFile, UniqRunid);
  -                     
  -             logFile.logTestFileClose("C++ Extension Testing: ", "Done");
  -             logFile.close();
  +                     h.analyzeResults(xalan, resultsFile);
  +             }
   
  -             h.analyzeResults(xalan, resultsFile);
                XalanTransformer::terminate();
   
        }
  
  
  
  1.13      +96 -59    xml-xalan/c/Tests/InputSource/inputsource.cpp
  
  Index: inputsource.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/InputSource/inputsource.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- inputsource.cpp   20 Dec 2001 17:56:54 -0000      1.12
  +++ inputsource.cpp   25 Jan 2002 00:34:51 -0000      1.13
  @@ -71,14 +71,25 @@
   //   Are included by HarnessInit.hpp
   #include <parsers/DOMParser.hpp>
   
  +
   // XALAN HEADERS...
  -//   Are included by FileUtility.hpp
  +#include <XPath/XPathExecutionContextDefault.hpp>
  +#include <XPath/XObjectFactoryDefault.hpp>
  +#include <XPath/XPathFactoryDefault.hpp>
  +
  +#include <XSLT/StylesheetConstructionContextDefault.hpp>
  +#include <XSLT/StylesheetExecutionContextDefault.hpp>
  +#include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
  +#include <XSLT/XSLTEngineImpl.hpp>
  +
  +
  +#include <XalanTransformer/XalanTransformer.hpp>
   #include <XalanTransformer/XercesDOMWrapperParsedSource.hpp>
   
   // HARNESS HEADERS...
  -#include <XMLFileReporter.hpp>
  -#include <FileUtility.hpp>
  -#include <HarnessInit.hpp>
  +#include <Harness/XMLFileReporter.hpp>
  +#include <Harness/FileUtility.hpp>
  +#include <Harness/HarnessInit.hpp>
   
   
   #if !defined(XALAN_NO_NAMESPACES)
  @@ -87,12 +98,12 @@
        using std::endl;
   #endif
   
  -FileUtility          h;
   
  +     
   void
  -setHelp()
  +setHelp(FileUtility& h)
   {
  -     h.args.help << endl
  +     h.args.getHelpStream() << endl
                                << "inputsource dirname [-out]"
                                << endl
                                << endl
  @@ -106,33 +117,45 @@
   //           - XSLTInputSource(const XMLCh* systemId)
   //           - XSLTInputSource(const XMLCh* systemId,
   //                                             const XMLCh* publicId)
  -void testCase1(XalanTransformer &xalan, XMLFileReporter& logFile, 
  -                        const XalanDOMString &xml, const XalanDOMString 
&xsl, 
  -                        const XalanDOMString outBase, XalanDOMString 
&theGoldFile)
  +void
  +testCase1(
  +                     XalanTransformer&               xalan,
  +                     XMLFileReporter&                logFile, 
  +                     const XalanDOMString&   xml,
  +                     const XalanDOMString&   xsl, 
  +                     const XalanDOMString&   outBase,
  +                     const XalanDOMString&   theGoldFile,
  +                     FileUtility&                    h)
   {
  -     const XalanDOMString  publicID("public-smublic");
  +     const XalanDOMString    publicID("public-smublic");
   
        const XalanDOMString    theOutputFile = outBase + 
XalanDOMString("\\InputSource-TestCase1.out");
        const XSLTResultTarget  theResultTarget(theOutputFile);
   
        h.data.testOrFile = "InputSource-TestCase1";
   
  -     // This code excersized the stated methods of XSLTInputSource
  +     // This code exercised the stated methods of XSLTInputSource
        const XSLTInputSource   xmlInputSource(c_wstr(xml));
        const XSLTInputSource   xslInputSource(c_wstr(xsl), c_wstr(publicID));
   
        // Do the transform and report the results.
        xalan.transform(xmlInputSource, xslInputSource, theResultTarget);
  +
        h.checkResults(theOutputFile, theGoldFile, logFile);
  -             
   }
   
  +
   // TestCase2 will use the following methods of XSLTInputSource
   //           - XSLTInputSource(const char* systemId)
   //           - XSLTInputSource(const char* systemId,
   //                                             const char* publicId)
  -void testCase2(XalanTransformer &xalan, XMLFileReporter& logFile, 
  -                        const XalanDOMString outBase, XalanDOMString 
&theGoldFile)
  +void
  +testCase2(
  +                     XalanTransformer&               xalan,
  +                     XMLFileReporter&                logFile, 
  +                     const XalanDOMString&   outBase,
  +                     const XalanDOMString&   theGoldFile,
  +                     FileUtility&                    h)
   
   {
        const XalanDOMString    theOutputFile = outBase + 
XalanDOMString("\\InputSource-TestCase2.out");
  @@ -158,12 +181,13 @@
   //           - XSLTInputSource::getNode()
   //           - NOTE:  We can't use the XalanTransformer Class with this 
test. So we create the processor directly.
   
  -void testCase3(XalanTransformer &xalan, XMLFileReporter &logFile, 
  -                        const XalanDOMString &outBase, const XalanDOMString 
&theGoldFile)
  -
  +void testCase3(
  +                     XMLFileReporter&                logFile, 
  +                     const XalanDOMString&   outBase,
  +                     const XalanDOMString&   theGoldFile,
  +                     FileUtility&                    h)
   {
  -     XalanSourceTreeDocument::NodeType       type;           // actual 
values used for testing.
  -     XalanDOMString                                          name, value;    
  +     XalanDOMString                  name, value;    
   
        const XalanDOMString    theOutputFile = outBase + 
XalanDOMString("\\InputSource-TestCase3.out");
        XSLTResultTarget                theResultTarget3(theOutputFile);
  @@ -209,8 +233,7 @@
        // Create the XSL Input Source
        const XSLTInputSource   
xslStringSource("\\xml-xalan\\test\\tests\\capi\\smoke\\smoke01.xsl");
   
  -     XalanDocument* domXSL = parserLiaison.createXalanSourceTreeDocument();
  -     domXSL = parserLiaison.parseXMLStream(xslStringSource);
  +     XalanDocument* const    domXSL = 
parserLiaison.parseXMLStream(xslStringSource);
   
        // Here is one of the tests. It will be verified when we do the 
transform.
        XSLTInputSource xslXalanNode(domXSL);
  @@ -232,8 +255,7 @@
        // Create the XML Input Source
        const XSLTInputSource   
xmlStringSource("\\xml-xalan\\test\\tests\\capi\\smoke\\smoke01.xml");
   
  -     XalanDocument* domXML = parserLiaison.createXalanSourceTreeDocument();
  -     domXML = parserLiaison.parseXMLStream(xmlStringSource);
  +     XalanDocument* const    domXML = 
parserLiaison.parseXMLStream(xmlStringSource);
   
        // Here is the final test. It too will be verified when we do the 
transform.
        XSLTInputSource xmlXalanNode;
  @@ -256,19 +278,21 @@
   // TestCase4 will use the following API.  Default constructor of 
XSLTInputSource will take a string.
   //           - XSLTInputSource(const char*)
   //           - XSLTInputSource(const char*)
  -void testCase4(XalanTransformer &xalan, XMLFileReporter& logFile,
  -                        const XalanDOMString outBase, XalanDOMString 
&goldFile)
  +void testCase4(
  +                     XalanTransformer&               xalan,
  +                     XMLFileReporter&                logFile, 
  +                     const XalanDOMString&   outBase,
  +                     const XalanDOMString&   theGoldFile,
  +                     FileUtility&                    h)
   {
   
        const XalanDOMString theOutputFile = outBase + 
XalanDOMString("\\InputSource-TestCase4.out");
  -//   const XalanDOMString 
theOutputFile("\\xml-xalan\\test\\tests\\INPUTSOURCE-RESULTS\\smoke\\InputSource-TestCase4.out");
  -     const XalanDOMString theGoldFile(goldFile);
   
        XSLTResultTarget theResultTarget(theOutputFile);
   
        h.data.testOrFile = "InputSource-TestCase4";
   
  -     // This code excersized the stated methods of XSLTInputSource
  +     // This code exercises the stated methods of XSLTInputSource
        // Do the transform and report the results.
        xalan.transform("\\xml-xalan\\test\\tests\\capi\\smoke\\smoke01.xml", 
                                        
"\\xml-xalan\\test\\tests\\capi\\smoke\\smoke01.xsl",
  @@ -279,9 +303,15 @@
   
   // TestCase5 uses XercesDOMWrapperParsedSource class to wrap a xerces 
generated dom. 
   //
  -void testCase5(XalanTransformer &xalan, XMLFileReporter& logFile,
  -                        const XalanDOMString &xml, const XalanDOMString &xsl,
  -                        const XalanDOMString outBase, XalanDOMString 
&theGoldFile)
  +void 
  +testCase5(
  +                     XalanTransformer&               xalan,
  +                     XMLFileReporter&                logFile,
  +                     const XalanDOMString&   xml,
  +                     const XalanDOMString&   xsl,
  +                     const XalanDOMString&   outBase,
  +                     const XalanDOMString&   theGoldFile,
  +                     FileUtility&                    h)
   {
        h.data.testOrFile = "InputSource-TestCase5";
        const XSLTInputSource   xmlInputSource(c_wstr(xml));
  @@ -295,30 +325,28 @@
        XercesParserLiaison theParserLiaison(theDOMSupport);
   
        // This is the wrapper class for Xerces DOM. 
  -     const XercesDOMWrapperParsedSource* xmlDocWrapper = 0;
  -     xmlDocWrapper = new XercesDOMWrapperParsedSource(theDOM, 
  -                                                                             
                         theParserLiaison, 
  -                                                                             
                         theDOMSupport, 
  -                                                                             
                         xml);
  -/*   const XercesDOMWrapperParsedSource xmlDocWrapper(theDOM, 
  +     const XercesDOMWrapperParsedSource      xmlDocWrapper(theDOM, 
                                                                                
                         theParserLiaison, 
                                                                                
                         theDOMSupport, 
                                                                                
                         xml);
   
  -*/
        const XalanDOMString theOutputFile(outBase + 
XalanDOMString("\\InputSource-TestCase5.out"));
  +
        const XSLTInputSource   xslInputSource(c_wstr(xsl));
        const XSLTResultTarget  theResultTarget(theOutputFile);
   
        // Do the transform and report the results.
  -     xalan.transform(*xmlDocWrapper, xslInputSource, theResultTarget);
  +     xalan.transform(xmlDocWrapper, xslInputSource, theResultTarget);
  +
        h.checkResults(theOutputFile, theGoldFile, logFile);
  -     delete xmlDocWrapper;
   }
   
  +
  +
   int
  -main(int               argc,
  -      const char*  argv [])
  +main(
  +                     int                             argc,
  +                     const char*             argv[])
   {
   #if !defined(NDEBUG) && defined(_MSC_VER)
        _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | 
_CRTDBG_LEAK_CHECK_DF);
  @@ -326,18 +354,26 @@
        _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
   #endif
   
  +     HarnessInit             xmlPlatformUtils;
  +
  +     FileUtility             h;
  +
        // Set the program help string,  then get the command line parameters.
        //
  -     setHelp();
  +     setHelp(h);
  +
        if (h.getParams(argc, argv, "INPUTSOURCE-RESULTS") == true)
        {
  +             // Call the static initializers...
  +             XalanTransformer::initialize();
  +
                // Generate and Initialize Unique result logfile, and get drive 
designation
                //
                const XalanDOMString UniqRunid = h.generateUniqRunid();
                const XalanDOMString drive(h.getDrive());
                const XalanDOMString  resultFilePrefix("isource");
  -             const XalanDOMString  resultsFile(drive + h.args.output + 
resultFilePrefix + UniqRunid + XMLSuffix);
  -             
  +             const XalanDOMString  resultsFile(drive + h.args.output + 
resultFilePrefix + UniqRunid + FileUtility::s_xmlSuffix);
  +                     
                XMLFileReporter logFile(resultsFile);
                logFile.logTestFileInit("XSLTInputSource Testing: Give various 
types of allowable Inputs. ");
   
  @@ -345,44 +381,45 @@
                {
                        // Call the static initializers...
                        //
  -                     HarnessInit xmlPlatformUtils;
  -                     XalanTransformer::initialize();
                        XalanTransformer xalan;
  +
                        {
                                XalanDOMString          fileName;
  -                             
  +                                     
                                // Get testfiles from the capi\smoke directory, 
create output directory, .
                                //
                                const XalanDOMString  currentDir("smoke");
                                const XalanDOMString  theOutputDir = 
h.args.output + currentDir;
  +                             
                                h.checkAndCreateDir(theOutputDir);
   
                                // Get the single file found in the "smoke" 
directory, and run tests.
                                //
                                const FileNameVectorType        files = 
h.getTestFileNames(h.args.base, currentDir, true);
                                logFile.logTestCaseInit(currentDir);
  +
                                for(FileNameVectorType::size_type i = 0; i < 
files.size(); ++i)
                                {
                                        fileName = files[i];
                                        h.data.testOrFile = fileName;
   
                                        // Set up the input/output files.
  -                                     const XalanDOMString  theXSLFile= 
h.args.base + currentDir + pathSep + fileName;
  +                                     const XalanDOMString  theXSLFile= 
h.args.base + currentDir + FileUtility::s_pathSep + fileName;
                                        const XalanDOMString  theXMLFile = 
h.generateFileName(theXSLFile,"xml");
                                        h.data.xmlFileURL = theXMLFile;
                                        h.data.xslFileURL = theXSLFile;
   
                                        // Set the gold file.
  -                                     XalanDOMString  theGoldFile = 
h.args.gold + currentDir + pathSep + fileName;
  +                                     XalanDOMString  theGoldFile = 
h.args.gold + currentDir + FileUtility::s_pathSep + fileName;
                                        theGoldFile = 
h.generateFileName(theGoldFile, "out");
  -                                     
  +                                             
                                        // Execute the test cases. 
                                        //
  -                                     testCase1(xalan, logFile, theXMLFile, 
theXSLFile, theOutputDir, theGoldFile);
  -                                     testCase2(xalan, logFile, theOutputDir, 
theGoldFile);
  -                                     testCase3(xalan, logFile, theOutputDir, 
theGoldFile);
  -                                     testCase4(xalan, logFile, theOutputDir, 
theGoldFile);
  -                                     testCase5(xalan, logFile, theXMLFile, 
theXSLFile, theOutputDir, theGoldFile);
  +                                     testCase1(xalan, logFile, theXMLFile, 
theXSLFile, theOutputDir, theGoldFile, h);
  +                                     testCase2(xalan, logFile, theOutputDir, 
theGoldFile, h);
  +                                     testCase3(logFile, theOutputDir, 
theGoldFile, h);
  +                                     testCase4(xalan, logFile, theOutputDir, 
theGoldFile, h);
  +                                     testCase5(xalan, logFile, theXMLFile, 
theXSLFile, theOutputDir, theGoldFile, h);
                                }
   
                                logFile.logTestCaseClose("Done", "Pass");       
  @@ -393,14 +430,14 @@
                        logFile.close();
   
                        h.analyzeResults(xalan, resultsFile);
  -                     XalanTransformer::terminate();
                }
                catch(...)
                {
                        cerr << "Exception caught!!!" << endl << endl;
                }
  +
  +             XalanTransformer::terminate();
        }
   
        return 0;
  -
   }
  
  
  
  1.18      +128 -123  xml-xalan/c/Tests/Params/Params.cpp
  
  Index: Params.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/Params/Params.cpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Params.cpp        17 Dec 2001 14:41:33 -0000      1.17
  +++ Params.cpp        25 Jan 2002 00:34:51 -0000      1.18
  @@ -75,9 +75,9 @@
   
   #include <XalanTransformer/XalanTransformer.hpp>
   
  -#include <XMLFileReporter.hpp>
  -#include <FileUtility.hpp>
  -#include <HarnessInit.hpp>
  +#include <Harness/XMLFileReporter.hpp>
  +#include <Harness/FileUtility.hpp>
  +#include <Harness/HarnessInit.hpp>
   
   
   #if !defined(XALAN_NO_NAMESPACES)
  @@ -86,12 +86,12 @@
        using std::endl;
   #endif
   
  -FileUtility          h;
  +
   
   void
  -setHelp()
  +setHelp(FileUtility& h)
   {
  -     h.args.help << endl
  +     h.args.getHelpStream() << endl
                 << "params dirname [-out]"
                 << endl
                 << endl
  @@ -125,160 +125,165 @@
        _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
   #endif
   
  +     HarnessInit             xmlPlatformUtils;
  +
  +     FileUtility             h;
  +
        char testCase[15];
        XalanDOMString fileName, theGoldFile;
        const XalanDOMString  currentDir("params");
  -     
   
  -     setHelp();
  +     // Set the program help string,  then get the command line parameters.
  +     //
  +     setHelp(h);
   
        // Get the command line parameters.
        //
        if (h.getParams(argc, argv, "PARAMS-RESULTS") == true)
        {
  -
                const XalanDOMString    extDir(h.args.base + currentDir);
   
                // Check that the base directory is correct.
                if ( !h.checkDir(extDir) )
                {
                        cout << "Invalid base directory - " << 
c_str(TranscodeToLocalCodePage(extDir)) << endl;
  -                     cout << h.args.help.str();
  +                     cout << h.args.getHelpMessage();
                        return 0;
                }
   
                // Call the static initializers...
  -             HarnessInit xmlPlatformUtils;
                XalanTransformer::initialize();
  -             XalanTransformer        xalan;
  +             {
  +                     XalanTransformer        xalan;
   
  -             // Generate Unique Run id. (Only used to name the result 
logfile.)
  -             const XalanDOMString UniqRunid = h.generateUniqRunid();
  +                     // Generate Unique Run id. (Only used to name the 
result logfile.)
  +                     const XalanDOMString UniqRunid = h.generateUniqRunid();
   
  -             // Defined basic constants for file manipulation
  -             const XalanDOMString  drive(h.getDrive());
  -             const XalanDOMString  resultFilePrefix("params");
  -             const XalanDOMString  resultsFile(drive + h.args.output + 
resultFilePrefix + UniqRunid + XMLSuffix);
  -             
  -             XMLFileReporter logFile(resultsFile);
  -             logFile.logTestFileInit("Param Testing: Testing ability to pass 
parameters to stylesheets. ");
  +                     // Defined basic constants for file manipulation
  +                     const XalanDOMString  drive(h.getDrive());
  +                     const XalanDOMString  resultFilePrefix("params");
  +                     const XalanDOMString  resultsFile(drive + h.args.output 
+ resultFilePrefix + UniqRunid + FileUtility::s_xmlSuffix);
  +                     
  +                     XMLFileReporter logFile(resultsFile);
  +                     logFile.logTestFileInit("Param Testing: Testing ability 
to pass parameters to stylesheets. ");
   
  -             try
  -             {
  -                     bool embedFlag =  false;
  -                             
  -                     // Get the files found in the "params" directory
  -                     const XalanDOMString  theOutputDir = h.args.output + 
currentDir;
  +                     try
  +                     {
  +                             bool embedFlag =  false;
  +                                     
  +                             // Get the files found in the "params" directory
  +                             const XalanDOMString  theOutputDir = 
h.args.output + currentDir;
   
  -                     // Check that output directory is there.
  -                     h.checkAndCreateDir(theOutputDir);
  +                             // Check that output directory is there.
  +                             h.checkAndCreateDir(theOutputDir);
   
  -                     const FileNameVectorType        files = 
h.getTestFileNames(h.args.base, currentDir, true);
  -                     logFile.logTestCaseInit(currentDir);
  +                             const FileNameVectorType        files = 
h.getTestFileNames(h.args.base, currentDir, true);
  +                             logFile.logTestCaseInit(currentDir);
   
  -                     for(FileNameVectorType::size_type i = 0; i < 
files.size(); ++i)
  -                     {
  -                             fileName = files[i];
  -                             sprintf(testCase, "%s%d","TestCase",i+1);
  -                             h.data.testOrFile = testCase;
  -
  -                             // Set up the input/output files.
  -                             const XalanDOMString  theXSLFile= h.args.base + 
currentDir + pathSep + fileName;
  -                             XalanDOMString            theXMLFile;
  -                             
  -                             // Neither testcase 7 nor 8 utilize xml source 
files. Both use fragment identifiers,
  -                             // so the generation of xml file is unnecessary.
  -                             // Testcase 7 tests: <?xml-stylesheet 
type="text/xsl" href="#style1-23.34.123456789_345"?>
  -                             // Testcase 8 tests: <?xml-stylesheet 
type="text/xsl" href="foo.xsl"?>
  -                             if ( i+1 <= 6 )
  +                             for(FileNameVectorType::size_type i = 0; i < 
files.size(); ++i)
                                {
  -                                     assign(theXMLFile, 
h.generateFileName(theXSLFile,"xml"));
  -                             }
  -
  -                             h.data.xmlFileURL = theXMLFile;
  -                             h.data.xslFileURL = theXSLFile;
  +                                     fileName = files[i];
  +                                     sprintf(testCase, 
"%s%d","TestCase",i+1);
  +                                     h.data.testOrFile = testCase;
  +
  +                                     // Set up the input/output files.
  +                                     const XalanDOMString  theXSLFile= 
h.args.base + currentDir + FileUtility::s_pathSep + fileName;
  +                                     XalanDOMString            theXMLFile;
  +                                     
  +                                     // Neither testcase 7 nor 8 utilize xml 
source files. Both use fragment identifiers,
  +                                     // so the generation of xml file is 
unnecessary.
  +                                     // Testcase 7 tests: <?xml-stylesheet 
type="text/xsl" href="#style1-23.34.123456789_345"?>
  +                                     // Testcase 8 tests: <?xml-stylesheet 
type="text/xsl" href="foo.xsl"?>
  +                                     if ( i+1 <= 6 )
  +                                     {
  +                                             assign(theXMLFile, 
h.generateFileName(theXSLFile,"xml"));
  +                                     }
  +
  +                                     h.data.xmlFileURL = theXMLFile;
  +                                     h.data.xslFileURL = theXSLFile;
  +
  +                                     const XalanDOMString  theOutput =  
h.args.output + currentDir + FileUtility::s_pathSep + fileName; 
  +                                     const XalanDOMString  theOutputFile = 
h.generateFileName(theOutput, "out");
  +                                     theGoldFile = h.args.gold + currentDir 
+ FileUtility::s_pathSep + fileName;
  +                                     theGoldFile = 
h.generateFileName(theGoldFile, "out");
  +
  +                                     XSLTResultTarget                
theResultTarget(theOutputFile);
  +                                     const XSLTInputSource   
xslInputSource(c_wstr(theXSLFile));
  +                                     const XSLTInputSource   
xmlInputSource(c_wstr(theXMLFile));
  +                                                     
  +                                     // Set the desired parameters
  +                                     switch (getTestNumber(fileName))
  +                                     {       
  +                                             case 2:
  +                                                     
xalan.setStylesheetParam("in1", "'A '");
  +
  +                                                     
xalan.setStylesheetParam("in2", "'B '");
  +
  +                                                     
xalan.setStylesheetParam(
  +                                                             
XalanDOMString("in3"),
  +                                                             
XalanDOMString("'C '"));
  +                                                     
xalan.setStylesheetParam(
  +                                                             
XalanDOMString("in4"),
  +                                                             
XalanDOMString("'D '"));
  +                                                     
xalan.setStylesheetParam(
  +                                                             
XalanDOMString("in5"),
  +                                                             
XalanDOMString("'E '"));
  +                                                     break;
   
  -                             const XalanDOMString  theOutput =  
h.args.output + currentDir + pathSep + fileName; 
  -                             const XalanDOMString  theOutputFile = 
h.generateFileName(theOutput, "out");
  -                             theGoldFile = h.args.gold + currentDir + 
pathSep + fileName;
  -                             theGoldFile = h.generateFileName(theGoldFile, 
"out");
  -
  -                             XSLTResultTarget                
theResultTarget(theOutputFile);
  -                             const XSLTInputSource   
xslInputSource(c_wstr(theXSLFile));
  -                             const XSLTInputSource   
xmlInputSource(c_wstr(theXMLFile));
  -                                             
  -                             // Set the desired parameters
  -                             switch (getTestNumber(fileName))
  -                             {       
  -                                     case 2:
  -                                             xalan.setStylesheetParam("in1", 
"'A '");
  -
  -                                             xalan.setStylesheetParam("in2", 
"'B '");
  -
  -                                             xalan.setStylesheetParam(
  -                                                     XalanDOMString("in3"),
  -                                                     XalanDOMString("'C '"));
  -                                             xalan.setStylesheetParam(
  -                                                     XalanDOMString("in4"),
  -                                                     XalanDOMString("'D '"));
  -                                             xalan.setStylesheetParam(
  -                                                     XalanDOMString("in5"),
  -                                                     XalanDOMString("'E '"));
  -                                             break;
  -
  -                                     case 3:
  -                                             xalan.setStylesheetParam(
  -                                                     
XalanDOMString("'xyz:in1'"),
  -                                                     
XalanDOMString("'DATA'"));
  -                                             break;
  -
  -                                     case 7:
  -                                             {
  -                                                     const XSLTInputSource   
embed07InputSource(c_wstr(theXSLFile));
  -                                                     
xalan.transform(embed07InputSource, theResultTarget);
  -                                                     
append(h.data.testOrFile, " (Embed01)" );
  -                                                     embedFlag = true;
  +                                             case 3:
  +                                                     
xalan.setStylesheetParam(
  +                                                             
XalanDOMString("'xyz:in1'"),
  +                                                             
XalanDOMString("'DATA'"));
                                                        break;
  -                                             }
   
  -                                     case 8:
  -                                             {
  -                                                     const XSLTInputSource   
embed08InputSource(c_wstr(theXSLFile));
  -                                                     
xalan.transform(embed08InputSource, theResultTarget);
  -                                                     
append(h.data.testOrFile, " (Embed02)" );
  -                                                     embedFlag = true;
  +                                             case 7:
  +                                                     {
  +                                                             const 
XSLTInputSource   embed07InputSource(c_wstr(theXSLFile));
  +                                                             
xalan.transform(embed07InputSource, theResultTarget);
  +                                                             
append(h.data.testOrFile, " (Embed01)" );
  +                                                             embedFlag = 
true;
  +                                                             break;
  +                                                     }
  +
  +                                             case 8:
  +                                                     {
  +                                                             const 
XSLTInputSource   embed08InputSource(c_wstr(theXSLFile));
  +                                                             
xalan.transform(embed08InputSource, theResultTarget);
  +                                                             
append(h.data.testOrFile, " (Embed02)" );
  +                                                             embedFlag = 
true;
  +                                                             break;
  +                                                     }
  +                                             default:
  +                                                     
xalan.setStylesheetParam(
  +                                                             
XalanDOMString("input"),
  +                                                             
XalanDOMString("'testing 1 2 3'"));
                                                        break;
  -                                             }
  -                                     default:
  -                                             xalan.setStylesheetParam(
  -                                                     XalanDOMString("input"),
  -                                                     
XalanDOMString("'testing 1 2 3'"));
  -                                             break;
  -                             }
  +                                     }
   
  -                             // Do a total end to end transform with no pre 
parsing of either xsl or xml files.
  -                             if (!embedFlag)
  -                             {
  -                                     xalan.transform(xmlInputSource, 
xslInputSource, theResultTarget);
  -                             }
  +                                     // Do a total end to end transform with 
no pre parsing of either xsl or xml files.
  +                                     if (!embedFlag)
  +                                     {
  +                                             xalan.transform(xmlInputSource, 
xslInputSource, theResultTarget);
  +                                     }
   
  -                             // Check and report the results.
  -                             h.checkResults(theOutputFile, theGoldFile, 
logFile);
  +                                     // Check and report the results.
  +                                     h.checkResults(theOutputFile, 
theGoldFile, logFile);
  +                             }
  +                                                             
  +                             logFile.logTestCaseClose("Done", "Pass");
                        }
  -                                                     
  -                     logFile.logTestCaseClose("Done", "Pass");
  -             }
   
  -             catch(...)
  -             {
  -                     cerr << "Exception caught!!!" << endl << endl;
  -             }
  +                     catch(...)
  +                     {
  +                             cerr << "Exception caught!!!" << endl << endl;
  +                     }
   
  -             h.reportPassFail(logFile, UniqRunid);
  -             logFile.logTestFileClose("Param Testing: ", "Done");
  -             logFile.close();
  +                     h.reportPassFail(logFile, UniqRunid);
  +                     logFile.logTestFileClose("Param Testing: ", "Done");
  +                     logFile.close();
   
  -             h.analyzeResults(xalan, resultsFile);
  +                     h.analyzeResults(xalan, resultsFile);
  +             }
   
                XalanTransformer::terminate();
        }
  
  
  
  1.4       +3 -3      xml-xalan/c/Tests/PerfT/PerfT.dsp
  
  Index: PerfT.dsp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/PerfT/PerfT.dsp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PerfT.dsp 7 Jun 2001 16:28:59 -0000       1.3
  +++ PerfT.dsp 25 Jan 2002 00:34:51 -0000      1.4
  @@ -43,7 +43,7 @@
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D 
"_MBCS" /YX /FD /c
  -# ADD CPP /nologo /MD /W4 /GR /GX /O2 /Ob2 /I "..\..\..\..\xml-xerces\c\src" 
/I "..\..\src\\" /I "..\harness\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D 
"_MBCS" /FD /c
  +# ADD CPP /nologo /MD /W4 /GR /GX /O2 /Ob2 /I "..\..\..\..\xml-xerces\c\src" 
/I "..\..\src\\" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
   # SUBTRACT CPP /YX
   # ADD BASE RSC /l 0x409 /d "NDEBUG"
   # ADD RSC /l 0x409 /d "NDEBUG"
  @@ -68,7 +68,7 @@
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D 
"_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
  -# ADD CPP /nologo /MDd /W4 /GR /GX /Od /I "..\..\..\..\xml-xerces\c\src" /I 
"..\..\src\\" /I "..\harness\\" /D "_WINDOWS" /D "_CONSOLE" /D "WIN32" /D 
"_DEBUG" /D "_MBCS" /YX /FD /GZ /c
  +# ADD CPP /nologo /MDd /W4 /GR /GX /Od /I "..\..\..\..\xml-xerces\c\src" /I 
"..\..\src\\" /I ".." /D "_WINDOWS" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D 
"_MBCS" /YX /FD /GZ /c
   # ADD BASE RSC /l 0x409 /d "_DEBUG"
   # ADD RSC /l 0x409 /d "_DEBUG"
   BSC32=bscmake.exe
  @@ -93,7 +93,7 @@
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\xml-xerces\c\src" /I 
"..\..\src\\" /I "..\harness\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" 
/YX /FD /c
  -# ADD CPP /nologo /MD /W4 /GR /GX /Zi /O2 /Ob2 /I 
"..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /I "..\harness\\" /D "WIN32" /D 
"NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
  +# ADD CPP /nologo /MD /W4 /GR /GX /Zi /O2 /Ob2 /I 
"..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /I ".." /D "WIN32" /D "NDEBUG" 
/D "_CONSOLE" /D "_MBCS" /FD /c
   # SUBTRACT CPP /YX
   # ADD BASE RSC /l 0x409 /d "NDEBUG"
   # ADD RSC /l 0x409 /d "NDEBUG"
  
  
  
  1.13      +191 -188  xml-xalan/c/Tests/PerfT/perft.cpp
  
  Index: perft.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/PerfT/perft.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- perft.cpp 22 Jan 2002 18:50:55 -0000      1.12
  +++ perft.cpp 25 Jan 2002 00:34:51 -0000      1.13
  @@ -55,6 +55,7 @@
    * <http://www.apache.org/>.
    */
   
  +#include <ctime>
   #include <iostream>
   #include <strstream>
   #include <stdio.h>
  @@ -63,11 +64,7 @@
   #if !defined(XALAN_NO_NAMESPACES)
        using std::cerr;
        using std::cout;
  -     using std::cin;
        using std::endl;
  -     using std::ifstream;
  -     using std::ios_base;
  -     using std::ostrstream;
   #endif
   
   // XALAN HEADERS...
  @@ -76,9 +73,9 @@
   #include <XalanTransformer/XalanTransformer.hpp>
   
   // HARNESS HEADERS...
  -#include <XMLFileReporter.hpp>
  -#include <FileUtility.hpp>
  -#include <HarnessInit.hpp>
  +#include <Harness/XMLFileReporter.hpp>
  +#include <Harness/FileUtility.hpp>
  +#include <Harness/HarnessInit.hpp>
   
   #if defined(XALAN_NO_NAMESPACES)
        typedef map<XalanDOMString, XalanDOMString, less<XalanDOMString> >      
Hashtable;
  @@ -91,7 +88,7 @@
   #include <crtdbg.h>
   #endif
   
  -FileUtility h;
  +
   
   const char* const    excludeStylesheets[] =
   {
  @@ -134,7 +131,7 @@
   
   
   void
  -setHelp()
  +setHelp(FileUtility& h)
   {
        h.args.getHelpStream() << endl
                 << "Perft dir [-out -sub -i -iter]"
  @@ -162,9 +159,14 @@
        _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
   #endif
   
  +     HarnessInit             xmlPlatformUtils;
  +
  +     FileUtility             h;
  +
        // Set the program help string,  then get the command line parameters.
        //
  -     setHelp();
  +     setHelp(h);
  +
        bool setGold = false;
        {
                const XalanDOMString    
processorType(XALAN_STATIC_UCODE_STRING("XalanC"));
  @@ -176,227 +178,228 @@
                        //
                        // Call the static initializers for xerces and xalan, 
and create a transformer
                        //
  -                     HarnessInit xmlPlatformUtils;
                        XalanTransformer::initialize();
  -                     XalanTransformer xalan;
  -
  -                     // Generate Unique Run id and processor info
  -                     const XalanDOMString UniqRunid = h.generateUniqRunid();
  -
  -
  -                     // Defined basic constants for file manipulation and 
open results file
  -                     const XalanDOMString  resultFilePrefix("cpp");
  -                     const XalanDOMString  resultsFile(h.args.output + 
resultFilePrefix + UniqRunid + XMLSuffix);
  +                     {
  +                             XalanTransformer xalan;
   
  +                             // Generate Unique Run id and processor info
  +                             const XalanDOMString UniqRunid = 
h.generateUniqRunid();
   
  -                     XMLFileReporter logFile(resultsFile);
  -                     logFile.logTestFileInit("Performance Testing - Reports 
various performance metrics using the Transformer");
   
  +                             // Defined basic constants for file 
manipulation and open results file
  +                             const XalanDOMString  resultFilePrefix("cpp");
  +                             const XalanDOMString  resultsFile(h.args.output 
+ resultFilePrefix + UniqRunid + FileUtility::s_xmlSuffix);
   
  -                     // Get the list of sub-directories below "base" and 
iterate through them
  -                     bool foundDir = false;          // Flag indicates 
directory found. Used in conjunction with -sub cmd-line arg.
  -                     const FileNameVectorType dirs = 
h.getDirectoryNames(h.args.base);
   
  -                     for(FileNameVectorType::size_type       j = 0; j < 
dirs.size(); j++)
  -                     {
  -                             // Run specific category of files from given 
directory
  -                             if (length(h.args.sub) > 0 && !equals(dirs[j], 
h.args.sub))
  -                             {
  -                                     continue;
  -                             }
  +                             XMLFileReporter logFile(resultsFile);
  +                             logFile.logTestFileInit("Performance Testing - 
Reports various performance metrics using the Transformer");
   
  -                             cout << "Processing files in Directory: " << 
dirs[j] << endl;
   
  -                             // Check that output directory is there.
  -                             const XalanDOMString  theOutputDir = 
h.args.output + dirs[j];
  -                             h.checkAndCreateDir(theOutputDir);
  +                             // Get the list of sub-directories below "base" 
and iterate through them
  +                             bool foundDir = false;          // Flag 
indicates directory found. Used in conjunction with -sub cmd-line arg.
  +                             const FileNameVectorType dirs = 
h.getDirectoryNames(h.args.base);
   
  -                             
  -                             // Indicate that directory was processed and 
get test files from the directory
  -                             foundDir = true;
  -                             const FileNameVectorType files = 
h.getTestFileNames(h.args.base, dirs[j], false);
  -                             
logFile.logTestCaseInit(XalanDOMString("Performance Directory: ") + dirs[j] ); 
  -
  -                             for(FileNameVectorType::size_type i = 0; i < 
files.size(); i++)
  +                             for(FileNameVectorType::size_type       j = 0; 
j < dirs.size(); j++)
                                {
  -                                     // Define  variables used for timing 
and reporting ...
  -                                     clock_t startTime, endTime, accmTime, 
avgEtoe;
  -                                     double timeinMilliseconds = 0, 
theAverage =0;
  -                                     int transformResult = 0;
  -                                     Hashtable attrs;
  -
  -                                     
attrs.insert(Hashtable::value_type(XalanDOMString("idref"), files[i]));
  -                                     
attrs.insert(Hashtable::value_type(XalanDOMString("UniqRunid"),UniqRunid));
  -                                     
attrs.insert(Hashtable::value_type(XalanDOMString("processor"),processorType));
  -                                     
logFile.addMetricToAttrs("Iterations",iterCount, attrs);
  -                                                     
  -                                     if (h.args.skip)
  +                                     // Run specific category of files from 
given directory
  +                                     if (length(h.args.sub) > 0 && 
!equals(dirs[j], h.args.sub))
                                        {
  -                                             if (checkForExclusion(files[i]))
  -                                                     continue;
  +                                             continue;
                                        }
   
  -                                     const XalanDOMString  theXSLFile= 
h.args.base + dirs[j] + pathSep + files[i];
  -                                     const XalanDOMString  theXMLFile = 
h.generateFileName(theXSLFile,"xml");
  -
  -                                     const XalanDOMString  outbase =  
h.args.output + dirs[j] + pathSep + files[i]; 
  -                                     const XalanDOMString  theOutputFile = 
h.generateFileName(outbase, "out");
  +                                     cout << "Processing files in Directory: 
" << dirs[j] << endl;
   
  -                                     const XSLTInputSource   
xslInputSource(c_wstr(theXSLFile));
  -                                     const XSLTInputSource   
xmlInputSource(c_wstr(theXMLFile));
  -                                     const XSLTResultTarget  
theResultTarget(theOutputFile);
  -
  -                                     
attrs.insert(Hashtable::value_type(XalanDOMString("href"), theXSLFile));
  -                                     cout << endl << files[i] << endl;
  -
  -                                     // Time the parsing(compile) of the XSL 
stylesheet and report the results..
  -                                     //
  -                                     startTime = clock();
  -                                     const XalanCompiledStylesheet*  
compiledSS = 0;
  -                                     xalan.compileStylesheet(xslInputSource, 
compiledSS);
  -                                     endTime = clock();
  +                                     // Check that output directory is there.
  +                                     const XalanDOMString  theOutputDir = 
h.args.output + dirs[j];
  +                                     h.checkAndCreateDir(theOutputDir);
  +
  +                                     
  +                                     // Indicate that directory was 
processed and get test files from the directory
  +                                     foundDir = true;
  +                                     const FileNameVectorType files = 
h.getTestFileNames(h.args.base, dirs[j], false);
  +                                     
logFile.logTestCaseInit(XalanDOMString("Performance Directory: ") + dirs[j] ); 
   
  -                                     if (compiledSS == 0)
  +                                     for(FileNameVectorType::size_type i = 
0; i < files.size(); i++)
                                        {
  -                                             continue;
  -                                     }
  +                                             // Define  variables used for 
timing and reporting ...
  +                                             clock_t startTime, endTime, 
accmTime, avgEtoe;
  +                                             double timeinMilliseconds = 0, 
theAverage =0;
  +                                             int transformResult = 0;
  +                                             Hashtable attrs;
  +
  +                                             
attrs.insert(Hashtable::value_type(XalanDOMString("idref"), files[i]));
  +                                             
attrs.insert(Hashtable::value_type(XalanDOMString("UniqRunid"),UniqRunid));
  +                                             
attrs.insert(Hashtable::value_type(XalanDOMString("processor"),processorType));
  +                                             
logFile.addMetricToAttrs("Iterations",iterCount, attrs);
  +                                                             
  +                                             if (h.args.skip)
  +                                             {
  +                                                     if 
(checkForExclusion(files[i]))
  +                                                             continue;
  +                                             }
  +
  +                                             const XalanDOMString  
theXSLFile= h.args.base + dirs[j] + FileUtility::s_pathSep + files[i];
  +                                             const XalanDOMString  
theXMLFile = h.generateFileName(theXSLFile,"xml");
  +
  +                                             const XalanDOMString  outbase = 
 h.args.output + dirs[j] + FileUtility::s_pathSep + files[i]; 
  +                                             const XalanDOMString  
theOutputFile = h.generateFileName(outbase, "out");
  +
  +                                             const XSLTInputSource   
xslInputSource(c_wstr(theXSLFile));
  +                                             const XSLTInputSource   
xmlInputSource(c_wstr(theXMLFile));
  +                                             const XSLTResultTarget  
theResultTarget(theOutputFile);
   
  -                                     timeinMilliseconds = 
calculateElapsedTime(startTime, endTime);
  -                                     cout << "   XSL: " << 
timeinMilliseconds << " milliseconds, Parse" << endl;
  -                                     
logFile.addMetricToAttrs("parsexsl",timeinMilliseconds, attrs); 
  -
  -                                     // Time the parsing of the input XML 
and report the results..
  -                                     //
  -                                     startTime = clock();
  -                                     const XalanParsedSource*        
parsedSource = 0;
  -                                     xalan.parseSource(xmlInputSource, 
parsedSource);
  -                                     endTime = clock();
  +                                             
attrs.insert(Hashtable::value_type(XalanDOMString("href"), theXSLFile));
  +                                             cout << endl << files[i] << 
endl;
   
  -                                     if (parsedSource == 0)
  -                                     {
  -                                             continue;
  -                                     }
  +                                             // Time the parsing(compile) of 
the XSL stylesheet and report the results..
  +                                             //
  +                                             startTime = clock();
  +                                             const XalanCompiledStylesheet*  
compiledSS = 0;
  +                                             
xalan.compileStylesheet(xslInputSource, compiledSS);
  +                                             endTime = clock();
   
  -                                     timeinMilliseconds = 
calculateElapsedTime(startTime, endTime);
  -                                     cout << "   XML: " << 
timeinMilliseconds << " milliseconds, Parse" <<endl;
  -                                     
logFile.addMetricToAttrs("parsexml",timeinMilliseconds, attrs);
  -
  -                                     // Perform One transform using parsed 
stylesheet and unparsed xml source, report results...
  -                                     // 
  -                                     startTime = clock();
  -                                             transformResult = 
xalan.transform(xmlInputSource, compiledSS, theResultTarget);
  -                                     endTime = clock();
  -                                     if(!transformResult)
  -                                     {
  -                                             timeinMilliseconds = 
calculateElapsedTime(startTime, endTime);
  -                                             cout << endl << "   One: " << 
timeinMilliseconds << " w/Parsed XSL." << endl;
  -                                             
logFile.addMetricToAttrs("single", timeinMilliseconds, attrs);  
  -                                     }
  -                                     else
  -                                     {
  -                                             cout << xalan.getLastError();
  -                                             return 0;
  -                                     }
  +                                             if (compiledSS == 0)
  +                                             {
  +                                                     continue;
  +                                             }
   
  -                                     // Do One eTOe transform with no pre 
parsing of either xsl or xml files.
  -                                     // And output metrics to console and 
result log
  -                                     //
  -                                     startTime = clock();
  -                                             transformResult = 
xalan.transform(xmlInputSource, xslInputSource, theResultTarget);
  -                                     endTime = clock();
  -                                     if(!transformResult)
  -                                     {
                                                timeinMilliseconds = 
calculateElapsedTime(startTime, endTime);
  -                                             cout << "   One: " << 
timeinMilliseconds << " eTOe." << endl;
  -                                             
logFile.addMetricToAttrs("etoe", timeinMilliseconds, attrs);    
  -                                     }
  -                                     else
  -                                     {
  -                                             cout << xalan.getLastError();
  -                                             return 0;
  -                                     }
  -
  +                                             cout << "   XSL: " << 
timeinMilliseconds << " milliseconds, Parse" << endl;
  +                                             
logFile.addMetricToAttrs("parsexsl",timeinMilliseconds, attrs); 
   
  -                                     // Perform multiple transforms and 
calculate the average time ..
  -                                     // These are done 3 different ways.
  -                                     //
  -                                     // FIRST: Parsed XSL Stylesheet and 
Parsed XML Source.
  -                                     //
  -                                     iterCount = h.args.iters;
  -                                     accmTime = 0;
  -                                     for(int j = 0; j < iterCount; ++j)
  -                                     {       
  +                                             // Time the parsing of the 
input XML and report the results..
  +                                             //
                                                startTime = clock();
  -                                                     transformResult = 
xalan.transform(*parsedSource, compiledSS, theResultTarget);
  +                                             const XalanParsedSource*        
parsedSource = 0;
  +                                             
xalan.parseSource(xmlInputSource, parsedSource);
                                                endTime = clock();
  -                             
  -                                             accmTime += endTime - startTime;
  -                                     }
   
  -                                     theAverage = calculateAvgTime(accmTime, 
iterCount); 
  -                                     cout << endl << "   Avg: " << 
theAverage << " for " << iterCount << " iter's w/Parsed files" << endl;
  -                                     
logFile.addMetricToAttrs("avgparsedxml",theAverage, attrs);
  -                     
  -
  -                                     // SECOND: Parsed Stylesheet and 
UnParsed XML Source.
  -                                     // This is currently how the XalanJ 2.0 
is performing transforms
  -                                     //
  -                                     accmTime = 0;
  -                                     for(int k = 0; k < iterCount; ++k)
  -                                     {
  +                                             if (parsedSource == 0)
  +                                             {
  +                                                     continue;
  +                                             }
  +
  +                                             timeinMilliseconds = 
calculateElapsedTime(startTime, endTime);
  +                                             cout << "   XML: " << 
timeinMilliseconds << " milliseconds, Parse" <<endl;
  +                                             
logFile.addMetricToAttrs("parsexml",timeinMilliseconds, attrs);
  +
  +                                             // Perform One transform using 
parsed stylesheet and unparsed xml source, report results...
  +                                             // 
                                                startTime = clock();
                                                        transformResult = 
xalan.transform(xmlInputSource, compiledSS, theResultTarget);
                                                endTime = clock();
  -                             
  -                                             accmTime += endTime - 
startTime;                                                
  -                                     }
  -                                     theAverage = calculateAvgTime(accmTime, 
iterCount);
  -                                     cout << "   Avg: " << theAverage << " 
for " << iterCount << " iter's w/UnParsed XML" << endl;
  -                                     
logFile.addMetricToAttrs("avgunparsedxml",theAverage, attrs);
  -
  -
  -                                     // THIRD: Neither Stylesheet nor XML 
Source are parsed.
  -                                     // Perform multiple etoe transforms and 
calculate the average ...
  -                                     //
  -                                     avgEtoe = 0;
  -                                     for(int jj = 0; jj < iterCount; ++jj)
  -                                     {       
  +                                             if(!transformResult)
  +                                             {
  +                                                     timeinMilliseconds = 
calculateElapsedTime(startTime, endTime);
  +                                                     cout << endl << "   
One: " << timeinMilliseconds << " w/Parsed XSL." << endl;
  +                                                     
logFile.addMetricToAttrs("single", timeinMilliseconds, attrs);  
  +                                             }
  +                                             else
  +                                             {
  +                                                     cout << 
xalan.getLastError();
  +                                                     return 0;
  +                                             }
  +
  +                                             // Do One eTOe transform with 
no pre parsing of either xsl or xml files.
  +                                             // And output metrics to 
console and result log
  +                                             //
                                                startTime = clock();
                                                        transformResult = 
xalan.transform(xmlInputSource, xslInputSource, theResultTarget);
                                                endTime = clock();
  +                                             if(!transformResult)
  +                                             {
  +                                                     timeinMilliseconds = 
calculateElapsedTime(startTime, endTime);
  +                                                     cout << "   One: " << 
timeinMilliseconds << " eTOe." << endl;
  +                                                     
logFile.addMetricToAttrs("etoe", timeinMilliseconds, attrs);    
  +                                             }
  +                                             else
  +                                             {
  +                                                     cout << 
xalan.getLastError();
  +                                                     return 0;
  +                                             }
  +
  +
  +                                             // Perform multiple transforms 
and calculate the average time ..
  +                                             // These are done 3 different 
ways.
  +                                             //
  +                                             // FIRST: Parsed XSL Stylesheet 
and Parsed XML Source.
  +                                             //
  +                                             iterCount = h.args.iters;
  +                                             accmTime = 0;
  +                                             for(int j = 0; j < iterCount; 
++j)
  +                                             {       
  +                                                     startTime = clock();
  +                                                             transformResult 
= xalan.transform(*parsedSource, compiledSS, theResultTarget);
  +                                                     endTime = clock();
  +                                     
  +                                                     accmTime += endTime - 
startTime;
  +                                             }
  +
  +                                             theAverage = 
calculateAvgTime(accmTime, iterCount); 
  +                                             cout << endl << "   Avg: " << 
theAverage << " for " << iterCount << " iter's w/Parsed files" << endl;
  +                                             
logFile.addMetricToAttrs("avgparsedxml",theAverage, attrs);
                                
  -                                             avgEtoe += endTime - startTime; 
                                        
  -                                     }
  -                                     theAverage = 
calculateAvgTime(avgEtoe,iterCount);
   
  -                                     // Output average transform time to 
console and result log
  -                                     cout << "   Avg: " << theAverage << " 
for " << iterCount << " iter's of eToe" << endl;
  -                                     
logFile.addMetricToAttrs("avgetoe",theAverage, attrs);
  +                                             // SECOND: Parsed Stylesheet 
and UnParsed XML Source.
  +                                             // This is currently how the 
XalanJ 2.0 is performing transforms
  +                                             //
  +                                             accmTime = 0;
  +                                             for(int k = 0; k < iterCount; 
++k)
  +                                             {
  +                                                     startTime = clock();
  +                                                             transformResult 
= xalan.transform(xmlInputSource, compiledSS, theResultTarget);
  +                                                     endTime = clock();
  +                                     
  +                                                     accmTime += endTime - 
startTime;                                                
  +                                             }
  +                                             theAverage = 
calculateAvgTime(accmTime, iterCount);
  +                                             cout << "   Avg: " << 
theAverage << " for " << iterCount << " iter's w/UnParsed XML" << endl;
  +                                             
logFile.addMetricToAttrs("avgunparsedxml",theAverage, attrs);
  +
  +
  +                                             // THIRD: Neither Stylesheet 
nor XML Source are parsed.
  +                                             // Perform multiple etoe 
transforms and calculate the average ...
  +                                             //
  +                                             avgEtoe = 0;
  +                                             for(int jj = 0; jj < iterCount; 
++jj)
  +                                             {       
  +                                                     startTime = clock();
  +                                                             transformResult 
= xalan.transform(xmlInputSource, xslInputSource, theResultTarget);
  +                                                     endTime = clock();
  +                                     
  +                                                     avgEtoe += endTime - 
startTime;                                         
  +                                             }
  +                                             theAverage = 
calculateAvgTime(avgEtoe,iterCount);
  +
  +                                             // Output average transform 
time to console and result log
  +                                             cout << "   Avg: " << 
theAverage << " for " << iterCount << " iter's of eToe" << endl;
  +                                             
logFile.addMetricToAttrs("avgetoe",theAverage, attrs);
  +
  +                                             logFile.logElementWAttrs(10, 
"perf", attrs, "xxx");
   
  -                                     logFile.logElementWAttrs(10, "perf", 
attrs, "xxx");
  +                                             
xalan.destroyParsedSource(parsedSource);
  +                                             
xalan.destroyStylesheet(compiledSS);
   
  -                                     xalan.destroyParsedSource(parsedSource);
  -                                     xalan.destroyStylesheet(compiledSS);
  +                                     }
   
  +                             
logFile.logTestCaseClose(XalanDOMString("Performance Directory: ") + dirs[j], 
XalanDOMString("Done") );
                                }
   
  -                     logFile.logTestCaseClose(XalanDOMString("Performance 
Directory: ") + dirs[j], XalanDOMString("Done") );
  +                     // Check to see if -sub cmd-line directory was 
processed correctly.
  +                     if (!foundDir)
  +                     {
  +                             cout << "Specified test directory: \"" << 
c_str(TranscodeToLocalCodePage(h.args.sub)) << "\" not found" << endl;
                        }
   
  -             // Check to see if -sub cmd-line directory was processed 
correctly.
  -             if (!foundDir)
  -             {
  -                     cout << "Specified test directory: \"" << 
c_str(TranscodeToLocalCodePage(h.args.sub)) << "\" not found" << endl;
  -             }
  -
  -             h.reportPassFail(logFile, UniqRunid);
  -             logFile.logTestFileClose("Performance", "Done");
  -             logFile.close();
  +                     h.reportPassFail(logFile, UniqRunid);
  +                     logFile.logTestFileClose("Performance", "Done");
  +                     logFile.close();
   
  +                     }
                }
  +     
  +             XalanTransformer::terminate();
        }
  -
  -     XalanTransformer::terminate();
   
        return 0;
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to