View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0010964CDash[CMake] CTestpublic2010-07-08 16:032011-01-04 11:56
ReporterRyan Pavlik 
Assigned ToZach Mullen 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version1.9 
Summary0010964: CDash 1.6.4 - test output "crashes" the log page
DescriptionI have a test process that runs under CTest and submits to my cdash 1.6.4 dashboard. I'm pretty sure that the issue is because it inserts codes to change the text color in the terminal. In any case, attempting to load the view-test-log pages in CDash (url: CDash/testDetails.php?test=3600&build=1293 ) just presents a number of errors, all identical:
Warning: DOMDocument::loadXML() [domdocument.loadxml]: PCDATA invalid Char value 27 in Entity, line: 39 in /home/rpavlik/web/CDash/cdash/common.php on line 39

The actual log itself is never shown. Thinking that the logs should be cleaned/escaped at some level - not sure if that's a CTest issue or a CDash issue (hoping it's CDash so I can update once for all...). Please let me know what files (test logs, etc) you need to debug this issue if I have not provided them.
TagsNo tags attached.
Attached Fileslog file icon LastTest_20100630-0119.log [^] (41,766 bytes) 2010-07-08 16:03
xml file icon Test.xml [^] (21,915 bytes) 2010-07-08 16:03
html file icon testDetails.php.html [^] (16,833 bytes) 2010-07-08 17:01

 Relationships

  Notes
(0024157)
Brad King (manager)
2010-12-15 11:02

There are 2 forms of Test.xml from CTest: uncompressed and compressed.

(1) The uncompressed format shows the test output in human-readable form and always contains valid UTF-8 encoded XML since this commit:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e4beefeb [^]

which was merged for CMake 2.8.1 (back in CVS-hosted days so it is a different commit) here:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dc1d2189#patch249 [^]

Invalid encoding in test output is replaced with some human-readable placeholders that describe the error. This transformation is necessary to submit valid Test.xml files with bad test output while keeping the files human-readable (e.g. not base64 encoded).

(2) The compressed format is not human readable anyway so we just use base64 encoding to generate valid Test.xml files regardless of test output. When CDash receives such files and decompresses the output it is then responsible for handling what it gets.

This is a CDash issue, not a CTest issue. CDash needs to check the validity of the UTF-8 encoding in the test output after uncompressing it and store only valid UTF-8 encoded data in its database.
(0024177)
David Cole (manager)
2010-12-15 12:29

Moved to "CDash" and assigned to Zach after reading Brad's note ( http://public.kitware.com/Bug/view.php?id=10964#c24157 [^] )
(0024391)
Zach Mullen (developer)
2011-01-04 10:53

Going to fix this in CDash trunk.
(0024392)
Zach Mullen (developer)
2011-01-04 11:03

What behavior would be preferable for handling non printed characters: replace them with a placeholder like a question mark, or just remove them altogether?
(0024394)
David Cole (manager)
2011-01-04 11:15
edited on: 2011-01-04 11:16

Replace them with an escaped/encoded representation such that a human reader can tell what the original character was...

As in "%20" == a space character in a URL, or "&# 32;" in escaped HTML-ese, something along these lines would be the way to print a non-printing character in test output shown in a CDash web page.

See, for example, the set of HTML 4 Special Characters listed here:
http://tntluoma.com/sidebars/codes/ [^]

I don't think it matters exactly how we represent these as long as we make it "human interpretable" if not necessarily easily readable. If you can find a pattern like this on other web sites that you like, mimic it.

(0024395)
Zach Mullen (developer)
2011-01-04 11:43

Sounds good. Any preference between these two styles:

&0x1b;

vs.

&27;

?
(0024396)
Zach Mullen (developer)
2011-01-04 11:56

In version 1.9 @ revision 2832

 Issue History
Date Modified Username Field Change
2010-07-08 16:03 Ryan Pavlik New Issue
2010-07-08 16:03 Ryan Pavlik File Added: LastTest_20100630-0119.log
2010-07-08 16:03 Ryan Pavlik File Added: Test.xml
2010-07-08 17:01 Ryan Pavlik File Added: testDetails.php.html
2010-12-15 11:02 Brad King Note Added: 0024157
2010-12-15 12:28 David Cole Project CMake => CDash
2010-12-15 12:28 David Cole Assigned To => Zach Mullen
2010-12-15 12:28 David Cole Status new => assigned
2010-12-15 12:29 David Cole Note Added: 0024177
2011-01-04 10:53 Zach Mullen Note Added: 0024391
2011-01-04 10:53 Zach Mullen Status assigned => acknowledged
2011-01-04 11:03 Zach Mullen Note Added: 0024392
2011-01-04 11:15 David Cole Note Added: 0024394
2011-01-04 11:16 David Cole Note Edited: 0024394
2011-01-04 11:16 David Cole Note Edited: 0024394
2011-01-04 11:16 David Cole Note Edited: 0024394
2011-01-04 11:43 Zach Mullen Note Added: 0024395
2011-01-04 11:56 Zach Mullen Note Added: 0024396
2011-01-04 11:56 Zach Mullen Status acknowledged => resolved
2011-01-04 11:56 Zach Mullen Fixed in Version => 1.9
2011-01-04 11:56 Zach Mullen Resolution open => fixed


Copyright © 2000 - 2018 MantisBT Team