dmitryh 2004/11/08 10:05:41
Modified: c/src/xalanc/Harness XalanFileUtility.cpp
XalanFileUtility.hpp XalanXMLFileReporter.cpp
XalanXMLFileReporter.hpp
Log:
Initial implementation on the pluggable memory management
Revision Changes Path
1.2 +257 -159 xml-xalan/c/src/xalanc/Harness/XalanFileUtility.cpp
Index: XalanFileUtility.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/xalanc/Harness/XalanFileUtility.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XalanFileUtility.cpp 3 Aug 2004 15:59:09 -0000 1.1
+++ XalanFileUtility.cpp 8 Nov 2004 18:05:41 -0000 1.2
@@ -21,7 +21,6 @@
#include <cstdlib>
#include <cstdio>
#include <ctime>
-#include <vector>
#include <climits>
#include <cstring>
@@ -122,20 +121,20 @@
XALAN_USING_STD(endl)
-const XalanDOMString XalanFileUtility::s_emptyString;
+const XalanDOMString
XalanFileUtility::s_emptyString(XalanMemMgrs::getDummyMemMgr());
-XalanFileUtility::reportStruct::reportStruct() :
- theDrive(),
- testOrFile(),
- xmlFileURL(),
- xslFileURL(),
- xmlFormat(),
+XalanFileUtility::reportStruct::reportStruct(MemoryManagerType& theManager) :
+ theDrive(theManager),
+ testOrFile(theManager),
+ xmlFileURL(theManager),
+ xslFileURL(theManager),
+ xmlFormat(theManager),
msg(0),
- currentNode(),
- actual(),
- expected(),
+ currentNode(theManager),
+ actual(theManager),
+ expected(theManager),
pass(0),
fail(0),
nogold(0)
@@ -156,12 +155,12 @@
-XalanFileUtility::cmdParams::cmdParams() :
+XalanFileUtility::cmdParams::cmdParams(MemoryManagerType& theManager) :
help(),
- base(),
- output(),
- gold(),
- sub(),
+ base(theManager),
+ output(theManager),
+ gold(theManager),
+ sub(theManager),
source(0),
skip(false),
iters(0)
@@ -188,9 +187,9 @@
-XalanFileUtility::XalanFileUtility() :
- data(),
- args()
+XalanFileUtility::XalanFileUtility(MemoryManagerType& theManager) :
+ data(theManager),
+ args(theManager)
{
cout << endl
<< "Using Xalan version "
@@ -211,14 +210,16 @@
#if !defined(WIN32)
-XalanDOMString
-XalanFileUtility::getDrive()
+XalanDOMString&
+XalanFileUtility::getDrive(XalanDOMString& theResult)
{
- return XalanDOMString();
+ theResult.erase();
+
+ return theResult;
}
#else
-XalanDOMString
-XalanFileUtility::getDrive()
+XalanDOMString&
+XalanFileUtility::getDrive(XalanDOMString& theResult)
{
const char temp[] =
{
@@ -226,8 +227,9 @@
':',
'\0'
};
-
- return XalanDOMString(temp, sizeof(temp) - 1);
+ theResult.assign(temp, sizeof(temp) - 1);
+
+ return theResult;
}
#endif
@@ -254,9 +256,9 @@
}
else
{
- if (checkDir(XalanDOMString(argv[1])))
+ if
(checkDir(XalanDOMString(argv[1],XalanMemMgrs::getDefaultXercesMemMgr())))
{
- assign(args.base, XalanDOMString(argv[1]));
+ assign(args.base,
XalanDOMString(argv[1],XalanMemMgrs::getDefaultXercesMemMgr()));
}
else
{
@@ -275,7 +277,7 @@
++i;
if(i < argc && argv[i][0] != '-')
{
- assign(args.output, XalanDOMString(argv[i]));
+ assign(args.output,
XalanDOMString(argv[i],XalanMemMgrs::getDefaultXercesMemMgr()));
append(args.output, s_pathSep);
checkAndCreateDir(args.output);
fsetOut = false;
@@ -291,11 +293,14 @@
++i;
if(i < argc && argv[i][0] != '-')
{
- assign(args.gold, XalanDOMString(argv[i]));
+ assign(args.gold,
XalanDOMString(argv[i],XalanMemMgrs::getDefaultXercesMemMgr()));
if ( !checkDir(args.gold) )
{
- cout << "Given Gold dir - " <<
c_str(TranscodeToLocalCodePage(args.gold)) << " - does not exist" << endl;
+ CharVectorType
theResult(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(args.gold, theResult, true);
+
+ cout << "Given Gold dir - " << c_str(theResult) << " -
does not exist" << endl;
fSuccess = false;
}
@@ -340,7 +345,7 @@
++i;
if(i < argc && argv[i][0] != '-')
{
- assign(args.sub, XalanDOMString(argv[i]));
+ assign(args.sub,
XalanDOMString(argv[i],XalanMemMgrs::getDefaultXercesMemMgr()));
}
else
{
@@ -386,7 +391,7 @@
args.output.assign(args.base, 0, ii + 1);
}
- append(args.output,XalanDOMString(outDir));
+
append(args.output,XalanDOMString(outDir,XalanMemMgrs::getDefaultXercesMemMgr()));
checkAndCreateDir(args.output);
append(args.output,s_pathSep);
@@ -396,10 +401,12 @@
if (fsetGold)
{
args.gold = args.base;
- append(args.gold,XalanDOMString("-gold"));
+
append(args.gold,XalanDOMString("-gold",XalanMemMgrs::getDefaultXercesMemMgr()));
if ( !checkDir(args.gold) )
{
- cout << "Assumed Gold dir - " <<
c_str(TranscodeToLocalCodePage(args.gold)) << " - does not exist" << endl;
+ CharVectorType
theResult(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(args.gold, theResult, true);
+ cout << "Assumed Gold dir - " << c_str(theResult) << " - does
not exist" << endl;
fSuccess = false;
}
append(args.gold,s_pathSep);
@@ -422,32 +429,40 @@
// Notes: It builds the searchSpecification by concatenating all the
// necessary components.
//
-XalanFileUtility::FileNameVectorType
+XalanFileUtility::FileNameVectorType&
XalanFileUtility::getTestFileNames(
const XalanDOMString& baseDir,
const XalanDOMString& relDir,
- bool useDirPrefix)
+ bool useDirPrefix,
+ FileNameVectorType& theFiles)
{
char buffer3[PATH_MAX];
getcwd(buffer3, PATH_MAX);
- const XalanDOMString searchSuffix(XALAN_STATIC_UCODE_STRING("*.xsl"));
- XalanDOMString searchSpecification;
+ const XalanDOMString
searchSuffix(XALAN_STATIC_UCODE_STRING("*.xsl"),XalanMemMgrs::getDefaultXercesMemMgr());
+ XalanDOMString
searchSpecification(XalanMemMgrs::getDefaultXercesMemMgr());
// Allow directory search w/o mandating files start with directory name.
Required for files
// garnered from XSLTMARK performance directory exm.
if (useDirPrefix)
{
- assign(searchSpecification, baseDir + relDir + s_pathSep + relDir +
searchSuffix);
+ searchSpecification.assign(baseDir);
+ searchSpecification += relDir;
+ searchSpecification += s_pathSep;
+ searchSpecification += relDir;
+ searchSpecification += searchSuffix;
}
else
{
- assign(searchSpecification, baseDir + relDir + s_pathSep +
searchSuffix);
+ searchSpecification.assign(baseDir);
+ searchSpecification += relDir;
+ searchSpecification += s_pathSep;
+ searchSpecification += searchSuffix;
}
DirectoryEnumeratorFunctor<FileNameVectorType, XalanDOMString>
theEnumerator;
- FileNameVectorType theFiles;
+
theEnumerator(searchSpecification, theFiles);
chdir(buffer3);
@@ -460,17 +475,20 @@
//
// Notes: The searchSpecification in this case is just "*".
//
*/
-XalanFileUtility::FileNameVectorType
-XalanFileUtility::getDirectoryNames(const XalanDOMString&
rootDirectory)
+XalanFileUtility::FileNameVectorType&
+XalanFileUtility::getDirectoryNames(const XalanDOMString&
rootDirectory,
+ XalanFileUtility::FileNameVectorType& theFiles)
{
char buffer2[PATH_MAX];
getcwd(buffer2, PATH_MAX);
- const XalanDOMString dirSpec(XALAN_STATIC_UCODE_STRING("*"));
+ const XalanDOMString
dirSpec(XALAN_STATIC_UCODE_STRING("*"),XalanMemMgrs::getDefaultXercesMemMgr());
DirectoryEnumeratorFunctor<FileNameVectorType, XalanDOMString,
DirectoryFilterPredicate> theEnumerator;
- FileNameVectorType theFiles;
- theEnumerator(XalanDOMString(rootDirectory), XalanDOMString(dirSpec),
theFiles);
+
+ theEnumerator(XalanDOMString(rootDirectory,
XalanMemMgrs::getDefaultXercesMemMgr()),
+ XalanDOMString(dirSpec,
XalanMemMgrs::getDefaultXercesMemMgr()),
+ theFiles);
chdir(buffer2);
@@ -486,7 +504,10 @@
bool fResult = false;
- if ( !chdir(c_str(TranscodeToLocalCodePage(directory))) )
+ CharVectorType theResult(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(directory, theResult, true);
+
+ if ( !chdir(c_str(theResult)) )
{
fResult = true;
}
@@ -503,13 +524,18 @@
getcwd(buffer, PATH_MAX);
- if ( (chdir(c_str(TranscodeToLocalCodePage(directory)))) )
+ CharVectorType theResult(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(directory, theResult, true);
+
+ if ( (chdir(c_str(theResult))))
{
//cout << "Couldn't change to " << directory << ", will create it."
<< endl;
+ CharVectorType
theResult1(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(directory, theResult1, true);
#if defined(WIN32)
- if ( !mkdir(c_str(TranscodeToLocalCodePage(directory))))
+ if ( !mkdir(c_str(theResult)))
#else
- if ( !mkdir(c_str(TranscodeToLocalCodePage(directory)),
DIR_MODE_BITS))
+ if ( !mkdir(c_str(theResult), DIR_MODE_BITS))
#endif
{
cout << directory << " created." << endl;
@@ -530,13 +556,13 @@
// Notes:
*/
-XalanDOMString
+XalanDOMString&
XalanFileUtility::generateFileName(
const XalanDOMString& theXMLFileName,
const char* suffix,
+ XalanDOMString& targetFile,
bool* status)
{
- XalanDOMString targetFile;
int thePeriodIndex = -1;
const int theLength = length(theXMLFileName);
@@ -553,13 +579,16 @@
{
targetFile.assign(theXMLFileName, 0, thePeriodIndex + 1);
- targetFile += XalanDOMString(suffix);
+ targetFile += XalanDOMString(suffix,
XalanMemMgrs::getDefaultXercesMemMgr());
}
// Check the .xml file exists.
if (!strcmp(suffix,"xml"))
{
- FILE* fileHandle =
fopen(c_str(TranscodeToLocalCodePage(targetFile)), "r");
+ CharVectorType theResult(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(targetFile, theResult, true);
+
+ FILE* fileHandle = fopen(c_str(theResult), "r");
if (fileHandle == 0)
{
cout << "TEST ERROR: File Missing: " << targetFile << endl;
@@ -586,8 +615,8 @@
// 03151046 is "Mar 15 10:46"
*/
-XalanDOMString
-XalanFileUtility::generateUniqRunid()
+XalanDOMString&
+XalanFileUtility::generateUniqRunid(XalanDOMString& theResult)
{
#if defined(XALAN_STRICT_ANSI_HEADERS)
using std::tm;
@@ -605,7 +634,9 @@
strftime( tmpbuf, 10,"%m%d%H%M",newtime );
- return XalanDOMString(tmpbuf);
+ theResult.assign(tmpbuf);
+
+ return theResult;
}
@@ -614,11 +645,12 @@
// Inputs: None
//
-XalanDOMString
-XalanFileUtility::getXercesVersion()
+XalanDOMString&
+XalanFileUtility::getXercesVersion(XalanDOMString& theResult)
{
+ theResult.assign(gXercesFullVersionStr);
- return XalanDOMString(gXercesFullVersionStr);
+ return theResult;
}
/* This routine creates a FormatterToXML FormatterListener. This is used to
format
@@ -635,25 +667,28 @@
const XalanDOMString& mimeEncoding,
const StylesheetRoot* stylesheet)
{
- XalanDOMString version;
+ XalanDOMString version(resultWriter.getMemoryManager());
bool outputIndent= 0;
- XalanDOMString mediatype;
- XalanDOMString doctypeSystem;
- XalanDOMString doctypePublic;
- XalanDOMString standalone;
+ XalanDOMString mediatype(resultWriter.getMemoryManager());
+ XalanDOMString doctypeSystem(resultWriter.getMemoryManager());
+ XalanDOMString doctypePublic(resultWriter.getMemoryManager());
+ XalanDOMString standalone(resultWriter.getMemoryManager());
if (stylesheet != 0)
{
- version = stylesheet->getOutputVersion();
+ XalanDOMString theBuffer(resultWriter.getMemoryManager());
- mediatype = stylesheet->getOutputMediaType();
- doctypeSystem = stylesheet->getOutputDoctypeSystem();
- doctypePublic = stylesheet->getOutputDoctypePublic();
- standalone = stylesheet->getOutputStandalone();
+ version = stylesheet->getOutputVersion(theBuffer);
+
+ mediatype = stylesheet->getOutputMediaType(theBuffer);
+ doctypeSystem = stylesheet->getOutputDoctypeSystem(theBuffer);
+ doctypePublic = stylesheet->getOutputDoctypePublic(theBuffer);
+ standalone = stylesheet->getOutputStandalone(theBuffer);
outputIndent = stylesheet->getOutputIndent();
}
- return new FormatterToXML(
+ return FormatterToXML::create(
+ resultWriter.getMemoryManager(),
resultWriter,
version,
outputIndent,
@@ -699,20 +734,20 @@
// if the compairson fails gather up the failure data and determine
if it failed
// due to bad output or missing Gold file. Lastly, log the failure.
- Hashtable attrs;
- Hashtable actexp;
+ Hashtable attrs(logfile.getMemoryManager());
+ Hashtable actexp(logfile.getMemoryManager());
reportError();
- attrs.insert(Hashtable::value_type(XalanDOMString("reason"),
XalanDOMString(data.msg)));
- attrs.insert(Hashtable::value_type(XalanDOMString("atNode"),
data.currentNode));
- actexp.insert(Hashtable::value_type(XalanDOMString("exp"),
data.expected));
- actexp.insert(Hashtable::value_type(XalanDOMString("act"),
data.actual));
-
- actexp.insert(Hashtable::value_type(XalanDOMString("xsl"),
data.xslFileURL));
- actexp.insert(Hashtable::value_type(XalanDOMString("xml"),
data.xmlFileURL));
- actexp.insert(Hashtable::value_type(XalanDOMString("result"),
outputFile));
- actexp.insert(Hashtable::value_type(XalanDOMString("gold"),
goldFile));
+ attrs.insert(XalanDOMString("reason", logfile.getMemoryManager()),
XalanDOMString(data.msg, logfile.getMemoryManager()));
+ attrs.insert(XalanDOMString("atNode", logfile.getMemoryManager()),
data.currentNode);
+ actexp.insert(XalanDOMString("exp",
logfile.getMemoryManager()),data.expected);
+ actexp.insert(XalanDOMString("act", logfile.getMemoryManager()),
data.actual);
+
+ actexp.insert(XalanDOMString("xsl", logfile.getMemoryManager()),
data.xslFileURL);
+ actexp.insert( XalanDOMString("xml", logfile.getMemoryManager()),
data.xmlFileURL);
+ actexp.insert( XalanDOMString("result", logfile.getMemoryManager()),
outputFile );
+ actexp.insert( XalanDOMString("gold", logfile.getMemoryManager()),
goldFile);
if (ambgFlag < data.nogold)
{
@@ -722,6 +757,7 @@
{
logfile.logCheckFail(data.testOrFile, attrs, actexp);
}
+
}
}
@@ -735,6 +771,8 @@
const XalanDOMString& goldFile,
bool containsOnly)
{
+ MemoryManagerType& mgr = logfile.getMemoryManager();
+
if(actual == expected ||
(containsOnly == true && indexOf(actual, expected) !=
XalanDOMString::npos))
{
@@ -753,17 +791,18 @@
typedef XalanXMLFileReporter::Hashtable Hashtable;
- Hashtable actexp;
+ Hashtable actexp(mgr);
- actexp.insert(Hashtable::value_type(XalanDOMString("exp"),
expected));
- actexp.insert(Hashtable::value_type(XalanDOMString("act"), actual));
- actexp.insert(Hashtable::value_type(XalanDOMString("xsl"),
data.xslFileURL));
- actexp.insert(Hashtable::value_type(XalanDOMString("xml"),
data.xmlFileURL));
- actexp.insert(Hashtable::value_type(XalanDOMString("result"),
outputFile));
- actexp.insert(Hashtable::value_type(XalanDOMString("gold"),
goldFile));
+ actexp.insert( XalanDOMString("exp", mgr), expected);
+ actexp.insert( XalanDOMString("act", mgr), actual);
+ actexp.insert( XalanDOMString("xsl", mgr), data.xslFileURL);
+ actexp.insert( XalanDOMString("xml", mgr), data.xmlFileURL);
+ actexp.insert( XalanDOMString("result", mgr), outputFile);
+ actexp.insert( XalanDOMString("gold", mgr), goldFile);
// Todo: Need to determine if I should check for missing gold in
these cases.
logfile.logCheckFail(data.testOrFile, actexp);
+
}
}
@@ -788,11 +827,13 @@
const XSLTInputSource& goldInputSource,
XalanXMLFileReporter& logfile)
{
+ MemoryManagerType& theManager = logfile.getMemoryManager();
+
const int ambgFlag = data.nogold;
- const XalanDOMString mimeEncoding("");
+ const XalanDOMString mimeEncoding("", theManager);
- XalanFileOutputStream myOutput(theOutputFile);
+ XalanFileOutputStream myOutput(theOutputFile, theManager);
XalanOutputStreamPrintWriter myResultWriter(myOutput);
FormatterListener* const theFormatter =
@@ -802,14 +843,14 @@
mimeEncoding,
compiledSS->getStylesheetRoot());
- FormatterTreeWalker theTreeWalker(*theFormatter);
+ FormatterTreeWalker theTreeWalker(*theFormatter, theManager);
theTreeWalker.traverse(dom);
- delete theFormatter;
+ destroyObjWithMemMgr( theFormatter, theManager);
XalanSourceTreeDOMSupport domSupport;
- XalanSourceTreeParserLiaison parserLiaison(domSupport);
+ XalanSourceTreeParserLiaison parserLiaison(theManager, domSupport);
domSupport.setParserLiaison(&parserLiaison);
@@ -828,15 +869,15 @@
// if the compairson fails gather up the failure data and determine
if it failed
// due to bad output or missing Gold file. Lastly, log the failure.
- Hashtable attrs;
- Hashtable actexp;
+ Hashtable attrs(theManager);
+ Hashtable actexp(theManager);
reportError();
- attrs.insert(Hashtable::value_type(XalanDOMString("reason"),
XalanDOMString(data.msg)));
- attrs.insert(Hashtable::value_type(XalanDOMString("atNode"),
data.currentNode));
- actexp.insert(Hashtable::value_type(XalanDOMString("exp"),
data.expected));
- actexp.insert(Hashtable::value_type(XalanDOMString("act"),
data.actual));
+ attrs.insert( XalanDOMString("reason", theManager),
XalanDOMString(data.msg, theManager));
+ attrs.insert( XalanDOMString("atNode", theManager), data.currentNode
);
+ actexp.insert( XalanDOMString("exp", theManager), data.expected);
+ actexp.insert( XalanDOMString("act", theManager), data.actual);
if (ambgFlag < data.nogold)
{
@@ -846,6 +887,7 @@
{
logfile.logCheckFail(data.testOrFile, attrs, actexp);
}
+
}
}
@@ -870,8 +912,10 @@
const XSLTInputSource resultInputSource(outputFile);
const XSLTInputSource goldInputSource(goldFile);
+ MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
+
XalanSourceTreeDOMSupport domSupport;
- XalanSourceTreeParserLiaison parserLiaison(domSupport);
+ XalanSourceTreeParserLiaison parserLiaison(theManager, domSupport );
domSupport.setParserLiaison(&parserLiaison);
@@ -894,7 +938,12 @@
{
cout << "SAXException: Using fileCompare to check output.\n";
- return fileCompare(c_str(TranscodeToLocalCodePage(goldFile)),
c_str(TranscodeToLocalCodePage(outputFile)));
+ CharVectorType
goldFileVec(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(goldFile, goldFileVec, true);
+
+ CharVectorType
outputFileVec(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(outputFile, outputFileVec, true);
+ return fileCompare(c_str(goldFileVec), c_str(outputFileVec));
}
}
@@ -942,10 +991,12 @@
char temp[10]; // buffer to hold line number
char lineNum = 1;
+ MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
+
// Set fail data incase there are i/o problems with the files to compare.
- data.expected = XalanDOMString(" ");
- data.actual = XalanDOMString(" ");
- data.currentNode = XalanDOMString("Line: 0");
+ data.expected = XalanDOMString(" ", theManager);
+ data.actual = XalanDOMString(" ", theManager);
+ data.currentNode = XalanDOMString("Line: 0", theManager);
// Attempt to open the files.
FILE* const result = fopen(outputFile, "r");
@@ -977,7 +1028,8 @@
if (ferror(gold) || ferror(result))
{
data.msg = "Read Error - Gold/Result file";
- data.currentNode = XalanDOMString("Line: ") +
XalanDOMString(temp);
+ data.currentNode = XalanDOMString("Line: ", theManager);
+ data.currentNode += XalanDOMString(temp, theManager);
return false;
}
@@ -999,9 +1051,16 @@
replaceNonAsciiCharacters(rline, '?');
data.msg = "Text based comparison failure";
- data.expected = XalanDOMString("<![CDATA[") +
XalanDOMString(gline) + XalanDOMString("]]>");
- data.actual = XalanDOMString("<![CDATA[") +
XalanDOMString(rline) + XalanDOMString("]]>");
- data.currentNode = XalanDOMString("Line: ") +
XalanDOMString(temp);
+ data.expected = XalanDOMString("<![CDATA[", theManager);
+ data.expected += XalanDOMString(gline, theManager);
+ data.expected += XalanDOMString("]]>", theManager);
+
+ data.actual = XalanDOMString("<![CDATA[", theManager);
+ data.actual += XalanDOMString(rline, theManager);
+ data.actual += XalanDOMString("]]>", theManager);
+
+ data.currentNode = XalanDOMString("Line: ", theManager);
+ data.currentNode += XalanDOMString(temp, theManager);
data.fail += 1;
fclose(result); fclose(gold);
return false;
@@ -1036,12 +1095,14 @@
const XalanDOMString& docNodeName = doc.getNodeName();
+ MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
+
if (goldNodeType != docNodeType)
{
collectData("NodeType mismatch.",
docNodeName,
- XalanDOMString(xalanNodeTypes[docNodeType]),
- XalanDOMString(xalanNodeTypes[goldNodeType]));
+ XalanDOMString(xalanNodeTypes[docNodeType], theManager),
+ XalanDOMString(xalanNodeTypes[goldNodeType],
theManager));
return false;
}
@@ -1281,12 +1342,14 @@
const XalanDOMString& docNodeName = doc.getNodeName();
+ MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
+
if (goldNodeType != docNodeType)
{
collectData("NodeType mismatch.",
docNodeName,
- XalanDOMString(xalanNodeTypes[docNodeType]),
- XalanDOMString(xalanNodeTypes[goldNodeType]));
+ XalanDOMString(xalanNodeTypes[docNodeType], theManager),
+ XalanDOMString(xalanNodeTypes[goldNodeType],
theManager));
return false;
}
@@ -1479,6 +1542,8 @@
const unsigned int numGoldAttr = goldAttrs->getLength();
const unsigned int numDomAttr = docAttrs ->getLength();
+ MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
+
/*
// This needs to be uncommented if 'compare.exe' is to work.
// If this is the 'root' element strip off the xmlns:xml namespace
attribute,
@@ -1513,7 +1578,7 @@
collectData("Element missing named Attribute. ",
docNodeName,
goldAttrName,
- XalanDOMString("NOTHING"));
+ XalanDOMString("NOTHING", theManager));
return false;
}
@@ -1526,8 +1591,8 @@
sprintf(buf2, "%u", numDomAttr);
collectData("Wrong number of attributes. ",
docNodeName,
- XalanDOMString(buf1),
- XalanDOMString(buf2));
+ XalanDOMString(buf1, theManager),
+ XalanDOMString(buf2, theManager));
return false;
}
@@ -1545,8 +1610,8 @@
{
collectData("Element missing ChildNode. ",
docNodeName,
- XalanDOMString(goldNextNode->getNodeName()),
- XalanDOMString("NOTHING"));
+ XalanDOMString(goldNextNode->getNodeName(),
theManager),
+ XalanDOMString("NOTHING", theManager));
return false;
}
}
@@ -1558,17 +1623,17 @@
{
collectData("Result has additional Child node: ",
docNodeName,
- XalanDOMString("NOTHING"),
- XalanDOMString(domNextNode->getNodeName()) +
XalanDOMString(" \"") +
- XalanDOMString(domNextNode->getNodeValue()) +
XalanDOMString("\""));
+ XalanDOMString("NOTHING", theManager),
+ XalanDOMString(domNextNode->getNodeName(),
theManager).append(XalanDOMString(" \"", theManager).append(
+ XalanDOMString(domNextNode->getNodeValue(),
theManager).append(XalanDOMString("\"", theManager)))));
}
// Additional node is NOT text, so just print it's Name.
else
{
collectData("Result has additional Child node: ",
docNodeName,
- XalanDOMString("NOTHING"),
- XalanDOMString(domNextNode->getNodeName()));
+ XalanDOMString("NOTHING", theManager),
+ XalanDOMString(domNextNode->getNodeName(),
theManager));
}
return false;
@@ -1593,6 +1658,8 @@
const XalanDOMString& docNsUri = doc.getNamespaceURI();
const XalanDOMString& goldNsUri = gold.getNamespaceURI();
+ MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
+
//debugNodeData(docNodeName);
// This essentially checks 2 things, that the prefix and localname are
the
@@ -1649,7 +1716,7 @@
collectData("Element missing named Attribute. ",
docNodeName,
goldAttrName,
- XalanDOMString("NOTHING"));
+ XalanDOMString("NOTHING", theManager));
return false;
}
@@ -1662,8 +1729,8 @@
sprintf(buf2, "%u", numDomAttr);
collectData("Wrong number of attributes. ",
docNodeName,
- XalanDOMString(buf1),
- XalanDOMString(buf2));
+ XalanDOMString(buf1, theManager),
+ XalanDOMString(buf2, theManager));
return false;
}
@@ -1755,7 +1822,11 @@
void
XalanFileUtility::debugNodeData(const XalanDOMString& value) const
{
- cout << "Node is: " << c_str(TranscodeToLocalCodePage(value)) << endl;
+
+ CharVectorType valueVec(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(value, valueVec, true);
+
+ cout << "Node is: " << c_str(valueVec) << endl;
}
@@ -1765,8 +1836,15 @@
const XalanDOMString& node,
const XalanDOMString& value) const
{
- cout << "Node is: " << c_str(TranscodeToLocalCodePage(node)) << " "
- << "Value is: \"" << c_str(TranscodeToLocalCodePage(value)) <<
"\"\n";
+
+ CharVectorType valueVec(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(value, valueVec, true);
+
+ CharVectorType nodeVec(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(node, nodeVec, true);
+
+ cout << "Node is: " << c_str(nodeVec) << " "
+ << "Value is: \"" << c_str(valueVec) << "\"\n";
}
@@ -1774,7 +1852,11 @@
void
XalanFileUtility::debugAttributeData(const XalanDOMString& value) const
{
- cout << "Attribute is: " << c_str(TranscodeToLocalCodePage(value)) <<
endl;
+ CharVectorType
theTargetVector(XalanMemMgrs::getDefaultXercesMemMgr());
+
+ TranscodeToLocalCodePage(value, theTargetVector, true);
+
+ cout << "Attribute is: " << c_str(theTargetVector) << endl;
}
#endif
@@ -1817,28 +1899,32 @@
{
typedef XalanXMLFileReporter::Hashtable Hashtable;
- Hashtable runResults;
+ MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
+
+ Hashtable runResults(theManager);
char temp[5];
// Create entrys that contain runid, xerces version, and numbers for
Pass, Fail and No Gold.
- runResults.insert(Hashtable::value_type(XalanDOMString("UniqRunid"),
runid));
- runResults.insert(Hashtable::value_type(XalanDOMString("Xerces-Version
"), getXercesVersion()));
- runResults.insert(Hashtable::value_type(XalanDOMString("BaseDrive "),
XalanDOMString(getDrive())));
- runResults.insert(Hashtable::value_type(XalanDOMString("TestBase "),
XalanDOMString(args.base)));
- runResults.insert(Hashtable::value_type(XalanDOMString("xmlFormat "),
data.xmlFormat));
+ XalanDOMString theBuffer( theManager);
+
+ runResults.insert( XalanDOMString("UniqRunid",theManager), runid );
+ runResults.insert( XalanDOMString("Xerces-Version ",theManager),
getXercesVersion(theBuffer));
+ runResults.insert( XalanDOMString("BaseDrive ",theManager),
XalanDOMString(getDrive(theBuffer), theManager));
+ runResults.insert( XalanDOMString("TestBase ",theManager),
XalanDOMString(args.base,theManager));
+ runResults.insert( XalanDOMString("xmlFormat ",theManager),
data.xmlFormat);
sprintf(temp, "%ld", args.iters);
- runResults.insert(Hashtable::value_type(XalanDOMString("Iters "),
XalanDOMString(temp)));
+ runResults.insert( XalanDOMString("Iters ",theManager),
XalanDOMString(temp,theManager));
sprintf(temp, "%d", data.pass);
- runResults.insert(Hashtable::value_type(XalanDOMString("Passed"),
XalanDOMString(temp)));
+ runResults.insert( XalanDOMString("Passed",theManager),
XalanDOMString(temp,theManager));
sprintf(temp, "%d", data.fail);
- runResults.insert(Hashtable::value_type(XalanDOMString("Failed"),
XalanDOMString(temp)));
+ runResults.insert( XalanDOMString("Failed",theManager),
XalanDOMString(temp,theManager));
sprintf(temp, "%d", data.nogold);
- runResults.insert(Hashtable::value_type(XalanDOMString("No_Gold_Files"),
XalanDOMString(temp)));
+ runResults.insert( XalanDOMString("No_Gold_Files",theManager),
XalanDOMString(temp,theManager));
logfile.logElementWAttrs(10, "RunResults", runResults, "xxx");
@@ -1857,13 +1943,13 @@
void
XalanFileUtility::analyzeResults(XalanTransformer& xalan, const
XalanDOMString& resultsFile)
{
- XalanDOMString paramValue;
+ XalanDOMString paramValue(XalanMemMgrs::getDefaultXercesMemMgr());
bool fileStatus;
#if defined(AIX) || defined(SOLARIS) || defined(LINUX) || defined(HPUX)
bool pathStatus;
- CharVectorType withPath;
+ CharVectorType withPath(XalanMemMgrs::getDefaultXercesMemMgr());
TranscodeToLocalCodePage(resultsFile, withPath, false);
if (withPath[0] == '/')
pathStatus=true;
@@ -1871,7 +1957,7 @@
pathStatus=false;
char buffer5[PATH_MAX];
- XalanDOMString resultPath= XalanDOMString(getcwd(buffer5, PATH_MAX));
+ XalanDOMString resultPath(getcwd(buffer5, PATH_MAX));
append(resultPath, s_pathSep);
#endif
@@ -1880,33 +1966,42 @@
// quotes so that it is not considered an expression.
//
#if defined (AIX) || defined(SOLARIS) || defined(LINUX) || defined(HPUX)
- assign(paramValue, XalanDOMString("\'"));
+ assign(paramValue, XalanDOMString("\'",
XalanMemMgrs::getDefaultXercesMemMgr()));
if ( !pathStatus )
append(paramValue, resultPath);
append(paramValue, resultsFile);
- append(paramValue, XalanDOMString("\'"));
+ append(paramValue, XalanDOMString("\'",
XalanMemMgrs::getDefaultXercesMemMgr()));
#else
- assign(paramValue, XalanDOMString("'"));
+ assign(paramValue, XalanDOMString("'",
XalanMemMgrs::getDefaultXercesMemMgr()));
append(paramValue, resultsFile);
- append(paramValue, XalanDOMString("'"));
+ append(paramValue, XalanDOMString("'",
XalanMemMgrs::getDefaultXercesMemMgr()));
#endif
// Set the parameter
//
- xalan.setStylesheetParam(XalanDOMString("testfile"), paramValue);
+ xalan.setStylesheetParam(XalanDOMString("testfile",
XalanMemMgrs::getDefaultXercesMemMgr()), paramValue);
// Generate the input and output file names.
//
- const XalanDOMString theHTMLFile = generateFileName(resultsFile,"html",
&fileStatus);
- const XalanDOMString theStylesheet = args.base +
XalanDOMString("cconf.xsl");
- const XalanDOMString theXMLSource = args.base +
XalanDOMString("cconf.xml");
+ XalanDOMString theHTMLFile(XalanMemMgrs::getDefaultXercesMemMgr());
+ generateFileName(resultsFile,"html", theHTMLFile, &fileStatus);
+
+ XalanDOMString theStylesheet(XalanMemMgrs::getDefaultXercesMemMgr());
+ theStylesheet += args.base;
+ theStylesheet += XalanDOMString("cconf.xsl",
XalanMemMgrs::getDefaultXercesMemMgr());
+
+ XalanDOMString theXMLSource(XalanMemMgrs::getDefaultXercesMemMgr());
+ theXMLSource += args.base;
+ theXMLSource += XalanDOMString("cconf.xml",
XalanMemMgrs::getDefaultXercesMemMgr());
// Check that we can find the stylesheet to analyze the results.
//
- FILE* fileHandle = fopen(c_str(TranscodeToLocalCodePage(theStylesheet)),
"r");
+ CharVectorType theBuffer(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(theStylesheet, theBuffer, true);
+ FILE* fileHandle = fopen(c_str(theBuffer), "r");
if (fileHandle == 0)
{
- cout << "ANALYSIS ERROR: File Missing: " <<
c_str(TranscodeToLocalCodePage(theStylesheet)) << endl;
+ cout << "ANALYSIS ERROR: File Missing: " << c_str(theBuffer) << endl;
return;
}
else
@@ -1917,18 +2012,21 @@
// Create the InputSources and ResultTarget.
const XSLTInputSource xslInputSource(theStylesheet);
const XSLTInputSource xmlInputSource(theXMLSource);
- const XSLTResultTarget resultFile(theHTMLFile);
+ const XSLTResultTarget resultFile(theHTMLFile,
XalanMemMgrs::getDefaultXercesMemMgr());
// Do the transform, display the output HTML, or report any failure.
const int result = xalan.transform(xmlInputSource, xslInputSource,
resultFile);
if (result == 0)
{
- #if defined(_MSC_VER)
- system(c_str(TranscodeToLocalCodePage(theHTMLFile)));
- #else
+#if defined(_MSC_VER)
+ CharVectorType theBuffer(XalanMemMgrs::getDefaultXercesMemMgr());
+ TranscodeToLocalCodePage(theHTMLFile, theBuffer, true);
+
+ system(c_str(theBuffer));
+#else
cout << "The HTML output: " << theHTMLFile << " was created" << endl;
- #endif
+#endif
}
else
{
1.2 +29 -27 xml-xalan/c/src/xalanc/Harness/XalanFileUtility.hpp
Index: XalanFileUtility.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/xalanc/Harness/XalanFileUtility.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XalanFileUtility.hpp 3 Aug 2004 15:59:09 -0000 1.1
+++ XalanFileUtility.hpp 8 Nov 2004 18:05:41 -0000 1.2
@@ -21,8 +21,7 @@
#include "xalanc/Harness/XalanHarnessDefinitions.hpp"
-
-#include <vector>
+#include "xalanc/Include/XalanVector.hpp"
#if defined(XALAN_CLASSIC_IOSTREAMS)
@@ -60,11 +59,9 @@
public:
// A vector to hold directory names and file names.
-#if defined(XALAN_NO_STD_NAMESPACE)
- typedef vector<XalanDOMString> FileNameVectorType;
-#else
- typedef std::vector<XalanDOMString> FileNameVectorType;
-#endif
+
+ typedef XalanVector<XalanDOMString> FileNameVectorType;
+
struct XALAN_HARNESS_EXPORT reportStruct
{
@@ -81,7 +78,7 @@
int fail;
int nogold;
- reportStruct();
+ reportStruct(MemoryManagerType& theManager);
void
reset();
@@ -111,7 +108,7 @@
long iters;
- cmdParams();
+ cmdParams(MemoryManagerType& theManager);
~cmdParams()
{
@@ -129,7 +126,7 @@
} args;
/** Simple constructor, does not perform initialization. */
- XalanFileUtility();
+ XalanFileUtility(MemoryManagerType& theManager);
~XalanFileUtility();
@@ -138,8 +135,8 @@
* @returns a vector containing test files.
*/
- XalanDOMString
- getDrive();
+ XalanDOMString&
+ getDrive(XalanDOMString& theResult);
bool
getParams(
@@ -149,18 +146,20 @@
bool fsetGold = true);
- FileNameVectorType
+ FileNameVectorType&
getTestFileNames(
const XalanDOMString& baseDir,
const XalanDOMString& relDir,
- bool useDirPrefix);
+ bool useDirPrefix,
+ FileNameVectorType& theFiles);
/**
* Utility method used to get subdirectories from a specific directory.
* @returns a vector containing directory files.
*/
- FileNameVectorType
- getDirectoryNames(const XalanDOMString& rootDirectory);
+ FileNameVectorType&
+ getDirectoryNames(const XalanDOMString& rootDirectory,
+ FileNameVectorType& theFiles);
/**
* Utility method used to create default directories when neccessary
@@ -178,32 +177,34 @@
* Utility method used to get XSL file based on XML file.
* @returns a XalanDOMString.
*/
- XalanDOMString
- getXSLFileName(const XalanDOMString& theXMLFileName);
+ XalanDOMString&
+ getXSLFileName(const XalanDOMString& theXMLFileName,
+ XalanDOMString& theResult);
/**
* Utility method used to get OUT file based on XML file.
* @returns a XalanDOMString.
*/
- XalanDOMString
+ XalanDOMString&
generateFileName(
const XalanDOMString& theXMLFileName,
const char* suffix,
+ XalanDOMString& theResult,
bool* status = 0);
/**
* Utility method used to generate UniqRunid.
* @returns a XalanDOMString.
*/
- XalanDOMString
- generateUniqRunid();
+ XalanDOMString&
+ generateUniqRunid(XalanDOMString& theResult);
/**
* Utility methods used to get Xerces Version number.
* @returns a XalanDOMString.
*/
- XalanDOMString
- getXercesVersion();
+ XalanDOMString&
+ getXercesVersion(XalanDOMString& theResult);
void
@@ -230,11 +231,12 @@
XalanXMLFileReporter& logfile,
const XalanDOMString& outputFile,
const XalanDOMString& goldFile,
+ MemoryManagerType& theManager,
bool containsOnly = false)
{
checkAPIResults(
- XalanDOMString(actual),
- XalanDOMString(expected),
+ XalanDOMString(actual, theManager),
+ XalanDOMString(expected, theManager),
msg,
logfile,
outputFile,
@@ -355,8 +357,8 @@
static const XalanDOMString s_emptyString;
- XalanDOMString
- getProgramName(const char* fullName);
+ XalanDOMString&
+ getProgramName(const char* fullName, XalanDOMString& theBuffer);
/**
* Utility methods used to collect information about compare failures.
1.2 +411 -167 xml-xalan/c/src/xalanc/Harness/XalanXMLFileReporter.cpp
Index: XalanXMLFileReporter.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/xalanc/Harness/XalanXMLFileReporter.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XalanXMLFileReporter.cpp 3 Aug 2004 15:59:09 -0000 1.1
+++ XalanXMLFileReporter.cpp 8 Nov 2004 18:05:41 -0000 1.2
@@ -32,56 +32,56 @@
-XalanXMLFileReporter::XalanXMLFileReporter(const XalanDOMString& fileName) :
- OPT_FILENAME(),
- ELEM_RESULTSFILE(),
- ELEM_TESTFILE(),
- ELEM_FILERESULT(),
- ELEM_TESTCASE(),
- ELEM_CASERESULT(),
- ELEM_CHECKRESULT(),
- ELEM_STATISTIC(),
- ELEM_LONGVAL(),
- ELEM_DOUBLEVAL(),
- ELEM_MESSAGE(),
- ELEM_ARBITRARY(),
- ELEM_HASHTABLE(),
- ELEM_HASHITEM(),
- ATTR_LEVEL(),
- ATTR_DESC(),
- ATTR_TIME(),
- ATTR_RESULT(),
- ATTR_KEY(),
- ATTR_FILENAME(),
- LESS_THAN(),
- GREATER_THAN(),
- EQUALS_QUOTE(),
- SPACE(),
- QUOTE(),
- QUOTE_SPACE(),
- QUOTE_GREATER_THAN(),
- QUOTE_SOLIDUS_GREATER_THAN(),
- PASS(),
- AMBG(),
- ERRR(),
- FAIL(),
- LESS_THAN_SOLIDUS(),
- XML_HEADER(),
- REASON_EQUALS_QUOTE(),
- TESTCASEINIT_HDR(),
- TESTCASECLOSE_HDR(),
- MESSAGE_HDR(),
- STATISTIC_HDR(),
- ARBITRARY_HDR(),
- HASHTABLE_HDR(),
- HASHITEM_HDR(),
- CHECKPASS_HDR(),
- CHECKAMBG_HDR(),
- CHECKERRR_HDR(),
- CHECKFAIL_HDR(),
- CHECKFAIL_FTR(),
+XalanXMLFileReporter::XalanXMLFileReporter( MemoryManagerType& theManager,
const XalanDOMString& fileName) :
+ OPT_FILENAME(theManager),
+ ELEM_RESULTSFILE(theManager),
+ ELEM_TESTFILE(theManager),
+ ELEM_FILERESULT(theManager),
+ ELEM_TESTCASE(theManager),
+ ELEM_CASERESULT(theManager),
+ ELEM_CHECKRESULT(theManager),
+ ELEM_STATISTIC(theManager),
+ ELEM_LONGVAL(theManager),
+ ELEM_DOUBLEVAL(theManager),
+ ELEM_MESSAGE(theManager),
+ ELEM_ARBITRARY(theManager),
+ ELEM_HASHTABLE(theManager),
+ ELEM_HASHITEM(theManager),
+ ATTR_LEVEL(theManager),
+ ATTR_DESC(theManager),
+ ATTR_TIME(theManager),
+ ATTR_RESULT(theManager),
+ ATTR_KEY(theManager),
+ ATTR_FILENAME(theManager),
+ LESS_THAN(theManager),
+ GREATER_THAN(theManager),
+ EQUALS_QUOTE(theManager),
+ SPACE(theManager),
+ QUOTE(theManager),
+ QUOTE_SPACE(theManager),
+ QUOTE_GREATER_THAN(theManager),
+ QUOTE_SOLIDUS_GREATER_THAN(theManager),
+ PASS(theManager),
+ AMBG(theManager),
+ ERRR(theManager),
+ FAIL(theManager),
+ LESS_THAN_SOLIDUS(theManager),
+ XML_HEADER(theManager),
+ REASON_EQUALS_QUOTE(theManager),
+ TESTCASEINIT_HDR(theManager),
+ TESTCASECLOSE_HDR(theManager),
+ MESSAGE_HDR(theManager),
+ STATISTIC_HDR(theManager),
+ ARBITRARY_HDR(theManager),
+ HASHTABLE_HDR(theManager),
+ HASHITEM_HDR(theManager),
+ CHECKPASS_HDR(theManager),
+ CHECKAMBG_HDR(theManager),
+ CHECKERRR_HDR(theManager),
+ CHECKFAIL_HDR(theManager),
+ CHECKFAIL_FTR(theManager),
m_anyOutput(false),
- m_fileName(fileName),
+ m_fileName(fileName, theManager),
m_fileHandle(0),
m_ready(false),
m_error(false),
@@ -89,12 +89,12 @@
{
if (m_fileName.empty() == false)
{
- m_ready = initialize();
+ m_ready = initialize(theManager);
}
}
bool
-XalanXMLFileReporter::initialize()
+XalanXMLFileReporter::initialize(MemoryManagerType& theManager)
{
if (m_fileName.empty() == true)
{
@@ -106,7 +106,7 @@
else
{
// Transcode down the file name...
- CharVectorType theTranscodedFileName;
+ CharVectorType theTranscodedFileName(theManager);
TranscodeToLocalCodePage(m_fileName, theTranscodedFileName, true);
@@ -223,10 +223,27 @@
void
XalanXMLFileReporter::logTestFileInit(const XalanDOMString& msg)
{
+ XalanDOMString b(getMemoryManager());
if (isReady())
{
- printToFile(LESS_THAN + ELEM_TESTFILE
- + SPACE + ATTR_DESC + EQUALS_QUOTE +
escapestring(msg) + QUOTE_SPACE + ATTR_TIME + EQUALS_QUOTE +
getDateTimeString() + QUOTE_GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b += LESS_THAN;
+ b += ELEM_TESTFILE;
+ b += SPACE;
+ b +=ATTR_DESC;
+ b +=EQUALS_QUOTE;
+ b +=escapestring(msg, buffer);
+ b +=QUOTE_SPACE;
+ b +=ATTR_TIME;
+ b +=EQUALS_QUOTE;
+ buffer.clear();
+ b +=getDateTimeString(buffer);
+ b +=QUOTE_GREATER_THAN;
+
+
+ printToFile(b);
}
}
@@ -237,9 +254,12 @@
{
if (isReady())
{
-// printToFile(LESS_THAN + ELEM_FILERESULT
-// + SPACE + ATTR_DESC + EQUALS_QUOTE +
escapestring(msg) + QUOTE_SPACE + ATTR_RESULT + EQUALS_QUOTE + result +
QUOTE_SPACE + ATTR_TIME + EQUALS_QUOTE + getDateTimeString() +
QUOTE_SOLIDUS_GREATER_THAN);
- printToFile(LESS_THAN_SOLIDUS + ELEM_TESTFILE + GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ b +=LESS_THAN_SOLIDUS;
+ b +=ELEM_TESTFILE;
+ b +=GREATER_THAN;
+
+ printToFile(b);
}
flush();
}
@@ -251,7 +271,14 @@
{
if (isReady())
{
- printToFile(TESTCASEINIT_HDR + escapestring(msg) +
QUOTE_GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b +=TESTCASEINIT_HDR;
+ b +=escapestring(msg, buffer);
+ b +=QUOTE_GREATER_THAN;
+
+ printToFile(b);
}
}
@@ -262,8 +289,12 @@
{
if (isReady())
{
- //printToFile(TESTCASECLOSE_HDR + escapestring(msg) + QUOTE_SPACE +
ATTR_RESULT + EQUALS_QUOTE + result + QUOTE_SOLIDUS_GREATER_THAN);
- printToFile(LESS_THAN_SOLIDUS + ELEM_TESTCASE + GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ b +=LESS_THAN_SOLIDUS;
+ b +=ELEM_TESTCASE;
+ b +=GREATER_THAN;
+
+ printToFile(b);
}
if (getFlushOnCaseClose())
{
@@ -281,48 +312,71 @@
if (isReady())
{
- printToFile(MESSAGE_HDR + tmp + QUOTE_GREATER_THAN);
- printToFile(escapestring(msg));
- printToFile(LESS_THAN_SOLIDUS + ELEM_MESSAGE + GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b +=LESS_THAN_SOLIDUS;
+ b +=MESSAGE_HDR;
+ b.append(tmp);
+ b +=QUOTE_GREATER_THAN;
+
+ printToFile(b);
+ printToFile(escapestring(msg, buffer));
+ b.clear();
+ b +=LESS_THAN_SOLIDUS;
+ b +=ELEM_MESSAGE;
+ b +=GREATER_THAN;
+
+ printToFile(b );
}
}
-void XalanXMLFileReporter::addMetricToAttrs(char* desc, double theMetric,
Hashtable& attrs)
+void
+XalanXMLFileReporter::addMetricToAttrs(char* desc, double theMetric,
Hashtable& attrs)
{
- XalanDOMString temp;
+ XalanDOMString temp(getMemoryManager());
DoubleToDOMString(theMetric, temp);
- attrs.insert(Hashtable::value_type(XalanDOMString(desc), temp));
- return;
+ attrs.insert(XalanDOMString(desc,getMemoryManager()) ,temp);
+
}
void
-XalanXMLFileReporter::logElementWAttrs(int /* level */, const
XalanDOMString& element, Hashtable attrs, const XalanDOMString& msg)
+XalanXMLFileReporter::logElementWAttrs(int /* level */, const
XalanDOMString& element, Hashtable& attrs, const XalanDOMString& msg)
{
if (isReady() && !element.empty()&& !attrs.empty())
{
-// char tmp[20];
-// sprintf(tmp, "%d", level);
-//
-// Took out this level attribute cuz we don't use it.
-// printToFile(LESS_THAN + element + SPACE + ATTR_LEVEL + EQUALS_QUOTE
-// + tmp + QUOTE);
- printToFile(LESS_THAN + element + SPACE);
+
+ XalanDOMString b(getMemoryManager());
+ b +=LESS_THAN;
+ b +=element;
+ b +=SPACE;
+ printToFile( b);
Hashtable::iterator theEnd = attrs.end();
for(Hashtable::iterator i = attrs.begin(); i != theEnd; ++i)
{
-
- printToFile((*i).first + EQUALS_QUOTE
- + (*i).second + QUOTE);
+ b.erase();
+ b +=(*i).first;
+ b +=EQUALS_QUOTE;
+ b +=(*i).second ;
+ b +=QUOTE;
+ printToFile(b);
}
printToFile(GREATER_THAN);
if (msg.empty() != 0)
- printToFile(escapestring(msg));
- printToFile(LESS_THAN_SOLIDUS + element + GREATER_THAN);
+ {
+ XalanDOMString theResult( getMemoryManager());
+ printToFile(escapestring(msg,theResult ));
+ }
+ b.erase();
+ b +=LESS_THAN_SOLIDUS;
+ b +=element;
+ b +=GREATER_THAN;
+ printToFile(b);
}
}
@@ -331,7 +385,18 @@
{
if (isReady() && !element.empty() && !msg.empty())
{
- printToFile(LESS_THAN + element + GREATER_THAN + escapestring(msg) +
LESS_THAN_SOLIDUS + element + GREATER_THAN);
+ XalanDOMString theString( getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ theString += LESS_THAN;
+ theString += element;
+ theString +=GREATER_THAN;
+ theString +=escapestring(msg, buffer);
+ theString +=LESS_THAN_SOLIDUS;
+ theString +=element;
+ theString +=GREATER_THAN;
+
+ printToFile(theString);
}
}
@@ -340,18 +405,53 @@
{
if (isReady())
{
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
char tmp[40];
sprintf(tmp, "%d", level);
- printToFile(STATISTIC_HDR + tmp + QUOTE_SPACE + ATTR_DESC +
EQUALS_QUOTE + escapestring(msg) + QUOTE_GREATER_THAN);
+ b += STATISTIC_HDR;
+ b += XalanDOMString(tmp, getMemoryManager());
+ b += QUOTE_SPACE;
+ b += ATTR_DESC;
+ b += EQUALS_QUOTE;
+ b += escapestring(msg,buffer);
+ b += QUOTE_GREATER_THAN;
+
+ printToFile(b);
+ b.clear();
sprintf(tmp, "%ld", lVal);
- printToFile(LESS_THAN + ELEM_LONGVAL + GREATER_THAN + tmp +
LESS_THAN_SOLIDUS + ELEM_LONGVAL + GREATER_THAN);
-
+
+ b += LESS_THAN;
+ b += ELEM_LONGVAL;
+ b += GREATER_THAN;
+ b += XalanDOMString(tmp, getMemoryManager());
+ b += LESS_THAN_SOLIDUS;
+ b += ELEM_LONGVAL;
+ b += GREATER_THAN;
+
+ printToFile(b);
+ b.clear();
+
sprintf(tmp, "%f", dVal);
- printToFile(LESS_THAN + ELEM_DOUBLEVAL + GREATER_THAN + tmp +
LESS_THAN_SOLIDUS + ELEM_DOUBLEVAL + GREATER_THAN);
-
- printToFile(LESS_THAN_SOLIDUS + ELEM_STATISTIC + GREATER_THAN);
+
+ b += LESS_THAN;
+ b += XalanDOMString(ELEM_DOUBLEVAL, getMemoryManager());
+ b += GREATER_THAN;
+ b += XalanDOMString(tmp, getMemoryManager());
+ b += LESS_THAN_SOLIDUS;
+ b += ELEM_DOUBLEVAL;
+ b += GREATER_THAN;
+
+ printToFile(b);
+ b.clear();
+
+ b += LESS_THAN_SOLIDUS;
+ b += ELEM_STATISTIC;
+ b += GREATER_THAN;
+
+ printToFile(b);
}
}
@@ -365,10 +465,24 @@
sprintf(tmp, "%d", level);
if (isReady())
- {
- printToFile(ARBITRARY_HDR + tmp + QUOTE_GREATER_THAN);
- printToFile(escapestring(msg));
- printToFile(LESS_THAN_SOLIDUS + ELEM_ARBITRARY + GREATER_THAN);
+ {
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b += ARBITRARY_HDR;
+ b += XalanDOMString(tmp,getMemoryManager());
+ b += QUOTE_GREATER_THAN;
+
+ printToFile(b);
+
+ printToFile(escapestring(msg, buffer));
+
+ b.clear();
+ b +=LESS_THAN_SOLIDUS;
+ b +=ELEM_ARBITRARY;
+ b +=GREATER_THAN;
+
+ printToFile(b);
}
}
@@ -411,7 +525,13 @@
{
if (isReady())
{
- printToFile(CHECKPASS_HDR + escapestring(comment) +
QUOTE_SOLIDUS_GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+ b += CHECKPASS_HDR;
+ b += escapestring(comment,buffer);
+ b +=QUOTE_SOLIDUS_GREATER_THAN;
+
+ printToFile(b);
}
}
@@ -421,23 +541,37 @@
{
if (isReady())
{
- printToFile(CHECKFAIL_HDR + escapestring(comment) +
QUOTE_SOLIDUS_GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b+= CHECKFAIL_HDR;
+ b+=escapestring(comment, buffer);
+ b+= QUOTE_SOLIDUS_GREATER_THAN;
+
+ printToFile(b);
}
}
void
-XalanXMLFileReporter::logCheckFail(const XalanDOMString& test, Hashtable
actexp)
+XalanXMLFileReporter::logCheckFail(const XalanDOMString& test, const
Hashtable& actexp)
{
if (isReady())
{
- printToFile(CHECKFAIL_HDR + escapestring(test) + QUOTE);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b+= CHECKFAIL_HDR;
+ b+= escapestring(test, buffer);
+ b+= QUOTE;
+
+ printToFile(b);
printToFile(GREATER_THAN);
- Hashtable::iterator aeEnd = actexp.end();
- for(Hashtable::iterator ii = actexp.begin(); ii != aeEnd; ++ii)
+ Hashtable::const_iterator aeEnd = actexp.end();
+ for(Hashtable::const_iterator ii = actexp.begin(); ii != aeEnd; ++ii)
{
logElement((*ii).first, (*ii).second);
}
@@ -447,23 +581,31 @@
}
void
-XalanXMLFileReporter::logCheckFail(const XalanDOMString& test, Hashtable
attrs, Hashtable actexp)
+XalanXMLFileReporter::logCheckFail(const XalanDOMString& test, const
Hashtable& attrs, const Hashtable& actexp)
{
if (isReady())
{
- printToFile(CHECKFAIL_HDR + escapestring(test) + QUOTE);
-
- Hashtable::iterator fdEnd = attrs.end();
- for(Hashtable::iterator i = attrs.begin(); i != fdEnd; ++i)
- {
- printToFile((*i).first + EQUALS_QUOTE
- + (*i).second + QUOTE);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+ b+= CHECKFAIL_HDR;
+ b+= escapestring(test, buffer);
+ b+= QUOTE;
+ printToFile(b);
+
+ Hashtable::const_iterator fdEnd = attrs.end();
+ for(Hashtable::const_iterator i = attrs.begin(); i != fdEnd; ++i)
+ {
+ b.clear();
+ b += (*i).first;
+ b += EQUALS_QUOTE;
+ b += QUOTE;
+ printToFile(b);
}
printToFile(GREATER_THAN);
- Hashtable::iterator aeEnd = actexp.end();
- for(Hashtable::iterator ii = actexp.begin(); ii != aeEnd; ++ii)
+ Hashtable::const_iterator aeEnd = actexp.end();
+ for(Hashtable::const_iterator ii = actexp.begin(); ii != aeEnd; ++ii)
{
logElement((*ii).first, (*ii).second);
}
@@ -477,7 +619,14 @@
{
if (isReady())
{
- printToFile(CHECKAMBG_HDR + escapestring(comment) +
QUOTE_SOLIDUS_GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b += CHECKAMBG_HDR;
+ b += escapestring(comment, buffer);
+ b += QUOTE_SOLIDUS_GREATER_THAN;
+
+ printToFile(b);
}
}
@@ -487,7 +636,17 @@
{
if (isReady())
{
- printToFile(CHECKFAIL_HDR + escapestring(test) + QUOTE_SPACE +
XalanDOMString(REASON_EQUALS_QUOTE) + escapestring(reason) +
QUOTE_SOLIDUS_GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b += CHECKFAIL_HDR;
+ b += escapestring(test, buffer);
+ b += QUOTE_SPACE;
+ b += XalanDOMString(REASON_EQUALS_QUOTE, getMemoryManager());
+ buffer.clear();
+ b += escapestring(reason, buffer);
+ b += QUOTE_SOLIDUS_GREATER_THAN;
+ printToFile( b);
}
}
@@ -498,7 +657,13 @@
{
if (isReady())
{
- printToFile(CHECKERRR_HDR + escapestring(comment) +
QUOTE_SOLIDUS_GREATER_THAN);
+ XalanDOMString b(getMemoryManager());
+ XalanDOMString buffer(getMemoryManager());
+
+ b += CHECKERRR_HDR;
+ b += escapestring(comment, buffer);
+ b += QUOTE_SOLIDUS_GREATER_THAN;
+ printToFile(b);
}
}
@@ -564,10 +729,9 @@
-XalanDOMString
-XalanXMLFileReporter::escapestring(const XalanDOMString& s)
+XalanDOMString&
+XalanXMLFileReporter::escapestring(const XalanDOMString& s, XalanDOMString&
sb)
{
- XalanDOMString sb;
const XalanDOMString::size_type length = s.length();
@@ -617,7 +781,17 @@
printToFile(XML_HEADER);
// Note: this tag is closed in our .close() method, which the caller
had better call!
- printToFile(LESS_THAN + ELEM_RESULTSFILE + SPACE + ATTR_FILENAME +
EQUALS_QUOTE + m_fileName + QUOTE_GREATER_THAN);
+
+ XalanDOMString b(getMemoryManager());
+ b += LESS_THAN;
+ b += ELEM_RESULTSFILE;
+ b += SPACE;
+ b += ATTR_FILENAME;
+ b += EQUALS_QUOTE;
+ b += m_fileName;
+ b += QUOTE_GREATER_THAN;
+
+ printToFile(b);
return true;
}
@@ -637,8 +811,13 @@
return false;
}
else
- {
- printToFile(LESS_THAN_SOLIDUS + ELEM_RESULTSFILE + GREATER_THAN);
+ {
+ XalanDOMString b(getMemoryManager());
+ b += LESS_THAN_SOLIDUS;
+ b += ELEM_RESULTSFILE;
+ b += GREATER_THAN;
+
+ printToFile(b);
return true;
}
}
@@ -653,7 +832,8 @@
}
else
{
- const CharVectorType theResult(TranscodeToLocalCodePage(output));
+ CharVectorType theResult(getMemoryManager());
+ TranscodeToLocalCodePage(output, theResult, true);
if(!theResult.size())
{
@@ -672,8 +852,8 @@
-XalanDOMString
-XalanXMLFileReporter::getDateTimeString()
+XalanDOMString &
+XalanXMLFileReporter::getDateTimeString(XalanDOMString& theResult)
{
#if defined(XALAN_STRICT_ANSI_HEADERS)
using std::tm;
@@ -691,7 +871,9 @@
const char* const theTime = asctime(tmNow);
- return XalanDOMString(theTime, XalanDOMString::length(theTime) - 1);
+ theResult.assign(theTime, XalanDOMString::length(theTime) - 1);
+
+ return theResult;
}
@@ -699,54 +881,116 @@
void
XalanXMLFileReporter::initStrings()
{
- OPT_FILENAME = XALAN_STATIC_UCODE_STRING("filename");
- ELEM_RESULTSFILE = XALAN_STATIC_UCODE_STRING("resultsfile");
- ELEM_TESTFILE = XALAN_STATIC_UCODE_STRING("testfile");
- ELEM_FILERESULT = XALAN_STATIC_UCODE_STRING("fileresult");
- ELEM_TESTCASE = XALAN_STATIC_UCODE_STRING("Test_Dir");
- ELEM_CASERESULT = XALAN_STATIC_UCODE_STRING("Dir-result");
- ELEM_CHECKRESULT = XALAN_STATIC_UCODE_STRING("Testcase");
- ELEM_STATISTIC = XALAN_STATIC_UCODE_STRING("statistic");
- ELEM_LONGVAL = XALAN_STATIC_UCODE_STRING("longval");
- ELEM_DOUBLEVAL = XALAN_STATIC_UCODE_STRING("doubleval");
- ELEM_MESSAGE = XALAN_STATIC_UCODE_STRING("message");
- ELEM_ARBITRARY = XALAN_STATIC_UCODE_STRING("arbitrary");
- ELEM_HASHTABLE = XALAN_STATIC_UCODE_STRING("hashtable");
- ELEM_HASHITEM = XALAN_STATIC_UCODE_STRING("hashitem");
- ATTR_LEVEL = XALAN_STATIC_UCODE_STRING("level");
- ATTR_DESC = XALAN_STATIC_UCODE_STRING("desc");
- ATTR_TIME = XALAN_STATIC_UCODE_STRING("time");
- ATTR_RESULT = XALAN_STATIC_UCODE_STRING("result");
- ATTR_KEY = XALAN_STATIC_UCODE_STRING("key");
+ OPT_FILENAME = XalanDOMString("filename", getMemoryManager());
+ ELEM_RESULTSFILE = XalanDOMString("resultsfile", getMemoryManager());
+ ELEM_TESTFILE = XalanDOMString("testfile", getMemoryManager());
+ ELEM_FILERESULT = XalanDOMString("fileresult", getMemoryManager());
+ ELEM_TESTCASE = XalanDOMString("Test_Dir", getMemoryManager());
+ ELEM_CASERESULT = XalanDOMString("Dir-result", getMemoryManager());
+ ELEM_CHECKRESULT = XalanDOMString("Testcase", getMemoryManager());
+ ELEM_STATISTIC = XalanDOMString("statistic", getMemoryManager());
+ ELEM_LONGVAL = XalanDOMString("longval", getMemoryManager());
+ ELEM_DOUBLEVAL = XalanDOMString("doubleval", getMemoryManager());
+ ELEM_MESSAGE = XalanDOMString("message", getMemoryManager());
+ ELEM_ARBITRARY = XalanDOMString("arbitrary", getMemoryManager());
+ ELEM_HASHTABLE = XalanDOMString("hashtable", getMemoryManager());
+ ELEM_HASHITEM = XalanDOMString("hashitem", getMemoryManager());
+ ATTR_LEVEL = XalanDOMString("level", getMemoryManager());
+ ATTR_DESC = XalanDOMString("desc", getMemoryManager());
+ ATTR_TIME = XalanDOMString("time", getMemoryManager());
+ ATTR_RESULT = XalanDOMString("result", getMemoryManager());
+ ATTR_KEY = XalanDOMString("key", getMemoryManager());
ATTR_FILENAME = OPT_FILENAME;
- LESS_THAN = XALAN_STATIC_UCODE_STRING("<");
- GREATER_THAN = XALAN_STATIC_UCODE_STRING(">");
- EQUALS_QUOTE = XALAN_STATIC_UCODE_STRING("=\"");
- SPACE = XALAN_STATIC_UCODE_STRING(" ");
- QUOTE = XALAN_STATIC_UCODE_STRING("\"");
- QUOTE_SPACE = XALAN_STATIC_UCODE_STRING("\" ");
- QUOTE_GREATER_THAN = XALAN_STATIC_UCODE_STRING("\">");
- QUOTE_SOLIDUS_GREATER_THAN = XALAN_STATIC_UCODE_STRING("\"/>");
- PASS = XALAN_STATIC_UCODE_STRING("PASS");
- AMBG = XALAN_STATIC_UCODE_STRING("AMBG");
- ERRR = XALAN_STATIC_UCODE_STRING("ERRR");
- FAIL = XALAN_STATIC_UCODE_STRING("FAIL");
- LESS_THAN_SOLIDUS = XALAN_STATIC_UCODE_STRING("</");
- XML_HEADER = XALAN_STATIC_UCODE_STRING("<?xml version=\"1.0\"?>");
- REASON_EQUALS_QUOTE = XALAN_STATIC_UCODE_STRING("reason=\"");
-
- TESTCASEINIT_HDR = LESS_THAN + ELEM_TESTCASE + SPACE + ATTR_DESC +
EQUALS_QUOTE;
- TESTCASECLOSE_HDR = LESS_THAN + ELEM_CASERESULT + SPACE + ATTR_DESC +
EQUALS_QUOTE;
- MESSAGE_HDR = LESS_THAN + ELEM_MESSAGE + SPACE + ATTR_LEVEL +
EQUALS_QUOTE;
- STATISTIC_HDR = LESS_THAN + ELEM_STATISTIC + SPACE + ATTR_LEVEL +
EQUALS_QUOTE;
- ARBITRARY_HDR = LESS_THAN + ELEM_ARBITRARY + SPACE + ATTR_LEVEL +
EQUALS_QUOTE;
- HASHTABLE_HDR = LESS_THAN + ELEM_HASHTABLE + SPACE + ATTR_LEVEL +
EQUALS_QUOTE;
- HASHITEM_HDR = LESS_THAN + ELEM_HASHITEM + SPACE + ATTR_KEY +
EQUALS_QUOTE;
- CHECKPASS_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT +
EQUALS_QUOTE + PASS + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
- CHECKAMBG_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT +
EQUALS_QUOTE + AMBG + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
- CHECKERRR_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT +
EQUALS_QUOTE + ERRR + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
- CHECKFAIL_HDR = LESS_THAN + ELEM_CHECKRESULT + SPACE + ATTR_RESULT +
EQUALS_QUOTE + FAIL + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE;
- CHECKFAIL_FTR = LESS_THAN_SOLIDUS + ELEM_CHECKRESULT + GREATER_THAN;
+ LESS_THAN = XalanDOMString("<", getMemoryManager());
+ GREATER_THAN = XalanDOMString(">", getMemoryManager());
+ EQUALS_QUOTE = XalanDOMString("=\"", getMemoryManager());
+ SPACE = XalanDOMString(" ", getMemoryManager());
+ QUOTE = XalanDOMString("\"", getMemoryManager());
+ QUOTE_SPACE = XalanDOMString("\" ", getMemoryManager());
+ QUOTE_GREATER_THAN = XalanDOMString("\">", getMemoryManager());
+ QUOTE_SOLIDUS_GREATER_THAN = XalanDOMString("\"/>", getMemoryManager());
+ PASS = XalanDOMString("PASS", getMemoryManager());
+ AMBG = XalanDOMString("AMBG", getMemoryManager());
+ ERRR = XalanDOMString("ERRR", getMemoryManager());
+ FAIL = XalanDOMString("FAIL", getMemoryManager());
+ LESS_THAN_SOLIDUS = XalanDOMString("</", getMemoryManager());
+ XML_HEADER = XalanDOMString("<?xml version=\"1.0\"?>",
getMemoryManager());
+ REASON_EQUALS_QUOTE = XalanDOMString("reason=\"", getMemoryManager());
+
+ TESTCASEINIT_HDR = LESS_THAN;
+ TESTCASEINIT_HDR += ELEM_TESTCASE ;
+ TESTCASEINIT_HDR += SPACE;
+ TESTCASEINIT_HDR += ATTR_DESC;
+ TESTCASEINIT_HDR += EQUALS_QUOTE;
+
+ TESTCASECLOSE_HDR = LESS_THAN;
+ TESTCASECLOSE_HDR += ELEM_CASERESULT;
+ TESTCASECLOSE_HDR += SPACE;
+ TESTCASECLOSE_HDR += ATTR_DESC;
+ TESTCASECLOSE_HDR += EQUALS_QUOTE;
+
+ MESSAGE_HDR = LESS_THAN;
+ MESSAGE_HDR += ELEM_MESSAGE;
+ MESSAGE_HDR += SPACE;
+ MESSAGE_HDR += ATTR_LEVEL;
+ MESSAGE_HDR += EQUALS_QUOTE;
+
+ STATISTIC_HDR +=LESS_THAN;
+ STATISTIC_HDR +=ELEM_STATISTIC;
+ STATISTIC_HDR +=SPACE;
+ STATISTIC_HDR +=ATTR_LEVEL;
+ STATISTIC_HDR +=EQUALS_QUOTE;
+
+ ARBITRARY_HDR += LESS_THAN;
+ ARBITRARY_HDR += ELEM_ARBITRARY;
+ ARBITRARY_HDR += SPACE;
+ ARBITRARY_HDR += ATTR_LEVEL;
+ ARBITRARY_HDR += EQUALS_QUOTE;
+
+ HASHTABLE_HDR += LESS_THAN;
+ HASHTABLE_HDR += ELEM_HASHTABLE;
+ HASHTABLE_HDR += SPACE;
+ HASHTABLE_HDR += ATTR_LEVEL;
+ HASHTABLE_HDR += EQUALS_QUOTE;
+
+ HASHITEM_HDR += LESS_THAN;
+ HASHITEM_HDR += ELEM_HASHITEM;
+ HASHITEM_HDR += SPACE;
+ HASHITEM_HDR += ATTR_KEY;
+ HASHITEM_HDR += EQUALS_QUOTE;
+
+ XalanDOMString prefix(getMemoryManager()), suffix(getMemoryManager());
+
+ prefix += LESS_THAN;
+ prefix += ELEM_CHECKRESULT;
+ prefix += SPACE;
+ prefix += ATTR_RESULT;
+ prefix += EQUALS_QUOTE;
+
+ suffix += QUOTE_SPACE;
+ suffix += ATTR_DESC;
+ suffix += EQUALS_QUOTE;
+
+ CHECKPASS_HDR += prefix;
+ CHECKPASS_HDR += PASS;
+ CHECKPASS_HDR += suffix;
+
+ CHECKAMBG_HDR += prefix;
+ CHECKAMBG_HDR += AMBG;
+ CHECKAMBG_HDR += suffix;
+
+ CHECKERRR_HDR += prefix;
+ CHECKERRR_HDR += ERRR;
+ CHECKERRR_HDR += suffix;
+
+ CHECKFAIL_HDR += prefix;
+ CHECKFAIL_HDR += FAIL;
+ CHECKFAIL_HDR += suffix;
+
+ CHECKFAIL_FTR += LESS_THAN_SOLIDUS;
+ CHECKFAIL_FTR += ELEM_CHECKRESULT;
+ CHECKFAIL_FTR += GREATER_THAN;
+
}
1.3 +28 -19 xml-xalan/c/src/xalanc/Harness/XalanXMLFileReporter.hpp
Index: XalanXMLFileReporter.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/xalanc/Harness/XalanXMLFileReporter.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XalanXMLFileReporter.hpp 28 Sep 2004 18:48:58 -0000 1.2
+++ XalanXMLFileReporter.hpp 8 Nov 2004 18:05:41 -0000 1.3
@@ -28,7 +28,7 @@
#include "xalanc/Include/XalanMap.hpp"
-
+#include "xalanc/Include/XalanMemMgrHelper.hpp"
#include "xalanc/PlatformSupport/DOMStringHelper.hpp"
@@ -42,9 +42,10 @@
-// This class is exported from the Harness.dll
+
class XALAN_HARNESS_EXPORT XalanXMLFileReporter
{
+
public:
typedef XalanMap<XalanDOMString, XalanDOMString> Hashtable;
@@ -60,10 +61,16 @@
// Construct and initialize this reporter with specified filename, if
// the filename is not empty.
- XalanXMLFileReporter(const XalanDOMString& fileName = XalanDOMString());
+ XalanXMLFileReporter(MemoryManagerType& theManager, const
XalanDOMString& fileName);
// Initialize this XalanXMLFileReporter. Must be called before
attempting to log anything.
- bool initialize();
+ bool initialize(MemoryManagerType& theManager);
+
+ MemoryManagerType&
+ getMemoryManager()
+ {
+ return m_fileName.getMemoryManager();
+ }
// Accessor for flushing; is set from properties.
bool getFlushOnCaseClose();
@@ -75,9 +82,9 @@
void setFileName(const XalanDOMString& fileName);
// Accessor methods for our properties block.
- void setFileName(const char* fileName)
+ void setFileName(const char* fileName, MemoryManagerType& theManager)
{
- setFileName(XalanDOMString(fileName));
+ setFileName(XalanDOMString(fileName, theManager));
}
//
@@ -110,7 +117,7 @@
void logTestFileInit(const char* msg)
{
- logTestFileInit(XalanDOMString(msg));
+ logTestFileInit(XalanDOMString(msg, getMemoryManager()));
}
/**
@@ -122,14 +129,14 @@
void logTestFileClose(const char* msg, const char* result)
{
- logTestFileClose(XalanDOMString(msg), XalanDOMString(result));
+ logTestFileClose(XalanDOMString(msg, getMemoryManager()),
XalanDOMString(result, getMemoryManager()));
}
void logTestCaseInit(const XalanDOMString& msg);
void logTestCaseInit(const char* msg)
{
- logTestCaseInit(XalanDOMString(msg));
+ logTestCaseInit(XalanDOMString(msg, getMemoryManager()));
}
/**
@@ -141,7 +148,7 @@
void logTestCaseClose(const char* msg, const char* result)
{
- logTestCaseClose(XalanDOMString(msg), XalanDOMString(result));
+ logTestCaseClose(XalanDOMString(msg , getMemoryManager()),
XalanDOMString(result , getMemoryManager()));
}
//-----------------------------------------------------
//-------- Test results reporting and logging routines --------
@@ -168,7 +175,7 @@
void logStatistic (int level, long lVal, double dVal, const char* msg)
{
- logStatistic(level, lVal, dVal, XalanDOMString(msg));
+ logStatistic(level, lVal, dVal, XalanDOMString(msg,
getMemoryManager()));
}
// This routine will add an attribute to the attribute list.
@@ -185,11 +192,11 @@
* caller must ensure they're legal XML
* @param msg comment to log out.
*/
- void logElementWAttrs(int level, const XalanDOMString& element,
Hashtable attrs, const XalanDOMString& msg);
+ void logElementWAttrs(int level, const XalanDOMString& element,
Hashtable& attrs, const XalanDOMString& msg);
- void logElementWAttrs(int level, const char* element, Hashtable attrs,
const char* msg)
+ void logElementWAttrs(int level, const char* element, Hashtable& attrs,
const char* msg)
{
- logElementWAttrs(level, XalanDOMString(element), attrs,
XalanDOMString(msg));
+ logElementWAttrs(level, XalanDOMString(element, getMemoryManager()),
attrs, XalanDOMString(msg, getMemoryManager()));
}
void logElement(int level, const XalanDOMString& element, const
XalanDOMString& msg);
@@ -245,9 +252,9 @@
*/
void logCheckFail(const XalanDOMString& comment);
- void logCheckFail(const XalanDOMString& test, Hashtable faildata,
Hashtable actexp);
+ void logCheckFail(const XalanDOMString& test, const Hashtable& faildata,
const Hashtable& actexp);
- void logCheckFail(const XalanDOMString& test, Hashtable actexp);
+ void logCheckFail(const XalanDOMString& test, const Hashtable& actexp);
void logErrorResult(const XalanDOMString& test, const XalanDOMString&
reason);
@@ -264,11 +271,12 @@
* @param s XalanDOMString to escape.
* @return XalanDOMString that has been escaped.
*/
- XalanDOMString escapestring(const XalanDOMString& s);
+ XalanDOMString& escapestring(const XalanDOMString& s, XalanDOMString&
buffer);
private:
-
+ // not implemented
+ XalanXMLFileReporter(const XalanXMLFileReporter&);
/**
* worker method to dump the xml header and open the resultsfile element.
*/
@@ -290,7 +298,8 @@
/**
* worker method to prints to the resultsfile.
*/
- XalanDOMString getDateTimeString();
+ XalanDOMString&
+ getDateTimeString(XalanDOMString& result);
/** Key for Properties block that denotes our output filename. */
XalanDOMString OPT_FILENAME;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]