dbertoni 2003/03/20 16:44:32
Modified: c/Tests/Harness XMLFileReporter.hpp XMLFileReporter.cpp
Log:
Made static strings instance members as temporary workaround for static
initialization.
Revision Changes Path
1.16 +53 -56 xml-xalan/c/Tests/Harness/XMLFileReporter.hpp
Index: XMLFileReporter.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/Tests/Harness/XMLFileReporter.hpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- XMLFileReporter.hpp 27 Nov 2002 22:36:28 -0000 1.15
+++ XMLFileReporter.hpp 21 Mar 2003 00:44:32 -0000 1.16
@@ -92,15 +92,9 @@
public:
- // Simple constructor, does not perform initialization.
- XMLFileReporter();
-
-
- // Construct and initialize this reporter with specified filename.
- XMLFileReporter(const XalanDOMString& fileName);
-
- // Construct and initialize this reporter with specified filename.
- XMLFileReporter(const char* fileName);
+ // Construct and initialize this reporter with specified filename, if
+ // the filename is not empty.
+ XMLFileReporter(const XalanDOMString& fileName = XalanDOMString());
// Initialize this XMLFileReporter. Must be called before attempting to log
anything.
bool initialize();
@@ -325,68 +319,71 @@
*/
bool printToFile(const XalanDOMString& output);
+ void
+ initStrings();
+
/**
* worker method to prints to the resultsfile.
*/
XalanDOMString getDateTimeString();
/** Key for Properties block that denotes our output filename. */
- static const XalanDOMString OPT_FILENAME;
+ XalanDOMString OPT_FILENAME;
/** XML tagnames for results file structure. */
- static const XalanDOMString ELEM_RESULTSFILE;
- static const XalanDOMString ELEM_TESTFILE;
- static const XalanDOMString ELEM_FILERESULT;
- static const XalanDOMString ELEM_TESTCASE;
- static const XalanDOMString ELEM_CASERESULT;
- static const XalanDOMString ELEM_CHECKRESULT;
- static const XalanDOMString ELEM_STATISTIC;
- static const XalanDOMString ELEM_LONGVAL;
- static const XalanDOMString ELEM_DOUBLEVAL;
- static const XalanDOMString ELEM_MESSAGE;
- static const XalanDOMString ELEM_ARBITRARY;
- static const XalanDOMString ELEM_HASHTABLE;
- static const XalanDOMString ELEM_HASHITEM;
+ XalanDOMString ELEM_RESULTSFILE;
+ XalanDOMString ELEM_TESTFILE;
+ XalanDOMString ELEM_FILERESULT;
+ XalanDOMString ELEM_TESTCASE;
+ XalanDOMString ELEM_CASERESULT;
+ XalanDOMString ELEM_CHECKRESULT;
+ XalanDOMString ELEM_STATISTIC;
+ XalanDOMString ELEM_LONGVAL;
+ XalanDOMString ELEM_DOUBLEVAL;
+ XalanDOMString ELEM_MESSAGE;
+ XalanDOMString ELEM_ARBITRARY;
+ XalanDOMString ELEM_HASHTABLE;
+ XalanDOMString ELEM_HASHITEM;
/** XML attribute names for results file structure. */
- static const XalanDOMString ATTR_LEVEL;
- static const XalanDOMString ATTR_DESC;
- static const XalanDOMString ATTR_TIME;
- static const XalanDOMString ATTR_RESULT;
- static const XalanDOMString ATTR_KEY;
- static const XalanDOMString ATTR_FILENAME;
- static const XalanDOMString LESS_THAN;
- static const XalanDOMString GREATER_THAN;
- static const XalanDOMString EQUALS_QUOTE;
- static const XalanDOMString SPACE;
- static const XalanDOMString QUOTE;
- static const XalanDOMString QUOTE_SPACE;
- static const XalanDOMString QUOTE_GREATER_THAN;
- static const XalanDOMString QUOTE_SOLIDUS_GREATER_THAN;
- static const XalanDOMString PASS;
- static const XalanDOMString AMBG;
- static const XalanDOMString ERRR;
- static const XalanDOMString FAIL;
- static const XalanDOMString LESS_THAN_SOLIDUS;
- static const XalanDOMString XML_HEADER;
- static const XalanDOMString REASON_EQUALS_QUOTE;
+ XalanDOMString ATTR_LEVEL;
+ XalanDOMString ATTR_DESC;
+ XalanDOMString ATTR_TIME;
+ XalanDOMString ATTR_RESULT;
+ XalanDOMString ATTR_KEY;
+ XalanDOMString ATTR_FILENAME;
+ XalanDOMString LESS_THAN;
+ XalanDOMString GREATER_THAN;
+ XalanDOMString EQUALS_QUOTE;
+ XalanDOMString SPACE;
+ XalanDOMString QUOTE;
+ XalanDOMString QUOTE_SPACE;
+ XalanDOMString QUOTE_GREATER_THAN;
+ XalanDOMString QUOTE_SOLIDUS_GREATER_THAN;
+ XalanDOMString PASS;
+ XalanDOMString AMBG;
+ XalanDOMString ERRR;
+ XalanDOMString FAIL;
+ XalanDOMString LESS_THAN_SOLIDUS;
+ XalanDOMString XML_HEADER;
+ XalanDOMString REASON_EQUALS_QUOTE;
/**
* Optimization: for heavy use methods, form pre-defined constants to save on
XalanDOMString concatenation.
* <P>Note the indent; must be updated if we ever switch to another indenting
method.</P>
*/
- static const XalanDOMString TESTCASEINIT_HDR;
- static const XalanDOMString TESTCASECLOSE_HDR;
- static const XalanDOMString MESSAGE_HDR;
- static const XalanDOMString STATISTIC_HDR;
- static const XalanDOMString ARBITRARY_HDR;
- static const XalanDOMString HASHTABLE_HDR;
- static const XalanDOMString HASHITEM_HDR;
- static const XalanDOMString CHECKPASS_HDR;
- static const XalanDOMString CHECKAMBG_HDR;
- static const XalanDOMString CHECKERRR_HDR;
- static const XalanDOMString CHECKFAIL_HDR;
- static const XalanDOMString CHECKFAIL_FTR;
+ XalanDOMString TESTCASEINIT_HDR;
+ XalanDOMString TESTCASECLOSE_HDR;
+ XalanDOMString MESSAGE_HDR;
+ XalanDOMString STATISTIC_HDR;
+ XalanDOMString ARBITRARY_HDR;
+ XalanDOMString HASHTABLE_HDR;
+ XalanDOMString HASHITEM_HDR;
+ XalanDOMString CHECKPASS_HDR;
+ XalanDOMString CHECKAMBG_HDR;
+ XalanDOMString CHECKERRR_HDR;
+ XalanDOMString CHECKFAIL_HDR;
+ XalanDOMString CHECKFAIL_FTR;
/** If we have output anything yet. */
bool m_anyOutput;
1.19 +134 -96 xml-xalan/c/Tests/Harness/XMLFileReporter.cpp
Index: XMLFileReporter.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/Tests/Harness/XMLFileReporter.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- XMLFileReporter.cpp 26 Nov 2002 02:12:27 -0000 1.18
+++ XMLFileReporter.cpp 21 Mar 2003 00:44:32 -0000 1.19
@@ -75,121 +75,104 @@
-// $$$ToDo: These strings must be initialized in a static call, and not at
initialization.
-const XalanDOMString XMLFileReporter::OPT_FILENAME(L"filename");
-const XalanDOMString XMLFileReporter::ELEM_RESULTSFILE(L"resultsfile");
-const XalanDOMString XMLFileReporter::ELEM_TESTFILE(L"testfile");
-const XalanDOMString XMLFileReporter::ELEM_FILERESULT(L"fileresult");
-const XalanDOMString XMLFileReporter::ELEM_TESTCASE(L"Test_Dir");
-const XalanDOMString XMLFileReporter::ELEM_CASERESULT(L"Dir-result");
-const XalanDOMString XMLFileReporter::ELEM_CHECKRESULT(L"Testcase");
-const XalanDOMString XMLFileReporter::ELEM_STATISTIC(L"statistic");
-const XalanDOMString XMLFileReporter::ELEM_LONGVAL(L"longval");
-const XalanDOMString XMLFileReporter::ELEM_DOUBLEVAL(L"doubleval");
-const XalanDOMString XMLFileReporter::ELEM_MESSAGE(L"message");
-const XalanDOMString XMLFileReporter::ELEM_ARBITRARY(L"arbitrary");
-const XalanDOMString XMLFileReporter::ELEM_HASHTABLE(L"hashtable");
-const XalanDOMString XMLFileReporter::ELEM_HASHITEM(L"hashitem");
-const XalanDOMString XMLFileReporter::ATTR_LEVEL(L"level");
-const XalanDOMString XMLFileReporter::ATTR_DESC(L"desc");
-const XalanDOMString XMLFileReporter::ATTR_TIME(L"time");
-const XalanDOMString XMLFileReporter::ATTR_RESULT(L"result");
-const XalanDOMString XMLFileReporter::ATTR_KEY(L"key");
-const XalanDOMString XMLFileReporter::ATTR_FILENAME = XMLFileReporter::OPT_FILENAME;
-const XalanDOMString XMLFileReporter::LESS_THAN(L"<");
-const XalanDOMString XMLFileReporter::GREATER_THAN(L">");
-const XalanDOMString XMLFileReporter::EQUALS_QUOTE(L"=\"");
-const XalanDOMString XMLFileReporter::SPACE(L" ");
-const XalanDOMString XMLFileReporter::QUOTE(L"\"");
-const XalanDOMString XMLFileReporter::QUOTE_SPACE(L"\" ");
-const XalanDOMString XMLFileReporter::QUOTE_GREATER_THAN(L"\">");
-const XalanDOMString XMLFileReporter::QUOTE_SOLIDUS_GREATER_THAN(L"\"/>");
-const XalanDOMString XMLFileReporter::PASS(L"PASS");
-const XalanDOMString XMLFileReporter::AMBG(L"AMBG");
-const XalanDOMString XMLFileReporter::ERRR(L"ERRR");
-const XalanDOMString XMLFileReporter::FAIL(L"FAIL");
-const XalanDOMString XMLFileReporter::LESS_THAN_SOLIDUS(L"</");
-const XalanDOMString XMLFileReporter::XML_HEADER("<?xml version=\"1.0\"?>");
-const XalanDOMString XMLFileReporter::REASON_EQUALS_QUOTE("reason=\"");
-
-const XalanDOMString XMLFileReporter::TESTCASEINIT_HDR(LESS_THAN + ELEM_TESTCASE +
SPACE + ATTR_DESC + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::TESTCASECLOSE_HDR(LESS_THAN + ELEM_CASERESULT
+ SPACE + ATTR_DESC + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::MESSAGE_HDR(LESS_THAN + ELEM_MESSAGE + SPACE
+ ATTR_LEVEL + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::STATISTIC_HDR(LESS_THAN + ELEM_STATISTIC +
SPACE + ATTR_LEVEL + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::ARBITRARY_HDR(LESS_THAN + ELEM_ARBITRARY +
SPACE + ATTR_LEVEL + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::HASHTABLE_HDR(LESS_THAN + ELEM_HASHTABLE +
SPACE + ATTR_LEVEL + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::HASHITEM_HDR(LESS_THAN + ELEM_HASHITEM +
SPACE + ATTR_KEY + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::CHECKPASS_HDR(LESS_THAN + ELEM_CHECKRESULT +
SPACE + ATTR_RESULT + EQUALS_QUOTE + PASS + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::CHECKAMBG_HDR(LESS_THAN + ELEM_CHECKRESULT +
SPACE + ATTR_RESULT + EQUALS_QUOTE + AMBG + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::CHECKERRR_HDR(LESS_THAN + ELEM_CHECKRESULT +
SPACE + ATTR_RESULT + EQUALS_QUOTE + ERRR + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::CHECKFAIL_HDR(LESS_THAN + ELEM_CHECKRESULT +
SPACE + ATTR_RESULT + EQUALS_QUOTE + FAIL + QUOTE_SPACE + ATTR_DESC + EQUALS_QUOTE);
-const XalanDOMString XMLFileReporter::CHECKFAIL_FTR(LESS_THAN_SOLIDUS +
ELEM_CHECKRESULT + GREATER_THAN);
-
-
-XMLFileReporter::XMLFileReporter():
- m_anyOutput(false),
- m_fileName(""),
- m_fileHandle(0),
- m_ready(false),
- m_error(false),
- m_flushOnCaseClose(true)
-{
-}
-
-
-
-XMLFileReporter::XMLFileReporter(const XalanDOMString& fileName):
+XMLFileReporter::XMLFileReporter(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(),
m_anyOutput(false),
m_fileName(fileName),
m_fileHandle(0),
m_ready(false),
m_error(false),
m_flushOnCaseClose(true)
-{
- m_ready = initialize();
-}
-
-XMLFileReporter::XMLFileReporter(const char* fileName):
- m_anyOutput(false),
- m_fileName(XalanDOMString(fileName)),
- m_fileHandle(0),
- m_ready(false),
- m_error(false),
- m_flushOnCaseClose(true)
-{
- m_ready = initialize();
+{
+ if (m_fileName.size() > 0)
+ {
+ m_ready = initialize();
+ }
}
-bool
+bool
XMLFileReporter::initialize()
{
- if (length(m_fileName) == 0)
+ if (m_fileName.size() == 0)
{
// We don't have a valid file, so bail
m_error = true;
m_ready = false;
fprintf(stderr, "XMLFileReporter.initialize() ERROR: No file name
specified");
- return(false);
}
+ else
+ {
+ // Transcode down the file name...
+ const CharVectorType theTranscodedFileName(m_fileName.transcode());
+ const char* const theTranscodedFileNamePointer =
&theTranscodedFileName.front();
+
+ // Create a file and ensure it has a place to live
+ m_fileHandle = fopen(theTranscodedFileNamePointer, "w");
+ if (m_fileHandle == 0)
+ {
+ // Couldn't create or find the directory for the file to live
in, so bail
+ m_error = true;
+ m_ready = false;
+ fprintf(stderr, "XMLFileReporter.initialize() ERROR: unble to
open file, %s", theTranscodedFileNamePointer);
+ return(false);
+ }
+ else
+ {
+ m_ready = true;
- // Transcode down the file name...
- const CharVectorType theTranscodedFileName(m_fileName.transcode());
- const char* const theTranscodedFileNamePointer =
&theTranscodedFileName.front();
+ initStrings();
- // Create a file and ensure it has a place to live
- m_fileHandle = fopen(theTranscodedFileNamePointer, "w");
- if (m_fileHandle == 0)
- {
- // Couldn't create or find the directory for the file to live in, so bail
- m_error = true;
- m_ready = false;
- fprintf(stderr, "XMLFileReporter.initialize() ERROR: unble to open file,
%s", theTranscodedFileNamePointer);
- return(false);
- }
+ startResultsFile();
- m_ready = true;
- startResultsFile();
- // fprintf(stderr, "DEBUG:XMLFileReporter.initialize() complete with " +
fileName);
+ // fprintf(stderr, "DEBUG:XMLFileReporter.initialize()
complete with " + fileName);
+ }
+ }
return m_ready;
}
@@ -741,6 +724,61 @@
const char* const theTime = asctime(tmNow);
return XalanDOMString(theTime, strlen(theTime) - 1);
+}
+
+
+
+void
+XMLFileReporter::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");
+ 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;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]