7 new revisions:
Revision: 12d9e240cae4
Branch: default
Author: Pekka Klärck
Date: Sat Oct 20 12:05:57 2012
Log: Profiler script modified from Mikko's gist at
https://gist.github.com/...
http://code.google.com/p/robotframework/source/detail?r=12d9e240cae4
Revision: 436976572b06
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 01:34:33 2012
Log: Optimized parsing output when creating only report....
http://code.google.com/p/robotframework/source/detail?r=436976572b06
Revision: bf69294a1231
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 04:32:20 2012
Log: log/report: simplified getting generated timestamp
http://code.google.com/p/robotframework/source/detail?r=bf69294a1231
Revision: 303aae05de55
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 04:38:53 2012
Log: removed now obsolete test
http://code.google.com/p/robotframework/source/detail?r=303aae05de55
Revision: 5096ad36688d
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 04:47:40 2012
Log: log/report: refactored (slap) creating header
http://code.google.com/p/robotframework/source/detail?r=5096ad36688d
Revision: 0fb0d23ab915
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 05:14:37 2012
Log: Fixed showing long title in log and report....
http://code.google.com/p/robotframework/source/detail?r=0fb0d23ab915
Revision: ff2dbad96082
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 05:15:26 2012
Log: regen
http://code.google.com/p/robotframework/source/detail?r=ff2dbad96082
==============================================================================
Revision: 12d9e240cae4
Branch: default
Author: Pekka Klärck
Date: Sat Oct 20 12:05:57 2012
Log: Profiler script modified from Mikko's gist at
https://gist.github.com/3907371
http://code.google.com/p/robotframework/source/detail?r=12d9e240cae4
Added:
/proto/profiler.py
=======================================
--- /dev/null
+++ /proto/profiler.py Sat Oct 20 12:05:57 2012
@@ -0,0 +1,24 @@
+import cProfile
+import pstats
+import os
+from os.path import abspath, dirname, join
+import sys
+import tempfile
+
+rootdir = dirname(dirname(abspath(__file__)))
+sys.path.insert(0, join(rootdir, 'src'))
+
+from robot.run import run_cli
+from robot.rebot import rebot_cli
+
+if sys.argv[1] != 'rebot':
+ profiled = 'run_cli(sys.argv[1:])'
+else:
+ profiled = 'rebot_cli(sys.argv[2:])'
+
+results = tempfile.mktemp(suffix='.out', prefix='pybot-profile',
+ dir=join(rootdir, 'tmp'))
+cProfile.run(profiled, results)
+stats = pstats.Stats(results)
+stats.sort_stats('cumulative').print_stats(50)
+os.remove(results)
==============================================================================
Revision: 436976572b06
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 01:34:33 2012
Log: Optimized parsing output when creating only report.
Update issue 1261
Optimized the code that omits keywords a little. Memory usage dropped ~5%
and execution got a tiny bit faster. As a bonus the code is also a little
cleaner.
http://code.google.com/p/robotframework/source/detail?r=436976572b06
Modified:
/src/robot/result/resultbuilder.py
=======================================
--- /src/robot/result/resultbuilder.py Fri Oct 19 15:23:00 2012
+++ /src/robot/result/resultbuilder.py Sun Oct 21 01:34:33 2012
@@ -61,6 +61,7 @@
self._include_keywords = include_keywords
def build(self, result):
+ # Parsing is performance optimized. Do not change without
profiling!
handler = XmlElementHandler(result)
with self._source as source:
self._parse(source, handler.start, handler.end)
@@ -79,13 +80,15 @@
elem.clear()
def _omit_keywords(self, context):
- kws = 0
+ started_kws = 0
for event, elem in context:
- if event == 'start' and elem.tag == 'kw':
- kws += 1
- if not kws:
+ start = event == 'start'
+ kw = elem.tag == 'kw'
+ if kw and start:
+ started_kws += 1
+ if not started_kws:
yield event, elem
- else:
+ elif not start:
elem.clear()
- if event == 'end' and elem.tag == 'kw':
- kws -= 1
+ if kw and not start:
+ started_kws -= 1
==============================================================================
Revision: bf69294a1231
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 04:32:20 2012
Log: log/report: simplified getting generated timestamp
http://code.google.com/p/robotframework/source/detail?r=bf69294a1231
Modified:
/src/robot/htmldata/rebot/testdata.js
/src/robot/htmldata/rebot/util.js
/src/robot/htmldata/rebot/view.js
=======================================
--- /src/robot/htmldata/rebot/testdata.js Fri May 11 03:18:16 2012
+++ /src/robot/htmldata/rebot/testdata.js Sun Oct 21 04:32:20 2012
@@ -18,22 +18,20 @@
idCounter++;
return "elementId_" + idCounter;
}
-
- function timestamp(millis) {
- return new Date(window.output.baseMillis + millis);
- }
function times(stats) {
var startMillis = stats[1];
var elapsed = stats[2];
if (startMillis == null)
return [null, null, elapsed];
- return [timestamp(startMillis), timestamp(startMillis + elapsed),
elapsed];
+ return [util.timestamp(startMillis),
+ util.timestamp(startMillis + elapsed),
+ elapsed];
}
function message(element, strings) {
return addElement(model.Message(LEVELS[element[1]],
- timestamp(element[0]),
+ util.timestamp(element[0]),
strings.get(element[2]),
strings.get(element[3])));
}
@@ -244,10 +242,6 @@
return element.suites()[index];
}
}
-
- function generated() {
- return timestamp(window.output.generatedMillis);
- }
function errors() {
var iterator = new Object();
@@ -303,7 +297,6 @@
errors: errors,
find: findById,
findPathTo: findPathTo,
- generated: generated,
statistics: statistics,
getStringStore: getStringStore,
LEVELS: LEVELS
=======================================
--- /src/robot/htmldata/rebot/util.js Wed Jun 27 04:58:19 2012
+++ /src/robot/htmldata/rebot/util.js Sun Oct 21 04:32:20 2012
@@ -111,8 +111,13 @@
while (numString.length < len) numString = "0" + numString;
return numString;
}
+
+ function timestamp(millis) {
+ return new Date(window.output.baseMillis + millis);
+ }
function createGeneratedAgoString(generatedMillis) {
+ generatedMillis = timestamp(generatedMillis);
function timeString(time, shortUnit) {
var unit = {'y': 'year', 'd': 'day', 'h': 'hour',
'm': 'minute', 's': 'second'}[shortUnit];
@@ -165,6 +170,7 @@
dateFromDate: dateFromDate,
dateTimeFromDate: dateTimeFromDate,
formatElapsed: formatElapsed,
+ timestamp: timestamp,
createGeneratedAgoString: createGeneratedAgoString
};
}();
=======================================
--- /src/robot/htmldata/rebot/view.js Tue Aug 28 00:37:48 2012
+++ /src/robot/htmldata/rebot/view.js Sun Oct 21 04:32:20 2012
@@ -28,7 +28,7 @@
function addHeader() {
createGenerated(window.output.generatedTimestamp,
- window.testdata.generated().getTime()
+ window.output.generatedMillis
).appendTo($('#header'));
$.tmpl('' +
'<div id="top_right_header"><div id="report_or_log_link">' +
==============================================================================
Revision: 303aae05de55
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 04:38:53 2012
Log: removed now obsolete test
http://code.google.com/p/robotframework/source/detail?r=303aae05de55
Modified:
/utest/webcontent/spec/ParsingSpec.js
=======================================
--- /utest/webcontent/spec/ParsingSpec.js Fri May 11 01:27:01 2012
+++ /utest/webcontent/spec/ParsingSpec.js Sun Oct 21 04:38:53 2012
@@ -132,11 +132,6 @@
expect(message.text).toEqual("Slept 100 milliseconds");
});
- it("should parse timestamp", function () {
- var timestamp = window.testdata.generated();
- expect(timestamp).toEqual(new
Date(window.output.baseMillis+window.output.generatedMillis));
- });
-
});
describe("Setups and teardowns", function () {
==============================================================================
Revision: 5096ad36688d
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 04:47:40 2012
Log: log/report: refactored (slap) creating header
http://code.google.com/p/robotframework/source/detail?r=5096ad36688d
Modified:
/src/robot/htmldata/rebot/view.js
=======================================
--- /src/robot/htmldata/rebot/view.js Sun Oct 21 04:32:20 2012
+++ /src/robot/htmldata/rebot/view.js Sun Oct 21 04:47:40 2012
@@ -27,27 +27,19 @@
}
function addHeader() {
- createGenerated(window.output.generatedTimestamp,
- window.output.generatedMillis
- ).appendTo($('#header'));
- $.tmpl('' +
- '<div id="top_right_header"><div id="report_or_log_link">' +
- '<a href="#"></a>' +
- '</div></div>' +
- '<h1>${title}</h1>', {
+ return $.tmpl('<div id="generated">' +
+ '<span>Generated<br>${generated}</span><br>' +
+ '<span id="generated_ago">${ago} ago</span>' +
+ '</div>' +
+ '<div id="top_right_header">' +
+ '<div id="report_or_log_link"><a href="#"></a></div>' +
+ '</div>' +
+ '<h1>${title}</h1>', {
+ generated: window.output.generatedTimestamp,
+ ago: util.createGeneratedAgoString(window.output.generatedMillis),
title: document.title
}).appendTo($('#header'));
}
-
-function createGenerated(generated, generatedMillis) {
- return $.tmpl('<div id="generated">' +
- '<span>Generated<br>${generated}</span><br>' +
- '<span id="generated_ago">${generatedAgo} ago</span>' +
- '</div>', {
- generated: generated,
- generatedAgo: util.createGeneratedAgoString(generatedMillis)
- });
-}
function addReportOrLogLink(myType) {
var url;
==============================================================================
Revision: 0fb0d23ab915
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 05:14:37 2012
Log: Fixed showing long title in log and report.
Update issue 1262
Status: Done
http://code.google.com/p/robotframework/source/detail?r=0fb0d23ab915
Modified:
/src/robot/htmldata/rebot/common.css
/src/robot/htmldata/testdata/create_jsdata.py
=======================================
--- /src/robot/htmldata/rebot/common.css Tue Sep 4 04:51:17 2012
+++ /src/robot/htmldata/rebot/common.css Sun Oct 21 05:14:37 2012
@@ -36,7 +36,10 @@
h1 {
float: left;
width: 70%;
- margin: 0;
+ margin: 0 0 0.5em 0;
+}
+h2 {
+ clear: left;
}
#generated {
float: right;
=======================================
--- /src/robot/htmldata/testdata/create_jsdata.py Fri Aug 17 06:09:38 2012
+++ /src/robot/htmldata/testdata/create_jsdata.py Sun Oct 21 05:14:37 2012
@@ -42,6 +42,9 @@
})
result = Results(outxml, settings).js_result
config = {'logURL': 'log.html',
+ 'title': 'This is a long long title. A very long title
indeed. '
+ 'And it even contains some stuff to <esc&ape>. '
+ 'Yet it should still look good.',
'minLevel': 'DEBUG',
'defaultLevel': 'DEBUG',
'reportURL': 'report.html',
==============================================================================
Revision: ff2dbad96082
Branch: default
Author: Pekka Klärck
Date: Sun Oct 21 05:15:26 2012
Log: regen
http://code.google.com/p/robotframework/source/detail?r=ff2dbad96082
Modified:
/src/robot/htmldata/testdata/data.js
=======================================
--- /src/robot/htmldata/testdata/data.js Mon Aug 20 01:56:53 2012
+++ /src/robot/htmldata/testdata/data.js Sun Oct 21 05:15:26 2012
@@ -1,10 +1,10 @@
window.output = {};
-window.output["suite"] =
[1,2,3,4,[5,6,7,8,9,10,11,12],[0,0,3361],[[13,14,15,0,[],[1,47,17],[],[[16,0,1,0,[17,18,19],[1,61,3],[[0,20,0,21,22,[1,62,0],[],[[63,2,23]]],[0,24,0,25,26,[1,63,1],[],[[63,2,27]]]]]],[],[1,1,1,1]],[28,29,30,0,[],[1,65,8],[],[[31,0,1,0,[17,18,19],[1,69,3],[[0,32,0,33,34,[1,71,0],[],[[71,2,35]]],[0,24,0,25,36,[1,72,0],[],[[72,2,37]]]]]],[],[1,1,1,1]],[38,39,40,41,[42,43,44,12],[0,74,3285,45],[],[[46,0,1,0,[42,47,48,18,19,49],[0,81,4,50],[[1,24,0,25,51,[1,83,0],[],[[83,2,51]]],[0,24,0,25,52,[1,83,1],[],[[84,2,52]]],[2,24,0,25,53,[1,84,1],[],[[85,2,53]]]]],[54,0,1,0,[42,48,18,19,55,56,57,49],[0,86,505,50],[[1,24,0,25,51,[1,87,0],[],[[87,2,51]]],[0,58,0,59,60,[1,87,502],[],[[589,2,61]]],[2,24,0,25,53,[1,590,1],[],[[591,2,53]]]]],[62,0,1,0,[42,48,18,19,56,57,49],[0,592,708,50],[[1,24,0,25,51,[1,595,1],[],[[595,2,51]]],[0,58,0,59,63,[1,596,702],[],[[1297,2,64]]],[2,24,0,25,53,[1,1299,1],[],[[1299,2,53]]]]],[65,0,0,0,[66,42,48,18,19,57,49],[0,1301,2007,50],[[1,24,0,25,51,[1,1303,1],[],[[1304,2,51]]],[0,58,0,59,67,[1,1305,2002],[],[[3306,2,68]]],[2,24,0,25,53,[1,3307,1],[],[[3307,2,53]]]]],[69,0,1,70,[71,42,48,18,19,49],[0,3308,15,72],[[1,24,0,25,51,[1,3311,1],[],[[3311,2,51]]],[0,24,0,25,73,[1,3312,1],[],[[3313,2,74]]],[0,24,0,25,75,[1,3314,1],[],[[3315,2,76]]],[0,24,0,25,77,[1,3315,1],[],[[3316,2,77]]],[0,78,0,79,77,[0,3317,4],[],[[3320,4,77],[3321,1,80]]],[2,24,0,25,53,[1,3322,0],[],[[3322,2,53]]]]],[81,0,1,0,[42,48,18,19,49,82],[0,3323,4,50],[[1,24,0,25,51,[1,3325,0],[],[[3325,2,51]]],[0,24,0,25,83,[1,3325,1],[],[[3326,2,83]]],[2,24,0,25,53,[1,3326,1],[],[[3327,2,53]]]]],[84,0,0,85,[42,48,18,19,86,87,49],[0,3327,11,50],[[1,24,0,25,88,[1,3329,0],[],[[3329,2,88]]],[0,24,0,25,89,[1,3330,0],[],[[3330,2,89]]],[0,90,0,0,0,[1,3330,2],[[0,24,0,25,91,[1,3331,1],[],[[3332,2,91]]]],[]],[3,92,0,0,0,[1,3332,5],[[4,93,0,0,0,[1,3333,1],[[0,24,0,25,94,[1,3333,0],[],[[3333,2,95]]]],[]],[4,96,0,0,0,[1,3334,1],[[0,24,0,25,94,[1,3334,1],[],[[3335,2,97]]]],[]],[4,98,0,0,0,[1,3335,1],[[0,24,0,25,94,[1,3335,1],[],[[3336,2,99]]]],[]],[4,100,0,0,0,[1,3336,1],[[0,24,0,25,94,[1,3337,0],[],[[3337,2,101]]]],[]]],[]],[2,24,0,25,102,[1,3338,0],[],[[3338,2,102]]]]],[103,0,1,0,[42,47,48,18,19,49],[0,3339,5,50],[[1,24,0,25,51,[1,3340,1],[],[[3341,2,51]]],[0,24,0,25,104,[1,3341,1],[],[[3341,3,106]]],[0,24,0,25,107,[1,3342,1],[],[[3342,2,108]]],[0,24,0,25,109,[1,3343,0],[],[[3343,1,110]]],[2,24,0,25,53,[1,3344,0],[],[[3344,2,53]]]]],[111,0,1,0,[42,47,48,18,19,49],[0,3345,6,112],[[1,24,0,25,51,[1,3346,1],[],[[3347,2,51]]],[0,78,0,79,113,[0,3347,1],[],[[3348,4,113],[3348,1,80]]],[0,78,0,79,114,[0,3348,1],[],[[3349,4,115],[3349,1,80]]],[2,24,0,25,53,[1,3350,0],[],[[3350,2,53]]]]],[116,0,1,117,[42,118,48,18,19,49],[0,3351,6,119],[[1,24,0,25,51,[1,3353,0],[],[[3353,2,51]]],[0,24,0,25,118,[1,3354,0],[],[[3354,2,118]]],[0,118,0,0,0,[0,3354,2],[[0,78,0,79,118,[0,3355,1],[],[[3356,4,118],[3356,1,80]]]],[]],[2,24,0,25,53,[1,3357,0],[],[[3357,2,53]]]]]],[[1,24,0,25,120,[1,81,0],[],[[81,2,120]]],[2,78,0,79,0,[0,3358,1],[],[[3359,4,121],[3359,1,80]]]],[10,0,8,0]]],[],[[1,24,0,25,122,[1,46,1],[],[[47,2,122]]]],[12,2,10,2]];
+window.output["suite"] =
[1,2,3,4,[5,6,7,8,9,10,11,12],[0,0,3351],[[13,14,15,0,[],[1,46,17],[],[[16,0,1,0,[17,18,19],[1,59,3],[[0,20,0,21,22,[1,60,1],[],[[61,2,23]]],[0,24,0,25,26,[1,61,1],[],[[62,2,27]]]]]],[],[1,1,1,1]],[28,29,30,0,[],[1,63,7],[],[[31,0,1,0,[17,18,19],[1,67,3],[[0,32,0,33,34,[1,68,1],[],[[69,2,35]]],[0,24,0,25,36,[1,69,0],[],[[69,2,37]]]]]],[],[1,1,1,1]],[38,39,40,41,[42,43,44,12],[0,71,3278,45],[],[[46,0,1,0,[42,47,48,18,19,49],[0,78,3,50],[[1,24,0,25,51,[1,79,0],[],[[79,2,51]]],[0,24,0,25,52,[1,80,0],[],[[80,2,52]]],[2,24,0,25,53,[1,80,1],[],[[81,2,53]]]]],[54,0,1,0,[42,48,18,19,55,56,57,49],[0,81,506,50],[[1,24,0,25,51,[1,82,1],[],[[83,2,51]]],[0,58,0,59,60,[1,83,502],[],[[584,2,61]]],[2,24,0,25,53,[1,585,1],[],[[586,2,53]]]]],[62,0,1,0,[42,48,18,19,56,57,49],[0,587,708,50],[[1,24,0,25,51,[1,590,0],[],[[590,2,51]]],[0,58,0,59,63,[1,591,702],[],[[1292,2,64]]],[2,24,0,25,53,[1,1294,0],[],[[1294,2,53]]]]],[65,0,0,0,[66,42,48,18,19,57,49],[0,1296,2007,50],[[1,24,0,25,51,[1,1298,1],[],[[1299,2,51]]],[0,58,0,59,67,[1,1299,2002],[],[[3301,2,68]]],[2,24,0,25,53,[1,3302,1],[],[[3303,2,53]]]]],[69,0,1,70,[71,42,48,18,19,49],[0,3304,14,72],[[1,24,0,25,51,[1,3308,0],[],[[3308,2,51]]],[0,24,0,25,73,[1,3309,1],[],[[3310,2,74]]],[0,24,0,25,75,[1,3310,1],[],[[3311,2,76]]],[0,24,0,25,77,[1,3312,1],[],[[3312,2,77]]],[0,78,0,79,77,[0,3313,4],[],[[3317,4,77],[3317,1,80]]],[2,24,0,25,53,[1,3317,1],[],[[3318,2,53]]]]],[81,0,1,0,[42,48,18,19,49,82],[0,3318,4,50],[[1,24,0,25,51,[1,3320,0],[],[[3320,2,51]]],[0,24,0,25,83,[1,3320,1],[],[[3321,2,83]]],[2,24,0,25,53,[1,3321,1],[],[[3321,2,53]]]]],[84,0,0,85,[42,48,18,19,86,87,49],[0,3322,10,50],[[1,24,0,25,88,[1,3323,1],[],[[3324,2,88]]],[0,24,0,25,89,[1,3324,0],[],[[3324,2,89]]],[0,90,0,0,0,[1,3325,1],[[0,24,0,25,91,[1,3326,0],[],[[3326,2,91]]]],[]],[3,92,0,0,0,[1,3326,5],[[4,93,0,0,0,[1,3327,0],[[0,24,0,25,94,[1,3327,0],[],[[3327,2,95]]]],[]],[4,96,0,0,0,[1,3328,0],[[0,24,0,25,94,[1,3328,0],[],[[3328,2,97]]]],[]],[4,98,0,0,0,[1,3329,1],[[0,24,0,25,94,[1,3329,0],[],[[3329,2,99]]]],[]],[4,100,0,0,0,[1,3330,1],[[0,24,0,25,94,[1,3330,1],[],[[3331,2,101]]]],[]]],[]],[2,24,0,25,102,[1,3331,1],[],[[3332,2,102]]]]],[103,0,1,0,[42,47,48,18,19,49],[0,3332,5,50],[[1,24,0,25,51,[1,3333,1],[],[[3334,2,51]]],[0,24,0,25,104,[1,3334,1],[],[[3334,3,106]]],[0,24,0,25,107,[1,3335,0],[],[[3335,2,108]]],[0,24,0,25,109,[1,3336,0],[],[[3336,1,110]]],[2,24,0,25,53,[1,3336,1],[],[[3337,2,53]]]]],[111,0,1,0,[42,47,48,18,19,49],[0,3337,5,112],[[1,24,0,25,51,[1,3339,0],[],[[3339,2,51]]],[0,78,0,79,113,[0,3339,1],[],[[3340,4,113],[3340,1,80]]],[0,78,0,79,114,[0,3340,1],[],[[3341,4,115],[3341,1,80]]],[2,24,0,25,53,[1,3341,1],[],[[3342,2,53]]]]],[116,0,1,117,[42,118,48,18,19,49],[0,3342,6,119],[[1,24,0,25,51,[1,3344,0],[],[[3344,2,51]]],[0,24,0,25,118,[1,3344,1],[],[[3345,2,118]]],[0,118,0,0,0,[0,3345,2],[[0,78,0,79,118,[0,3346,1],[],[[3346,4,118],[3347,1,80]]]],[]],[2,24,0,25,53,[1,3347,1],[],[[3348,2,53]]]]]],[[1,24,0,25,120,[1,77,1],[],[[77,2,120]]],[2,78,0,79,0,[0,3349,0],[],[[3349,4,121],[3349,1,80]]]],[10,0,8,0]]],[],[[1,24,0,25,122,[1,45,1],[],[[46,2,122]]]],[12,2,10,2]];
window.output["strings"] = [];
-window.output["strings"] =
window.output["strings"].concat(["*","*<Suite.Name>","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite","*src/robot/htmldata/testdata/dir.suite","eNqtU91q3TAMvl6fQuQBYnpuBiX1GIzCoLs5ax/ASZTE1I6MrJD17SsnPTuno4MydiMS6dOnH+trkv1G3RJxFieeZhiIQSaEdaKAIJgF8uIFa/gagkZ8LpCYwUH286iY5NiN7NIEWRyLOmFginC8g0P9uT7U8HNJiViw31KdbBgl6jHSnIVdCbUYaK0bk+xVswQ1wdumtY/H+5vGtBYaBxPjcFtNIunGGKaWZGAXcSV+qonHyv411BhnG6OMO62336MbUYm9Evs4QubuN3NHPdYjkQ5XdxRN+oPQBBrpC/6SOs1jBeIl4D8mv21Kx73389M2797aB2Y+Fh/cnZxvJ93GhFBIP0T2f3fxboVzf2Z75onViGv1klriHvm2uq6Ka/P3ZSk/nveN6N/J9VASLrxmh7/mXJ+xh3cBA9EF3SXCbK3oR7KM4xIcl/XhfpeJNaIGtIPXU8a+dHEF0NEsqqJPq5dJ1aOSycl1mJVyS9sHPV324FmVFbwaRcbzi2VUov4cKTop1H5eVCSwFNGV8rLSJoveDwOyFgaXEpPrJswX+30B5nxQUg==","*<Escape>","*<p><
&lt; </script></p>","*Formatting","*<p><b>Bold</b> and
<i>italics</i></p>","*Image","eNqdy9ENgCAMBcBVDAPQf4M4i2KtRPA1tYmO7w7e/yXNqXYZbitTONx1JCrYOAogjWNBJyXDCt9t6fzATmoQzPx61EvC4NUb/8w5keYPXLwvxw==","*URL","*<p><a
href=\"http://robotframework.org\">http://robotframework.org</a></p>","*Test.Suite.1","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/test.suite.1.txt","*src/robot/htmldata/testdata/dir.suite/test.suite.1.txt","*list
test","*collections","*i1","*i2","*${list} = BuiltIn.Create
List","*<p>Returns a list containing given items.</p>","*foo, bar,
quux","*${list} = [u'foo', u'bar', u'quux']","*BuiltIn.Log","*<p>Logs the
given message with the given level.</p>","*${list}","*[u'foo', u'bar',
u'quux']","*Test.Suite.2","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/test.suite.2.txt","*src/robot/htmldata/testdata/dir.suite/test.suite.2.txt","*Dictionary
test","*${dict} = Collections.Create Dictionary","*<p>Creates and returns a
dictionary from the given `key_value_pairs`.</p>","*key, value","*${dict} =
{u'key': u'value'}","*${dict}","*{u'key':
u'value'}","*Tests","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/tests.txt","*src/robot/htmldata/testdata/dir.suite/tests.txt","*<p>Some
suite <i>docs</i> with links: <a
href=\"http://robotframework.org\">http://robotframework.org</a></p>","*<
&lt; \u00e4","*<p>< &lt; \u00e4</p>","*home *page*","*Suite
teardown failed:\nAssertionError","*Simple","*default with
percent %","*force","*with space","*Teardown of the parent suite
failed.","*Test Setup","*do nothing","*Test
Teardown","*Long","*long1","*long2","*long3","*BuiltIn.Sleep","*<p>Pauses
the test executed for the given time.</p>","*0.5 seconds","*Slept 500
milliseconds","*Longer","*0.7 second","*Slept 700
milliseconds","*Longest","**kek*kone*","*2 seconds","*Slept 2
seconds","*Log HTML","*<p>This test uses <i><b>formatted</b></i>
HTML.</p>\n<table
border=\"1\">\n<tr>\n<td>Isn't</td>\n<td>that</td>\n<td><i>cool?</i></td>\n</tr>\n</table>","*!\"#%&/()=","*escape
< &lt; <b>no bold</b>\n\nAlso teardown of the parent
suite failed.","*<blink><b><font face=\"comic sans ms\"
size=\"42\" color=\"red\">CAN HAZ HMTL & NO
CSS?!?!??!!?</font></b></blink>, HTML","*<blink><b><font
face=\"comic sans ms\" size=\"42\" color=\"red\">CAN HAZ HMTL & NO
CSS?!?!??!!?</font></b></blink>","eNpTyymxLklMyklVSy+xVgNxiuCsFBArJCOzWAGiAi5WnJFfmpOikJFYlopNS16+QnFBanJmYg5CLC2/KDexpCQzLx0kpg+3UkfBI8TXBwBuyS8B","*<table><tr><td>This
table<td>should have<tr><td>no special<td>formatting</table>","*escape <
&lt; <b>no bold</b>","*BuiltIn.Fail","*<p>Fails the test
immediately with the given (optional) message.</p>","*Traceback (most
recent call last):\n File
\"/home/peke/Devel/robotframework/src/robot/libraries/BuiltIn.py\", line
305, in fail\n raise AssertionError(msg) if msg else
AssertionError()","*Unicode","*with unicode \u5b98\u8bdd","*hyv\u00e4\u00e4
joulua","*Complex","*<p>Test doc</p>","*owner-kekkonen","*t1","*in own
setup","*in test","*User Kw","*in User Kw","*${i} IN [ @{list} ]","*${i} =
1","*Got ${i}","*Got 1","*${i} = 2","*Got 2","*${i} = 3","*Got 3","*${i} =
4","*Got 4","*in own teardown","*Log levels","*This is a WARNING!\\n\\nWith
multiple lines., WARN","*s1-s3-t8-k2","*This is a WARNING!\n\nWith multiple
lines.","*This is info, INFO","*This is info","*This is debug,
DEBUG","*This is debug","*Multi-line failure","*Several failures
occurred:\n\n1) First failure\n\n2) Second failure\nhas
multiple\nlines\n\nAlso teardown of the parent suite failed.","*First
failure","*Second failure\\nhas multiple\\nlines","*Second failure\nhas
multiple\nlines","*Escape JS
</script>","*<p></script></p>","*</script>","*</script>\n\nAlso
teardown of the parent suite failed.","*Suite
setup","*AssertionError","*higher level suite setup","*Error in
file '/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/tests.txt'
in table 'Settings': Test library 'p\u00f6lk\u00fc/myLib.py' does not
exist."]);
-window.output["generatedTimestamp"] = "20120820 11:56:44 GMT +03:00";
-window.output["errors"] = [[79,5,123],[3341,3,106,105]];
+window.output["strings"] =
window.output["strings"].concat(["*","*<Suite.Name>","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite","*dir.suite","eNqtU91q3TAMvl6fQuQBYnpuBiX1GIzCoLs5ax/ASZTE1I6MrJD17SsnPTuno4MydiMS6dOnH+trkv1G3RJxFieeZhiIQSaEdaKAIJgF8uIFa/gagkZ8LpCYwUH286iY5NiN7NIEWRyLOmFginC8g0P9uT7U8HNJiViw31KdbBgl6jHSnIVdCbUYaK0bk+xVswQ1wdumtY/H+5vGtBYaBxPjcFtNIunGGKaWZGAXcSV+qonHyv411BhnG6OMO62336MbUYm9Evs4QubuN3NHPdYjkQ5XdxRN+oPQBBrpC/6SOs1jBeIl4D8mv21Kx73389M2797aB2Y+Fh/cnZxvJ93GhFBIP0T2f3fxboVzf2Z75onViGv1klriHvm2uq6Ka/P3ZSk/nveN6N/J9VASLrxmh7/mXJ+xh3cBA9EF3SXCbK3oR7KM4xIcl/XhfpeJNaIGtIPXU8a+dHEF0NEsqqJPq5dJ1aOSycl1mJVyS9sHPV324FmVFbwaRcbzi2VUov4cKTop1H5eVCSwFNGV8rLSJoveDwOyFgaXEpPrJswX+30B5nxQUg==","*<Escape>","*<p><
&lt; </script></p>","*Formatting","*<p><b>Bold</b> and
<i>italics</i></p>","*Image","eNqdy9ENgCAMBcBVDAPQf4M4i2KtRPA1tYmO7w7e/yXNqXYZbitTONx1JCrYOAogjWNBJyXDCt9t6fzATmoQzPx61EvC4NUb/8w5keYPXLwvxw==","*URL","*<p><a
href=\"http://robotframework.org\">http://robotframework.org</a></p>","*Test.Suite.1","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/test.suite.1.txt","*dir.suite/test.suite.1.txt","*list
test","*collections","*i1","*i2","*${list} = BuiltIn.Create
List","*<p>Returns a list containing given items.</p>","*foo, bar,
quux","*${list} = [u'foo', u'bar', u'quux']","*BuiltIn.Log","*<p>Logs the
given message with the given level.</p>","*${list}","*[u'foo', u'bar',
u'quux']","*Test.Suite.2","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/test.suite.2.txt","*dir.suite/test.suite.2.txt","*Dictionary
test","*${dict} = Collections.Create Dictionary","*<p>Creates and returns a
dictionary from the given `key_value_pairs`.</p>","*key, value","*${dict} =
{u'key': u'value'}","*${dict}","*{u'key':
u'value'}","*Tests","*/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/tests.txt","*dir.suite/tests.txt","*<p>Some
suite <i>docs</i> with links: <a
href=\"http://robotframework.org\">http://robotframework.org</a></p>","*<
&lt; \u00e4","*<p>< &lt; \u00e4</p>","*home *page*","*Suite
teardown failed:\nAssertionError","*Simple","*default with
percent %","*force","*with space","*Teardown of the parent suite
failed.","*Test Setup","*do nothing","*Test
Teardown","*Long","*long1","*long2","*long3","*BuiltIn.Sleep","*<p>Pauses
the test executed for the given time.</p>","*0.5 seconds","*Slept 500
milliseconds","*Longer","*0.7 second","*Slept 700
milliseconds","*Longest","**kek*kone*","*2 seconds","*Slept 2
seconds","*Log HTML","*<p>This test uses <i><b>formatted</b></i>
HTML.</p>\n<table
border=\"1\">\n<tr>\n<td>Isn't</td>\n<td>that</td>\n<td><i>cool?</i></td>\n</tr>\n</table>","*!\"#%&/()=","*escape
< &lt; <b>no bold</b>\n\nAlso teardown of the parent
suite failed.","*<blink><b><font face=\"comic sans ms\"
size=\"42\" color=\"red\">CAN HAZ HMTL & NO
CSS?!?!??!!?</font></b></blink>, HTML","*<blink><b><font
face=\"comic sans ms\" size=\"42\" color=\"red\">CAN HAZ HMTL & NO
CSS?!?!??!!?</font></b></blink>","eNpTyymxLklMyklVSy+xVgNxiuCsFBArJCOzWAGiAi5WnJFfmpOikJFYlopNS16+QnFBanJmYg5CLC2/KDexpCQzLx0kpg+3UkfBI8TXBwBuyS8B","*<table><tr><td>This
table<td>should have<tr><td>no special<td>formatting</table>","*escape <
&lt; <b>no bold</b>","*BuiltIn.Fail","*<p>Fails the test
with the given message and optionally alters its tags.</p>","*Traceback
(most recent call last):\n File
\"/home/peke/Devel/robotframework/src/robot/libraries/BuiltIn.py\", line
326, in fail\n raise AssertionError(msg) if msg else
AssertionError()","*Unicode","*with unicode \u5b98\u8bdd","*hyv\u00e4\u00e4
joulua","*Complex","*<p>Test doc</p>","*owner-kekkonen","*t1","*in own
setup","*in test","*User Kw","*in User Kw","*${i} IN [ @{list} ]","*${i} =
1","*Got ${i}","*Got 1","*${i} = 2","*Got 2","*${i} = 3","*Got 3","*${i} =
4","*Got 4","*in own teardown","*Log levels","*This is a WARNING!\\n\\nWith
multiple lines., WARN","*s1-s3-t8-k2","*This is a WARNING!\n\nWith multiple
lines.","*This is info, INFO","*This is info","*This is debug,
DEBUG","*This is debug","*Multi-line failure","*Several failures
occurred:\n\n1) First failure\n\n2) Second failure\nhas
multiple\nlines\n\nAlso teardown of the parent suite failed.","*First
failure","*Second failure\\nhas multiple\\nlines","*Second failure\nhas
multiple\nlines","*Escape JS
</script>","*<p></script></p>","*</script>","*</script>\n\nAlso
teardown of the parent suite failed.","*Suite
setup","*AssertionError","*higher level suite setup","*Error in
file '/home/peke/Devel/robotframework/src/robot/htmldata/testdata/dir.suite/tests.txt'
in table 'Settings': Test library 'p\u00f6lk\u00fc/myLib.py' does not
exist."]);
+window.output["generatedTimestamp"] = "20121021 15:14:48 GMT +03:00";
+window.output["errors"] = [[76,5,123],[3334,3,106,105]];
window.output["stats"] =
[[{"elapsed":"00:00:01","fail":8,"label":"Critical
Tests","pass":2},{"elapsed":"00:00:03","fail":10,"label":"All
Tests","pass":2}],[{"doc":"Me, myself, and
I.","elapsed":"00:00:03","fail":10,"info":"critical","label":"i1","links":"Title
of i1:http://1/:::Title:http://i/","pass":2},{"doc":"Me, myself, and
I.","elapsed":"00:00:03","fail":10,"info":"critical","label":"i2","links":"Title
of
i2:http://2/","pass":2},{"elapsed":"00:00:02","fail":1,"info":"non-critical","label":"*kek*kone*","pass":0},{"elapsed":"00:00:00","fail":1,"info":"non-critical","label":"owner-kekkonen","pass":0},{"combined":"<*>","elapsed":"00:00:00","fail":1,"info":"combined","label":"<any>","pass":0},{"combined":"i?","doc":"*Combined*
and escaped <&lt; tag doc & Me, myself, and
I.","elapsed":"00:00:03","fail":10,"info":"combined","label":"IX","links":"Title
of iX:http://X/","pass":2},{"combined":"foo AND
i*","elapsed":"00:00:00","fail":0,"info":"combined","label":"No
Match","pass":0},{"elapsed":"00:00:00","fail":1,"label":"!\"#%&/()=","pass":0},{"elapsed":"00:00:03","fail":10,"label":"<
&lt;
\u00e4","pass":0},{"doc":"<doc>","elapsed":"00:00:00","fail":1,"label":"</script>","links":"<title>:<url>","pass":0},{"elapsed":"00:00:00","fail":0,"label":"collections","pass":2},{"elapsed":"00:00:00","fail":3,"label":"default
with
percent %","pass":0},{"elapsed":"00:00:03","fail":10,"label":"force","links":"<kuukkeli&gt;:http://google.com","pass":0},{"elapsed":"00:00:01","fail":1,"label":"long1","pass":0},{"elapsed":"00:00:01","fail":2,"label":"long2","pass":0},{"elapsed":"00:00:03","fail":3,"label":"long3","pass":0},{"elapsed":"00:00:00","fail":1,"label":"t1","links":"Title:http://t/","pass":0},{"elapsed":"00:00:03","fail":10,"label":"with
space","pass":0},{"elapsed":"00:00:00","fail":1,"label":"with unicode
\u5b98\u8bdd","pass":0}],[{"elapsed":"00:00:03","fail":10,"id":"s1","label":"<Suite.Name>","name":"<Suite.Name>","pass":2},{"elapsed":"00:00:00","fail":0,"id":"s1-s1","label":"<Suite.Name>.Test.Suite.1","name":"Test.Suite.1","pass":1},{"elapsed":"00:00:00","fail":0,"id":"s1-s2","label":"<Suite.Name>.Test.Suite.2","name":"Test.Suite.2","pass":1},{"elapsed":"00:00:03","fail":10,"id":"s1-s3","label":"<Suite.Name>.Tests","name":"Tests","pass":0}]];
-window.output["generatedMillis"] = 2659;
-window.output["baseMillis"] = 1345453001341;
-window.settings =
{"background":{"fail":"DeepPink"},"defaultLevel":"DEBUG","logURL":"log.html","minLevel":"DEBUG","reportURL":"report.html"};
+window.output["generatedMillis"] = 2778;
+window.output["baseMillis"] = 1350821685222;
+window.settings =
{"background":{"fail":"DeepPink"},"defaultLevel":"DEBUG","logURL":"log.html","minLevel":"DEBUG","reportURL":"report.html","title":"This
is a long long title. A very long title indeed. And it even contains some
stuff to <esc&ape>. Yet it should still look good."};