Bug #1746
XML test report not written in case of exception
Status: | Closed | Start date: | 03/16/2016 | |
---|---|---|---|---|
Priority: | High | Due date: | ||
Assigned To: | Knödlseder Jürgen | % Done: | 0% | |
Category: | - | |||
Target version: | 1.1.0 | |||
Duration: |
Description
If an exception occurs in a unit test, the test report is not written and the following in displayed on the screen:
Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/gamma/lib/python2.6/site-packages/cscripts/__init__.py", line 83, in test test_python_cscripts.test(installed=True) File "/usr/local/gamma/lib/python2.6/site-packages/cscripts/tests/test_python_cscripts.py", line 99, in test suites.save("cscripts.xml") File "/usr/local/gamma/lib/python2.6/site-packages/gammalib/test.py", line 262, in save return _test.GTestSuites_save(self, *args) RuntimeError: *** ERROR in GXmlAttribute::value(std::string): Invalid XML attribute value: *** ERROR in GPythonTestSuite::test: <type 'exceptions.RuntimeError'> *** ERROR in GCaldb::path(std::string&, std::string&): Directory "caldb/data/cta" not found. Requested mission "CTA" not found in calibration database.
It looks as if the XML attribute has an invalid value.
Recurrence
No recurrence.
History
#1 Updated by Knödlseder Jürgen almost 9 years ago
It looks like the problem is related to the code in GXmlAttribute::value(std::string value)
that attempts adding hyphens around the XML code. This code is probably obsolete since the GXmlAttribute::write(GUrl& url)
method writes the value using the gammalib::str2xml(value)
function that converts all hyphens into special characters:
// Get value without quotation marks std::string value = m_value.substr(1, m_value.length()-2); // Convert value to XML format value = "\""+gammalib::str2xml(value)+"\""; // Write attribute into URL url.printf(" %s=%s", m_name.c_str(), value.c_str());
Probably the best thing would be to store the value without hyphens.
GXmlAttribute::value(std::string value)
should eventually strips leading and trailing hyphens before storing the value.#2 Updated by Knödlseder Jürgen over 8 years ago
- Assigned To set to Knödlseder Jürgen
- Priority changed from Normal to High
- Target version set to 1.1.0
#3 Updated by Knödlseder Jürgen over 8 years ago
- Status changed from New to Closed
I changed the logic in the GXmlAttribute
class so that the hyphens are no longer stored but stripped upon construction, and put back when the write()
method is called. The value()
methods get and set the attribute without any hyphens.
This logic, which needed a few minor further code adjustments, now leads to a proper recording of unit test exceptions in the XML report.
Changed merged into devel
.