Revision: 3547
Author: pekka.klarck
Date: Wed May 26 04:50:48 2010
Log: format
http://code.google.com/p/robotframework/source/detail?r=3547
Added:
/trunk/atest/robot/rebot/commandline.txt
Deleted:
/trunk/atest/robot/rebot/commandline.html
=======================================
--- /dev/null
+++ /trunk/atest/robot/rebot/commandline.txt Wed May 26 04:50:48 2010
@@ -0,0 +1,251 @@
+*** Settings ***
+Documentation Testing Rebot's command line functionality. Functionality
tested elsewere:\n - filtering by tags/names\n - combining outputs\n -
creating correct html (incl. --xxxtitle options)
+Suite Setup My Setup
+Suite Teardown Remove Temps
+Test Setup Empty Directory ${MYOUTDIR}
+Force Tags regression pybot jybot
+Resource atest_resource.txt
+
+*** Variables ***
+${TESTFILE} misc${/}normal.html
+${PASS_FAIL_FILE} misc${/}pass_and_fail.html
+${MYOUTDIR} ${TEMPDIR}${/}robot-test-145435
+${MYINPUT} ${TEMPDIR}${/}robot-test-145435.xml
+${M_211_211} 2 critical tests, 1 passed, 1 failed\n 2 tests total, 1
passed, 1 failed
+${M_110_211} 1 critical test, 1 passed, 0 failed\n 2 tests total, 1
passed, 1 failed
+${M_101_211} 1 critical test, 0 passed, 1 failed\n 2 tests total, 1
passed, 1 failed
+${M_000_211} 0 critical tests, 0 passed, 0 failed\n 2 tests total, 1
passed, 1 failed
+${USAGE_TIP} \n\nTry --help for usage information.
+
+*** Test Cases ***
+Output Only
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} --output
myoutput.xml --log none --report none ${MYINPUT}
+ Directory Should Contain ${MYOUTDIR} myoutput.xml
+
+Report Only
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} --output
none --report myreport.html --log NONE --summary none ${MYINPUT}
+ Directory Should Contain ${MYOUTDIR} myreport.html
+
+Log Only
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} --output
None --report NONE --log mylog.html -S none ${MYINPUT}
+ Directory Should Contain ${MYOUTDIR} mylog.html
+
+Summary Only
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} -o none
--summary mysummary.html -l none -r NONE ${MYINPUT}
+ Directory Should Contain ${MYOUTDIR} mysummary.html
+
+All Outputs
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} --output
myoutput.xml --report myreport.html --log mylog.html -S mysummary.html
${MYINPUT}
+ Directory Should Contain ${MYOUTDIR} mylog.html myoutput.xml
myreport.html mysummary.html
+
+All Outputs With Default Names
+ Verify REBOT Set
+ Run ${REBOT} --outputdir ${MYOUTDIR} ${MYINPUT}
+ Directory Should Contain ${MYOUTDIR} log.html report.html
+
+All Outputs Without Extensions
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} -o
myoutput -r myreport -l mylog --summary mysummary ${MYINPUT}
+ Directory Should Contain ${MYOUTDIR} mylog.html myoutput.xml
myreport.html mysummary.html
+
+Outputs Into Different Dirs
+ Run Rebot Without Processing Output --outputdir ::invalid:: -o
${MYOUTDIR}${/}o${/}o.xml -r ${MYOUTDIR}${/}r${/}r.html -l
${MYOUTDIR}${/}l${/}l.html --summary ${MYOUTDIR}${/}s.htm ${MYINPUT}
+ Directory Should Contain ${MYOUTDIR}${/}o o.xml
+ Directory Should Contain ${MYOUTDIR}${/}r r.html
+ Directory Should Contain ${MYOUTDIR}${/}l l.html
+ Directory Should Contain ${MYOUTDIR} l o r s.htm
+
+Timestamped Outputs
+ Verify REBOT Set
+ Run ${REBOT} --outputdir ${MYOUTDIR} --TimeStampOutputs ${MYINPUT}
+ @{files} = List Directory ${MYOUTDIR}
+ Should Be True len(@{files}) == 2
+ :FOR ${file} IN @{files}
+ \ Fail Unless Regexp Matches ${file} (log|
report)-20\\d{6}-\\d{6}\\.html
+
+Timestamped Outputs With Names
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR}
--TimeStampOutputs -l l -r r.html -o o -S s ${MYINPUT}
+ @{files} = List Directory ${MYOUTDIR}
+ Should Be True len(@{files}) == 4
+ :FOR ${file} IN @{files}
+ \ Fail Unless Regexp Matches ${file} (l|o|r|
s)-20\\d{6}-\\d{6}\\.(html|xml)
+
+Default Name, Doc & Metadata
+ [Documentation] Using default values (read from xml) for name, doc
and metadata. Tests are run together to have less Rebot runs with same
input i.e. to have faster execution.
+ Run Rebot ${EMPTY} ${MYINPUT}
+ Check Names ${SUITE} Normal
+ Check Names ${SUITE.tests[0]} First One Normal.
+ Check Names ${SUITE.tests[1]} Second One Normal.
+ Should Be Equal ${SUITE.doc} Normal test cases
+ Should Be Equal ${SUITE.metadata['Something']} My Value
+
+Overriding Name, Doc & Metadata And Escaping
+ [Documentation] Overriding name, doc and metadata. Also testing
escaping values. Tests are run together to have less Rebot runs with same
input i.e. to have faster execution.
+ Run Rebot -N this_is_overridden_next --name my_COOL_NameEXEX --doc
Even_cooooler_docEXQU --metadata Something:New --metadata
two_parts:three_parts_here -M esc:STQUDOAMHAEXEX --escape star:ST -E
quest:QU -E dollar:DO -E amp:AM -E hash:HA -E exclam:EX ${MYINPUT}
+ Check Names ${SUITE} my COOL Name!!
+ Check Names ${SUITE.tests[0]} First One my COOL Name!!.
+ Check Names ${SUITE.tests[1]} Second One my COOL Name!!.
+ Should Be Equal ${SUITE.doc} Even cooooler doc!?
+ Should Be Equal ${SUITE.metadata['Something']} New
+ Should Be Equal ${SUITE.metadata['two parts']} three parts here
+ Should Be Equal ${SUITE.metadata['esc']} *?$&#!!
+
+Invalid Options
+ Run Rebot Without Processing Output --invalid option ${MYINPUT}
+ Check Stderr Contains option --invalid not recognized\n \n Try --help
for usage information.
+ Run Rebot Without Processing Output --name valid -X ${MYINPUT}
+ Check Stderr Contains option -X not recognized\n \n Try --help for
usage information.
+
+It Should Be Possible To Use Wildcards In Datasources
+ Set Test Variable $OUTPUTNAME mysuite
+ Copy File ${MYINPUT} ${OUTDIR}${/}runningwild-1.xml
+ Copy File ${MYINPUT} ${OUTDIR}${/}runningwild-2.xml
+ Run Rebot ${EMPTY} ${OUTDIR}${/}*wild-?.xml
+ Should Be True ${SUITE.suites} == ['Normal'] * 2
+
+No Input
+ Verify REBOT Set
+ ${output} = Run ${REBOT} 2>&1
+ Should End With ${output} Expected at least 1 argument, got
0.${USAGE_TIP}
+
+Non-Existing Input
+ Run Rebot Without Processing Output ${EMPTY} non-existing.xml
+ Check Stderr Matches Regexp .*Output
file '.*[/\\\\]non-existing\\.xml' does not exist.\n\n Try --help for usage
information.
+
+Non-XML Input
+ Create File ${MYOUTDIR}${/}invalid.txt Hello, world
+ Run Rebot Without Processing Output ${EMPTY}
${MYOUTDIR}${/}invalid.txt
+ Check Stderr Matches Regexp (\\[Fatal Error\\] .*: Content is not
allowed in prolog.\\n)?\\[ ERROR \\] Opening XML
file '.*[/\\\\]invalid.txt' failed: .*
+ Check Syslog Matches Regexp .*| INFO | Traceback (most recent call
last):\\n File ".*readers.py", line .*, in process_output.*
+
+Non-Compatible Input
+ [Documentation] Test handlig xml files not compatible with Robot
+ Create File ${MYOUTDIR}${/}invalid.xml <not><our>type</our></not>
+ Run Rebot Without Processing Output ${EMPTY}
${MYOUTDIR}${/}invalid.xml
+ Check Stderr Matches Regexp \\[ ERROR \\] File '.*[/\\\\]invalid.xml'
is not Robot Framework output file.${USAGE_TIP}
+
+Invalid Output Dirs
+ [Documentation] Test error handling when some of the output dirs
(where to write output, report, etc.) is invalid (i.e. can't be created).
To make sure creating dirs fails their names are non-standard (that's not
enough in Linux) parent is made read only.
+ Create Directory ${MYOUTDIR}${/}x
+ Set Read Only ${MYOUTDIR}${/}x
+ Run Rebot Without Processing Output --outputdir
${MYOUTDIR}${/}x${/}:i --output default ${MYINPUT}
+ Check Stderr Matches Regexp \\[ ERROR \\] Can't create output file's
parent directory '.*[/\\\\]x[/\\\\]:i\\\\?': (OS|IO|
Windows)Error: .*${USAGE_TIP}
+ Run Rebot Without Processing Output --outputdir
${MYOUTDIR}${/}x${/}hello:world --output none --report default ${MYINPUT}
+ Check Stderr Matches Regexp \\[ ERROR \\] Can't create report file's
parent directory '.*[/\\\\]x[/\\\\]hello:world': (OS|IO|
Windows)Error: .*${USAGE_TIP}
+ [Teardown] Set Read Write ${MYOUTDIR}${/}x
+
+Invalid Output Files
+ [Documentation] Test error handling when some of the output files
(output, report, etc.) is invalid (i.e. can't be opened)
+ Create Directory ${MYOUTDIR}${/}directory.ext
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} --output
directory.ext ${MYINPUT}
+ Check Stderr Matches Regexp \\[ ERROR \\] Opening output
file '.*[/\\\\]directory.ext' for writing failed: (IOError|
FileNotFoundException): .*${USAGE_TIP}
+ Run Rebot Without Processing Output --outputdir ${MYOUTDIR} --summary
directory.ext --report r.html ${MYINPUT}
+ Check Stderr Matches Regexp \\[ ERROR \\] Opening summary
file '.*[/\\\\]directory.ext' for writing failed: (IOError|
FileNotFoundException): .*
+
+Help
+ Verify REBOT Set
+ ${rc} ${help} = Run And Return Rc And Output ${REBOT} --help 2>&1
+ Should Be Equal ${rc} ${251}
+ Log ${help.replace(' ','_').replace('\\t','_'*8)}
+ Should Start With ${help} Rebot -- Robot Framework Report and Log
Generator\n \n Version: \
+ Should End With ${help} \n\n# Running 'robot/rebot.py' directly and
creating combined outputs.\n $ python /path/robot/rebot.py -N Project_X -l
x.html -r x.html outputs/*.xml\n
+ Should Not Contain ${help} ERROR
+ @{lines} = Evaluate [ '%d\\t%s' % (len(line), line) for line in
${help.splitlines()} ]
+ Log Many @{lines}
+ @{long} = Evaluate [ line for line in ${help.splitlines()} if
len(line) - line.count('\\\\') >= 80 ]
+ Log Many @{long}
+ Should Be True len(@{long}) == 0 Too long (>= 80) help line(s)
+ ${help2} = Run ${REBOT} -h 2>&1
+ Should Be Equal ${help} ${help2}
+
+Version
+ Verify REBOT Set
+ ${rc} ${output} = Run And Return Rc And Output ${REBOT} --version
2>&1
+ Should Be Equal ${rc} ${251}
+ Log ${output}
+ Should Match Regexp ${output} ^Rebot (2\\.\\d+(\\.\\d+)?( (alpha|
beta|rc)\\d*)?|trunk 2\\d{7}) \\([PJ]ython 2\\.[\\d.]+ on .+\\)$
+ Should Be True len("${output}") < 80 Too long version line
+
+Argument File
+ Verify REBOT Set
+ Create File ${MYOUTDIR}${/}a.txt --name From_Arg_File\n -c c1\n #
comment line\n --log none\n -r none\n --output ${MYOUTDIR}${/}output.xml\n
${MYINPUT}
+ ${output} = Run ${REBOT} --critical c2 --argumentfile
${MYOUTDIR}${/}a.txt 2>&1
+ Should Not Contain ${output} ERROR
+ Process Output ${MYOUTDIR}${/}output.xml
+ Should Be Equal ${SUITE.name} From Arg File
+ Should Be True ${SUITE.critical.tags} == []
+
+Setting Syslog File
+ Set Environment Variable ROBOT_SYSLOG_FILE ${MYOUTDIR}${/}syslog.txt
+ Rebot Something
+ File Should Not Be Empty ${MYOUTDIR}${/}syslog.txt
+ Remove File ${MYOUTDIR}${/}syslog.txt
+ Delete Environment Variable ROBOT_SYSLOG_FILE
+ Rebot Something
+ File Should Not Exist ${MYOUTDIR}${/}syslog.txt
+ Set Environment Variable ROBOT_SYSLOG_FILE none
+ Rebot Something
+ File Should Not Exist ${MYOUTDIR}${/}syslog.txt
+
+Setting Syslog Level
+ Set Environment Variable ROBOT_SYSLOG_FILE ${MYOUTDIR}${/}syslog.txt
+ Set Environment Variable ROBOT_SYSLOG_LEVEL INFO
+ Rebot Something
+ ${size1} = Get File Size ${MYOUTDIR}${/}syslog.txt
+ Set Environment Variable ROBOT_SYSLOG_LEVEL DEBUG
+ Rebot Something
+ ${size2} = Get File Size ${MYOUTDIR}${/}syslog.txt
+ Should Be True 0 < ${size1} <= ${size2}
+ Set Environment Variable ROBOT_SYSLOG_LEVEL warn
+ Rebot Something
+ File Should Be Empty ${MYOUTDIR}${/}syslog.txt
+ [Teardown] Set Environment Variable ROBOT_SYSLOG_LEVEL INFO
+
+Correct RC When Invalid Data
+ ${rc} = Run And Return Rc ${REBOT} 2>&1
+ Should Be Equal ${rc} ${252}
+
+Invalid Argument Values
+ Run Rebot --splitoutputs not_int --suitestatlevel not_int
--tagstatlink less_than_3x_: ${MYINPUT}
+ Verify Correct Errors in Stderr Option '--suitestatlevel' expected
integer value but got 'not_int'. Default value used instead.\n
+ Verify Correct Errors in Stderr Option '--splitoutputs' expected
integer value but got 'not_int'. Default value used instead.\n
+ Verify Correct Errors in Stderr Invalid format for
option '--tagstatlink'. Expected 'tag:link:title' but
got 'less_than_3x_:'.\n
+ Should Be Equal ${SUITE.status} PASS
+
+*** Keywords ***
+My Setup
+ Run Tests Without Processing Output ${EMPTY} ${TESTFILE}
+ Move File ${OUTFILE} ${MYINPUT}
+ Create Directory ${MYOUTDIR}
+
+Remove Temps
+ Remove Directory ${MYOUTDIR} recursively
+ Remove File ${MYINPUT}
+
+Directory Should Contain
+ [Arguments] ${dir_path} @{exp_files}
+ ${act_files} = List Directory ${dir_path}
+ Should Be Equal ${act_files} ${exp_files}
+
+Test Critical
+ [Arguments] ${opts} ${input} ${status} ${msg} ${crit_tags}
${crit1} ${crit2}
+ Set Suite Variable $SUITE ${None}
+ Run Rebot ${opts} ${input}
+ Should Be Equal ${SUITE.status} ${status}
+ Should Be Equal ${SUITE.get_full_message()} ${msg}
+ Should Be True ${SUITE.critical_tags} == ${crit_tags}
+ Should Be Equal ${SUITE.tests[0].critical} ${crit1}
+ Should Be Equal ${SUITE.tests[1].critical} ${crit2}
+
+Verify REBOT Set
+ Should Not Be Equal ${REBOT} \ This test can be run only after
\${REBOT} is set No Values
+
+Rebot Something
+ Verify REBOT Set
+ Run ${REBOT} --outputdir ${MYOUTDIR} ${MYINPUT}
+
+Verify Correct Errors In Stderr
+ [Arguments] @{messages}
+ ${error} = Set Variable If os.sep=='/' ERROR [ ERROR ]
+ Check Stderr Contains ${error}
+ Check Stderr Contains @{messages}
+
=======================================
--- /trunk/atest/robot/rebot/commandline.html Tue May 25 07:00:21 2010
+++ /dev/null
@@ -1,2137 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head>
-<meta name="generator" content="HTML Tidy for Mac OS X (vers 31 October
2006 - Apple Inc. build 13), see www.w3.org">
-
-<style type="text/css">
-html { font-family: Arial,Helvetica,sans-serif;
-background-color: white;
-color: black;
-}
-p { max-width: 60em;
-}
-table { border-collapse: collapse;
-empty-cells: show;
-margin: 1em 0em;
-border: 0.1em solid black;
-}
-th, td {
-border-style: solid;
-border-width: 0.05em 0.1em;
-border-color: black;
-padding: 0.1em 0.2em;
-height: 1.5em;
-}
-th {
-background-color: rgb(192, 192, 192);
-color: black;
-border-width: 0.1em;
-font-weight: bold;
-text-align: center;
-text-transform: capitalize;
-letter-spacing: 0.1em;
-}
-/* Widths of named columns */
-col.name {
-width: 10em;
-}
-.action , .value, .arg {
-width: 15em;
-}
-/* Properties for the name column - td:first-child should work in CSS 2.1
avare browsers (tested in Firefox)
-- col.name is against specs but works in IE
-*/
-td:first-child, col.name {
-background-color: rgb(240, 240, 240);
-text-transform: capitalize;
-letter-spacing: 0.1em;
-}
-th { font-style: normal; } /* required for IE */
-
-
-</style>
-
-<title>Robot Test Cases</title><link type="text/css"
href="resources/css/testdata.css" rel="stylesheet"></head>
-<body>
-<h1>Robot Acceptance Test Cases for Rebot</h1>
-<table border="1">
-<colgroup span="99"><col class="name"><col class="value"
span="4"></colgroup>
-<thead>
-<tr>
-<th>Setting</th>
-<th>Value</th>
-<th>Value</th>
-<th>value</th>
-<th>Value</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="undefined" valign="undefined">Documentation</td>
-<td align="undefined" valign="undefined">Testing Rebot's command
-line functionality.</td>
-<td align="undefined" valign="undefined">Functionality tested
-elsewere:\n<br>
-- filtering by tags/names\n<br>
-- combining outputs\n<br>
-- creating correct html (incl. --xxxtitle options)</td>
-<td align="undefined" valign="undefined"></td>
-<td align="undefined" valign="undefined"></td>
-</tr>
-<tr>
-<td>Force Tags</td>
-<td>regression</td>
-<td>pybot</td>
-<td>jybot</td>
-<td></td>
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td><br></td>
-<td></td>
-</tr>
-<tr>
-<td>Suite Setup</td>
-<td>My Setup</td>
-<td></td>
-<td><br></td>
-<td></td>
-</tr>
-<tr>
-<td>Test Setup</td>
-<td>Empty Directory</td>
-<td>${MYOUTDIR}</td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>Suite Teardown</td>
-<td>Remove Temps</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>Resource</td>
-<td>atest_resource.txt</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-</tbody>
-</table>
-<table border="1">
-<colgroup span="99"><col class="name"><col class="value"
span="4"></colgroup>
-<thead>
-<tr>
-<th>Variable</th>
-<th>Value</th>
-<th>Value</th>
-<th>Value</th>
-<th>Value</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>${TESTFILE}</td>
-<td>misc${/}normal.html</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${PASS_FAIL_FILE}</td>
-<td>
-misc${/}pass_and_fail.html</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${MYOUTDIR}</td>
-<td>
-${TEMPDIR}${/}robot-test-145435</td>
-<td><br></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${MYINPUT}</td>
-<td>
-${TEMPDIR}${/}robot-test-145435.xml</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${M_211_211}</td>
-<td>2 critical tests, 1
-passed, 1 failed\n<br>
-2 tests total, 1 passed, 1 failed</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${M_110_211}</td>
-<td>1 critical test, 1 passed,
-0 failed\n<br>
-2 tests total, 1 passed, 1 failed</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${M_101_211}</td>
-<td>1 critical test, 0 passed,
-1 failed\n<br>
-2 tests total, 1 passed, 1 failed</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${M_000_211}</td>
-<td>0 critical tests, 0
-passed, 0 failed\n<br>
-2 tests total, 1 passed, 1 failed</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr>
-<td>${USAGE_TIP}</td>
-<td>\n\nTry --help for usage
-information.</td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-</tbody>
-</table>
-<table border="1">
-<colgroup span="99"><col class="name"><col class="value"
span="4"></colgroup>
-<thead>
-<tr>
-<th>Test Case</th>
-<th>Action</th>
-<th>Argument</th>
-<th>Argument</th>
-<th>Argument</th>
-
-
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>Output Only</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ${MYOUTDIR}<br>
---output myoutput.xml<br>
---log none<br>
---report none</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>myoutput.xml</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Report Only</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ${MYOUTDIR}<br>
---output none<br>
---report myreport.html<br>
---log NONE<br>
---summary none</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>myreport.html</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Log Only</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ${MYOUTDIR}<br>
---output None<br>
---report NONE<br>
---log mylog.html<br>
--S none</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>mylog.html</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Summary Only</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ${MYOUTDIR}<br>
--o none<br>
---summary mysummary.html<br>
--l none<br>
--r NONE</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>mysummary.html</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>All Outputs</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ${MYOUTDIR}<br>
---output myoutput.xml<br>
---report myreport.html<br>
---log mylog.html<br>
--S mysummary.html</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>mylog.html</td>
-<td>myoutput.xml</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>...</td>
-<td>myreport.html</td>
-<td>mysummary.html</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>All Outputs With Default Names</td>
-<td>Verify REBOT Set</td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td><br></td>
-<td>Run </td>
-<td>${REBOT} --outputdir ${MYOUTDIR} ${MYINPUT}</td>
-<td><br></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>log.html</td>
-<td>report.html</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>All outputs without
-Extensions</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ${MYOUTDIR}<br>
--o myoutput<br>
--r myreport<br>
--l mylog<br>
---summary mysummary</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>mylog.html</td>
-<td>myoutput.xml</td>
-
-
-</tr>
-<tr><td></td><td>...</td><td>myreport.html</td><td>mysummary.html</td><td></td></tr><tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Outputs Into Different
-Dirs</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ::invalid::<br>
--o ${MYOUTDIR}${/}o${/}o.xml<br>
--r ${MYOUTDIR}${/}r${/}r.html<br>
--l ${MYOUTDIR}${/}l${/}l.html<br>
---summary ${MYOUTDIR}${/}s.htm<br></td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}${/}o</td>
-<td>o.xml</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}${/}r</td>
-<td>r.html</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}${/}l</td>
-<td>l.html</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Directory Should
-Contain</td>
-<td>${MYOUTDIR}</td>
-<td>l</td>
-<td>o</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>...</td>
-<td>r</td>
-<td>s.htm</td>
-<td></td>
-
-
-</tr>
-<tr><td></td><td></td><td></td><td></td><td></td></tr><tr>
-<td>Timestamped outputs</td>
-<td>Verify REBOT Set</td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Run </td>
-<td>${REBOT}<br>
---outputdir ${MYOUTDIR}<br>
---TimeStampOutputs<br>
-${MYINPUT}</td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>@{files}=</td>
-<td style="width: 58px;">List
-Directory</td>
-<td style="width: 79px;">
-${MYOUTDIR}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be True</td>
-<td>len(@{files}) == 2</td>
-<td> </td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>: FOR</td>
-<td>${file}</td>
-<td>IN </td>
-<td>@{files}</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td>Fail Unless Regexp Matches</td>
-<td>${file}</td>
-<td>(log|report)-20\\d{6}-\\d{6}\\.html</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Timestamped outputs With names</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--outputdir ${MYOUTDIR}<br>
---TimeStampOutputs<br>
--l l<br>
--r r.html<br>
--o o<br>
--S s</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>@{files}=</td>
-<td style="width: 58px;">List
-Directory</td>
-<td style="width: 79px;">
-${MYOUTDIR}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be True</td>
-<td>len(@{files}) == 4</td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>: FOR</td>
-<td>${file}</td>
-<td>IN </td>
-<td>@{files}</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td>Fail Unless Regexp Matches</td>
-<td>${file}</td>
-<td>(l|o|r|s)-20\\d{6}-\\d{6}\\.(html|xml)</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Default Name, Doc &
-Metadata</td>
-<td>[ Document ]</td>
-<td>Using default values (read
-from xml) for name, doc and metadata.</td>
-<td>Tests are run together to
-have less Rebot runs with same input i.e. to have faster
-execution.</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td><br></td>
-<td>Run Rebot </td>
-<td><br></td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Names</td>
-<td>${SUITE}</td>
-<td>Normal</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Names</td>
-<td>${SUITE.tests[0]}</td>
-<td>First One<br></td>
-<td>Normal.</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Names</td>
-<td>${SUITE.tests[1]}</td>
-<td>Second One<br></td>
-<td>Normal.</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be Equal</td>
-<td>${SUITE.doc}</td>
-<td>Normal test cases</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be Equal</td>
-<td>
-${SUITE.metadata['Something']}</td>
-<td>My Value</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Overriding Name, Doc &
-Metadata And Escaping</td>
-<td>[ Document ]</td>
-<td>Overriding name, doc and
-metadata. Also testing escaping values.</td>
-<td>Tests are run together to
-have less Rebot runs with same input i.e. to have faster
-execution.</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Run Rebot </td>
-<td>-N this_is_overridden_next<br>
---name my_COOL_NameEXEX<br>
---doc Even_cooooler_docEXQU<br>
---metadata Something:New<br>
---metadata two_parts:three_parts_here<br>
--M esc:STQUDOAMHAEXEX<br>
---escape star:ST -E quest:QU<br>
--E dollar:DO -E amp:AM<br>
--E hash:HA -E exclam:EX</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Names</td>
-<td>${SUITE}</td>
-<td>my COOL Name!!</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Names</td>
-<td>${SUITE.tests[0]}</td>
-<td>First One<br></td>
-<td>my COOL Name!!.</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Names</td>
-<td>${SUITE.tests[1]}</td>
-<td>Second One<br></td>
-<td>my COOL Name!!.</td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be Equal</td>
-<td>${SUITE.doc}</td>
-<td>Even cooooler doc!?</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be Equal</td>
-<td>
-${SUITE.metadata['Something']}</td>
-<td>New</td>
-<td></td>
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be Equal</td>
-<td>${SUITE.metadata['two parts']}</td>
-<td>three parts here</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be Equal</td>
-<td>
-${SUITE.metadata['esc']}</td>
-<td>*?$&#!!</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>invalid Options</td>
-<td>Run Rebot Without Processing Output</td>
-<td>--invalid option</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Stderr Contains</td>
-<td>option --invalid not
-recognized\n<br>
-\n<br>
-Try --help for usage information.<br>
-<br></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Run Rebot Without Processing Output</td>
-<td>--name valid -X</td>
-<td>${MYINPUT}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Check Stderr Contains</td>
-<td>option -X not
-recognized\n<br>
-\n<br>
-Try --help for usage information.<br></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>It Should Be possible to use wildcards in datasources</td>
-<td>Set Test Variable</td>
-<td>$OUTPUTNAME</td>
-<td>mysuite</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Copy File</td>
-<td>${MYINPUT}</td>
-<td>${OUTDIR}${/}runningwild-1.xml</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Copy File</td>
-<td>${MYINPUT}</td>
-<td>${OUTDIR}${/}runningwild-2.xml</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Run Rebot</td>
-<td></td>
-<td>${OUTDIR}${/}*wild-?.xml</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should Be True</td>
-<td>${SUITE.suites} == ['Normal'] * 2</td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>No Input</td>
-<td>Verify REBOT Set</td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td><br></td>
-<td>${output} =</td>
-<td>Run</td>
-<td>${REBOT} 2>&1</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td>Should End With</td>
-<td>${output}</td>
-<td>Expected at least 1 argument, got 0.${USAGE_TIP}</td>
-<td></td>
-
-
-</tr>
-<tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-
-
-</tr>
-<tr>
-<td>Non-Existing Input</td>
-<td>Run Rebot Without Processing Output</td>
-<td></td>
-<td>non-existing.xml</td>
-<td></td>
-
-
-</tr>
-
-<tr>
-<td></td>
-<td>Check Stderr Matches
-Regexp</td>
-<td>.*Output file
-'.*[/\\\\]non-existing\\.xml' does not exist.\n\n<br>
-Try --help for usage information.</td>
-<td></td>
-<td></td>
-
-
-</tr>
***The diff for this file has been truncated for email.***