2 new revisions:
Revision: 62b675f7e676
Branch: default
Author: Jussi Malinen <jussi.ao.mali...@gmail.com>
Date: Tue Jun 11 05:57:43 2013
Log: fix example in process library
http://code.google.com/p/robotframework/source/detail?r=62b675f7e676
Revision: 5fc00314dcfc
Branch: default
Author: Jussi Malinen <jussi.ao.mali...@gmail.com>
Date: Tue Jun 11 05:57:59 2013
Log: regen
http://code.google.com/p/robotframework/source/detail?r=5fc00314dcfc
==============================================================================
Revision: 62b675f7e676
Branch: default
Author: Jussi Malinen <jussi.ao.mali...@gmail.com>
Date: Tue Jun 11 05:57:43 2013
Log: fix example in process library
http://code.google.com/p/robotframework/source/detail?r=62b675f7e676
Modified:
/src/robot/libraries/Process.py
=======================================
--- /src/robot/libraries/Process.py Tue Jun 11 05:45:43 2013
+++ /src/robot/libraries/Process.py Tue Jun 11 05:57:43 2013
@@ -65,8 +65,8 @@
using this approach the caller is responsible on escaping.
Examples:
- | `Run Process` | ${progdir}/prog.exe | first arg |
second |
- | `Run Process` | prog1.py arg && prog2.py | shell=yes |
cwd=${progdir} |
+ | `Run Process` | ${progdir}${/}prog.py | first arg |
second |
+ | `Run Process` | script1.sh arg && script2.sh | shell=yes |
cwd=${progdir} |
= Process configuration =
==============================================================================
Revision: 5fc00314dcfc
Branch: default
Author: Jussi Malinen <jussi.ao.mali...@gmail.com>
Date: Tue Jun 11 05:57:59 2013
Log: regen
http://code.google.com/p/robotframework/source/detail?r=5fc00314dcfc
Modified:
/doc/libraries/Process.html
=======================================
--- /doc/libraries/Process.html Tue Jun 11 05:40:02 2013
+++ /doc/libraries/Process.html Tue Jun 11 05:57:59 2013
@@ -169,7 +169,7 @@
(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|
\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var
c={data:e||(e===0||
e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||
null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt|
|c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return
c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var
g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||
{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return
g}});a.fn.extend({tmpl:function(d,c,b){return
a.tmpl(this[0],d,c,b)},tmplItem:function(){return
a.tmplItem(this[0])},template:function(b){return
a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var
g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else
r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return
this}});a.extend({tmpl:function(d,h,e,c){var
i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else
if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return
a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c|
|{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return
a?g(e,c,d,a):null}):[g(e,c,d,h)];return
k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof
a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return
c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b
instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||
a.data(b,"tmpl",o(b.innerHTML));return typeof
c==="string"?(a.template[c]=b):b}return c?typeof
c!=="string"?a.template(null,c):a.template[c]||
a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index,
$value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1)
&& $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else
if(($notnull_1) &&
$1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var
e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function
j(e,g,f){var b,c=f?a.map(f,function(a){return typeof
a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'"
$2'):a:j(a,e,a._ctnt)}):e;if(g)return
c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return
b?b:k(c)}function k(c){var
b=document.createElement("div");b.innerHTML=c;return
a.makeArray(b.childNodes)}function o(b){return new
Function("jQuery","$item","var
$=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{=
$1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|
\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|
\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var
j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||
[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else
f=e=i.$1|
|"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined'
&&
("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g|
|i.$2||"")+"__.push('"})+"');}return __;")}function
n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function
h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function
s(b){var
a=document.createElement("div");a.appendChild(b.cloneNode(true));return
a.innerHTML}function m(o){var
n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function
m(j){var
p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)|
|0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||
f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else
if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete
e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function
o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function
u(a,d,c,b){if(!a)return
l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function
w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var
c=b.options||{};c.wrapped=d;return
a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var
b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d|
|"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||
s(a)})}function t(){var
b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
</script>
<script type="text/javascript">
-libdoc = {"doc":"<p>Robot Framework test library for running
processes.</p>\n<p>This library utilizes Python's <a
href=\"http://docs.python.org/2.7/library/subprocess.html\">subprocess</a>
module and its <a
href=\"http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen\">Popen</a>
class.</p>\n<p>The library has following main
usages:</p>\n<ul>\n<li>Running processes in system and waiting for their
completion using <a href=\"#Run Process\" class=\"name\">Run Process</a>
keyword.</li>\n<li>Starting processes on background using <a href=\"#Start
Process\" class=\"name\">Start Process</a>.</li>\n<li>Waiting started
process to complete using <a href=\"#Wait For Process\" class=\"name\">Wait
For Process</a> or stopping them with <a href=\"#Terminate Process\"
class=\"name\">Terminate Process</a> or <a href=\"#Terminate All
Processes\" class=\"name\">Terminate All
Processes</a>.</li>\n</ul>\n<p>This library is new in Robot Framework
2.8.</p>\n<h3 id=\"Table of contents\">Table of contents</h3>\n<ul>\n<li><a
href=\"#Specifying command and arguments\" class=\"name\">Specifying
command and arguments</a></li>\n<li><a href=\"#Process configuration\"
class=\"name\">Process configuration</a></li>\n<li><a href=\"#Active
process\" class=\"name\">Active process</a></li>\n<li><a href=\"#Stopping
processes\" class=\"name\">Stopping processes</a></li>\n<li><a
href=\"#Result object\" class=\"name\">Result object</a></li>\n<li><a
href=\"#Using with OperatingSystem library\" class=\"name\">Using with
OperatingSystem library</a></li>\n<li><a href=\"#Example\"
class=\"name\">Example</a></li>\n</ul>\n<h2 id=\"Specifying command and
arguments\">Specifying command and arguments</h2>\n<p>Both <a href=\"#Run
Process\" class=\"name\">Run Process</a> and <a href=\"#Start Process\"
class=\"name\">Start Process</a> accept the command to execute and all
arguments passed to it as separate arguments. This is convenient to use and
also allows these keywords to automatically escape possible spaces and
other special characters in the command or arguments.</p>\n<p>When <a
href=\"#Running processes in shell\" class=\"name\">running processes in
shell</a>, it is also possible to give the whole command to execute as a
single string. The command can then contain multiple commands, for example,
connected with pipes. When using this approach the caller is responsible on
escaping.</p>\n<p>Examples:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>${progdir}/prog.exe</td>\n<td>first
arg</td>\n<td>second</td>\n</tr>\n<tr>\n<td><a href=\"#Run Process\"
class=\"name\">Run Process</a></td>\n<td>prog1.py arg &&
prog2.py</td>\n<td>shell=yes</td>\n<td>cwd=${progdir}</td>\n</tr>\n</table>\n<h2
id=\"Process configuration\">Process configuration</h2>\n<p><a href=\"#Run
Process\" class=\"name\">Run Process</a> and <a href=\"#Start Process\"
class=\"name\">Start Process</a> keywords can be configured using optional
<span class=\"name\">**configuration</span> keyword arguments. Available
configuration arguments are listed below and discussed further in sections
afterwards.</p>\n<table
border=\"1\">\n<tr>\n<td><b>Name</b></td>\n<td><b>Explanation</b></td>\n</tr>\n<tr>\n<td>shell</td>\n<td>Specifies
whether to run the command in shell or
not</td>\n</tr>\n<tr>\n<td>cwd</td>\n<td>Specifies the working
directory.</td>\n</tr>\n<tr>\n<td>env</td>\n<td>Specifies environment
variables given to the
process.</td>\n</tr>\n<tr>\n<td>env:<name></td>\n<td>Overrides the
named environment variable(s)
only.</td>\n</tr>\n<tr>\n<td>stdout</td>\n<td>Path of a file where to write
standard output.</td>\n</tr>\n<tr>\n<td>stderr</td>\n<td>Path of a file
where to write standard error.</td>\n</tr>\n<tr>\n<td>alias</td>\n<td>Alias
given to the process.</td>\n</tr>\n</table>\n<p>Configuration must be given
after other arguments passed to these keywords and must use syntax <span
class=\"name\">name=value</span>.</p>\n<h3 id=\"Running processes in
shell\">Running processes in shell</h3>\n<p>The <span
class=\"name\">shell</span> argument specifies whether to run the process
in a shell or not. By default shell is not used, which means that shell
specific commands, like <span class=\"name\">copy</span> and <span
class=\"name\">dir</span> on Windows, are not available.</p>\n<p>Giving the
<span class=\"name\">shell</span> argument any non-false value, such as
<span class=\"name\">shell=True</span>, changes the program to be executed
in a shell. It allows using the shell capabilities, but can also make the
process invocation operating system dependent.</p>\n<p>When using a shell
it is possible to give the whole command to execute as a single string. See
<a href=\"#Specifying command and arguments\" class=\"name\">Specifying
command and arguments</a> section for more details.</p>\n<h3 id=\"Current
working directory\">Current working directory</h3>\n<p>By default the child
process will be executed in the same directory as the parent process, the
process running tests, is executed. This can be changed by giving an
alternative location using the <span class=\"name\">cwd</span>
argument.</p>\n<p><a href=\"#Standard output and error streams\"
class=\"name\">Standard output and error streams</a>, when redirected to
files, are also relative to the current working directory possibly set
using the <span class=\"name\">cwd</span>
argument.</p>\n<p>Example:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>prog.exe</td>\n<td>cwd=c:\\\\temp</td>\n<td>stdout=stdout.txt</td>\n</tr>\n</table>\n<h3
id=\"Environment variables\">Environment variables</h3>\n<p>By default the
child process will get a copy of the parent process's environment
variables. The <span class=\"name\">env</span> argument can be used to give
the child a custom environment as a Python dictionary. If there is a need
to specify only certain environment variable, it is possible to use the
<span class=\"name\">env:<name></span> format to set or override only
that named variables. It is also possible to use these two approaches
together.</p>\n<p>Examples:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>env=${environ}</td>\n<td></td>\n</tr>\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>env:PATH=%{PATH}${:}${PROGRAM
DIR}</td>\n<td></td>\n</tr>\n<tr>\n<td><a href=\"#Run Process\"
class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>env=${environ}</td>\n<td>env:EXTRA=value</td>\n</tr>\n</table>\n<h3
id=\"Standard output and error streams\">Standard output and error
streams</h3>\n<p>By default processes are run so that their standard output
and standard error streams are kept in the memory. This works fine
normally, but if there is a lot of output, the output buffers may get full
and the program could hang.</p>\n<p>To avoid output buffers getting full,
it is possible to use <span class=\"name\">stdout</span> and <span
class=\"name\">stderr</span> arguments to specify files on the file system
where to redirect the outputs. This can also be useful if other processes
or other keywords need to read or manipulate the outputs somehow. Given
<span class=\"name\">stdout</span> and <span class=\"name\">stderr</span>
paths are relative to the <a href=\"#Current working directory\"
class=\"name\">current working directory</a>.</p>\n<p><b>Note:</b> The
created files are not automatically removed after the test run and the user
is responsible of removing the output files if needed.</p>\n<p>As a special
feature, it is possible to redirect the standard error to the standard
output by using <span
class=\"name\">stderr=STDOUT</span>.</p>\n<p>Regardless are outputs
redirected to files or not, they are accessible through the <a
href=\"#Result object\" class=\"name\">result object</a> returned when the
process ends.</p>\n<p>Examples:</p>\n<table
border=\"1\">\n<tr>\n<td>${result} =</td>\n<td><a href=\"#Run Process\"
class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>stdout=${TEMPDIR}/stdout.txt</td>\n<td>stderr=${TEMPDIR}/stderr.txt</td>\n</tr>\n<tr>\n<td><span
class=\"name\">Log Many</span></td>\n<td>stdout:
${result.stdout}</td>\n<td>stderr:
${result.stderr}</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>${result}
=</td>\n<td><a href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>stderr=STDOUT</td>\n<td></td>\n</tr>\n<tr>\n<td><span
class=\"name\">Log</span></td>\n<td>all output:
${result.stdout}</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</table>\n<h3
id=\"Alias\">Alias</h3>\n<p>A custom name given to the process that can be
used when selecting the <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>Example:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Start Process\" class=\"name\">Start
Process</a></td>\n<td>program</td>\n<td>alias=example</td>\n</tr>\n</table>\n<h2
id=\"Active process\">Active process</h2>\n<p>The test library keeps record
which of the started processes is currently active. By default it is latest
process started with <a href=\"#Start Process\" class=\"name\">Start
Process</a>, but <a href=\"#Switch Process\" class=\"name\">Switch
Process</a> can be used to select a different one.</p>\n<p>The keywords
that operate on started processes will use the active process by default,
but it is possible to explicitly select a different process using the <span
class=\"name\">handle</span> argument. The handle can be the identifier
returned by <a href=\"#Start Process\" class=\"name\">Start Process</a> or
an explicitly given <a href=\"#Alias\" class=\"name\">alias</a>.</p>\n<h2
id=\"Stopping processes\">Stopping processes</h2>\n<p>Started processed can
be stopped using <a href=\"#Terminate Process\" class=\"name\">Terminate
Process</a> and <a href=\"#Terminate All Processes\"
class=\"name\">Terminate All Processes</a>. The former is used for stopping
a selected process, and the latter to make sure all processes are stopped,
for example, in a suite teardown.</p>\n<p>Both keywords use <span
class=\"name\">subprocess</span> <a
href=\"http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen.terminate\">terminate()</a>
method by default, but can be configured to use <a
href=\"http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen.kill\">kill()</a>
instead.</p>\n<p>Because both <span class=\"name\">terminate()</span> and
<span class=\"name\">kill()</span> methods were added to <span
class=\"name\">subprocess</span> in Python 2.6, stopping processes does not
work with Python or Jython 2.5. Unfortunately at least beta releases of
Jython 2.7 <a href=\"http://bugs.jython.org/issue1898\">do not seem to
support it either</a>.</p>\n<p>Examples:</p>\n<table
border=\"1\">\n<tr>\n<td><a href=\"#Terminate Process\"
class=\"name\">Terminate
Process</a></td>\n<td>kill=True</td>\n</tr>\n<tr>\n<td><a href=\"#Terminate
All Processes\" class=\"name\">Terminate All
Processes</a></td>\n<td></td>\n</tr>\n</table>\n<h2 id=\"Result
object\">Result object</h2>\n<p><a href=\"#Run Process\" class=\"name\">Run
Process</a> and <a href=\"#Wait For Process\" class=\"name\">Wait For
Process</a> keywords return a result object that contains information about
the process execution as its attibutes. What is available is documented in
the table below.</p>\n<table
border=\"1\">\n<tr>\n<td><b>Attribute</b></td>\n<td><b>Explanation</b></td>\n</tr>\n<tr>\n<td>rc</td>\n<td>Return
code of the process as an
integer.</td>\n</tr>\n<tr>\n<td>stdout</td>\n<td>Contents of the standard
output stream.</td>\n</tr>\n<tr>\n<td>stderr</td>\n<td>Contents of the
standard error stream.</td>\n</tr>\n<tr>\n<td>stdout_path</td>\n<td>Path
where stdout was redirected or <span class=\"name\">None</span> if not
redirected.</td>\n</tr>\n<tr>\n<td>stderr_path</td>\n<td>Path where stderr
was redirected or <span class=\"name\">None</span> if not
redirected.</td>\n</tr>\n</table>\n<p>Example:</p>\n<table
border=\"1\">\n<tr>\n<td>${result} =</td>\n<td><a href=\"#Run Process\"
class=\"name\">Run
Process</a></td>\n<td>program</td>\n</tr>\n<tr>\n<td><span
class=\"name\">Should Be Equal As
Integers</span></td>\n<td>${result.rc}</td>\n<td></td>\n</tr>\n<tr>\n<td><span
class=\"name\">Should
Match</span></td>\n<td>${result.stdout}</td>\n<td>Some
t?xt*</td>\n</tr>\n<tr>\n<td><span class=\"name\">Should Be
Empty</span></td>\n<td>${result.stderr}</td>\n<td></td>\n</tr>\n<tr>\n<td>${stdout}
=</td>\n<td><span class=\"name\">Get
File</span></td>\n<td>${result.stdout_path}</td>\n</tr>\n<tr>\n<td><span
class=\"name\">File Should Be
Empty</span></td>\n<td>${result.stderr_path}</td>\n<td></td>\n</tr>\n<tr>\n<td><span
class=\"name\">Should Be
Equal</span></td>\n<td>${result.stdout}</td>\n<td>${stdout}</td>\n</tr>\n</table>\n<h2
id=\"Using with OperatingSystem library\">Using with OperatingSystem
library</h2>\n<p>The OperatingSystem library also contains keywords for
running processes. They are not as flexible as the keywords provided by
this library, and thus not recommended to be used anymore. They may
eventually even be deprecated.</p>\n<p>There is a name collision because
both of these libraries have <a href=\"#Start Process\"
class=\"name\">Start Process</a> and <a href=\"#Switch Process\"
class=\"name\">Switch Process</a> keywords. This is handled so that if both
libraries are imported, the keywords in the Process library are used by
default. If there is a need to use the OperatingSystem variants, it is
possible to use <span class=\"name\">OperatingSystem.Start Process</span>
syntax or use the <span class=\"name\">BuiltIn</span> keyword <span
class=\"name\">Set Library Search Order</span> to change the
priority.</p>\n<p>Other keywords in the OperatingSystem library can be used
freely with keywords in the Process library.</p>\n<h2
id=\"Example\">Example</h2>\n<pre>\n<b>***</b> Settings
<b>***</b>\nLibrary Process\nSuite Teardown <a href=\"#Terminate All
Processes\" class=\"name\">Terminate All Processes</a>
kill=True\n\n<b>***</b> Test Cases <b>***</b>\nExample\n <a
href=\"#Start Process\" class=\"name\">Start Process</a> program
arg1 arg2 alias=First\n ${handle} = <a href=\"#Start Process\"
class=\"name\">Start Process</a> command.sh arg | command2.sh
shell=True cwd=/path\n ${result} = <a href=\"#Run Process\"
class=\"name\">Run Process</a> ${CURDIR}/script.py\n <span
class=\"name\">Should Not Contain</span> ${result.stdout} FAIL\n
<a href=\"#Terminate Process\" class=\"name\">Terminate Process</a>
${handle}\n ${result} = <a href=\"#Wait For Process\"
class=\"name\">Wait For Process</a> First\n <span
class=\"name\">Should Be Equal As Integers</span> ${result.rc}
0\n</pre>","generated":"2013-06-11
15:39:52","inits":[],"keywords":[{"args":"handle=None","doc":"<p>Returns
the process ID (pid) of the process.</p>\n<p>If <span
class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>Returns
the pid assigned by the operating system as an integer. Note that with
Jython, at least with the 2.5 version, the returned pid seems to always be
<span class=\"name\">None</span>.</p>\n<p>The pid is not the same as the
identifier returned by <a href=\"#Start Process\" class=\"name\">Start
Process</a> that is used internally by this library.</p>","name":"Get
Process Id","shortdoc":"Returns the process ID (pid) of the
process."},{"args":"handle=None","doc":"<p>Return the underlying <span
class=\"name\">subprocess.Popen</span> object.</p>\n<p>If <span
class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active
process</a>.</p>","name":"Get Process Object","shortdoc":"Return the
underlying `subprocess.Popen`
object."},{"args":"handle=None","doc":"<p>Checks is the process running or
not.</p>\n<p>If <span class=\"name\">handle</span>is not given, uses the
current <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>Returns <span class=\"name\">True</span> if the
process is still running and <span class=\"name\">False</span>
otherwise.</p>","name":"Is Process Running","shortdoc":"Checks is the
process running or not."},{"args":"handle=None, error_message=Process is
not running.","doc":"<p>Verifies that the process is running.</p>\n<p>If
<span class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>Fails
if the process has stopped.</p>","name":"Process Should Be
Running","shortdoc":"Verifies that the process is
running."},{"args":"handle=None, error_message=Process is
running.","doc":"<p>Verifies that the process is not running.</p>\n<p>If
<span class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>Fails
if the process is still running.</p>","name":"Process Should Be
Stopped","shortdoc":"Verifies that the process is not
running."},{"args":"command, *arguments, **configuration","doc":"<p>Runs a
process and waits for it to complete.</p>\n<p>See <a href=\"#Specifying
command and arguments\" class=\"name\">Specifying command and arguments</a>
and <a href=\"#Process configuration\" class=\"name\">Process
configuration</a> for more information about the arguments.</p>\n<p>Returns
a <a href=\"#Result object\" class=\"name\">result object</a> containing
information about the execution.</p>\n<p>This command does not change the
<a href=\"#Active process\" class=\"name\">active
process</a>.</p>","name":"Run Process","shortdoc":"Runs a process and waits
for it to complete."},{"args":"command, *arguments,
**configuration","doc":"<p>Starts a new process on background.</p>\n<p>See
<a href=\"#Specifying command and arguments\" class=\"name\">Specifying
command and arguments</a> and <a href=\"#Process configuration\"
class=\"name\">Process configuration</a> for more information about the
arguments.</p>\n<p>Makes the started process new <a href=\"#Active
process\" class=\"name\">active process</a>. Returns an identifier that can
be used as a handle to active the started process if
needed.</p>","name":"Start Process","shortdoc":"Starts a new process on
background."},{"args":"handle","doc":"<p>Makes the specified process the
current <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>The handle can be an identifier returned by <a
href=\"#Start Process\" class=\"name\">Start Process</a> or the <a
href=\"#Alias\" class=\"name\">alias</a> given to it
explicitly.</p>\n<p>Example:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Start Process\" class=\"name\">Start
Process</a></td>\n<td>prog1</td>\n<td>alias=process1</td>\n</tr>\n<tr>\n<td><a
href=\"#Start Process\" class=\"name\">Start
Process</a></td>\n<td>prog2</td>\n<td>alias=process2</td>\n</tr>\n<tr>\n<td>#
currently active process is
process2</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><a href=\"#Switch
Process\" class=\"name\">Switch
Process</a></td>\n<td>process1</td>\n<td></td>\n</tr>\n<tr>\n<td># now
active process is process
1</td>\n<td></td>\n<td></td>\n</tr>\n</table>","name":"Switch
Process","shortdoc":"Makes the specified process the current `active
process`."},{"args":"kill=True","doc":"<p>Terminates all still running
processes started by this library.</p>\n<p>See <a href=\"#Stopping
processes\" class=\"name\">Stopping processes</a> for more
details.</p>","name":"Terminate All Processes","shortdoc":"Terminates all
still running processes started by this library."},{"args":"handle=None,
kill=False","doc":"<p>Terminates the process.</p>\n<p>If <span
class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>See
<span class=\"name\">Stopping process</span> for more
details.</p>","name":"Terminate Process","shortdoc":"Terminates the
process."},{"args":"handle=None","doc":"<p>Waits for the process to
complete.</p>\n<p>If <span class=\"name\">handle</span>is not given, uses
the current <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>Returns a <a href=\"#Result object\"
class=\"name\">result object</a> containing information about the
execution.</p>","name":"Wait For Process","shortdoc":"Waits for the process
to
complete."}],"name":"Process","named_args":true,"scope":"global","version":"trunk
20130531"};
+libdoc = {"doc":"<p>Robot Framework test library for running
processes.</p>\n<p>This library utilizes Python's <a
href=\"http://docs.python.org/2.7/library/subprocess.html\">subprocess</a>
module and its <a
href=\"http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen\">Popen</a>
class.</p>\n<p>The library has following main
usages:</p>\n<ul>\n<li>Running processes in system and waiting for their
completion using <a href=\"#Run Process\" class=\"name\">Run Process</a>
keyword.</li>\n<li>Starting processes on background using <a href=\"#Start
Process\" class=\"name\">Start Process</a>.</li>\n<li>Waiting started
process to complete using <a href=\"#Wait For Process\" class=\"name\">Wait
For Process</a> or stopping them with <a href=\"#Terminate Process\"
class=\"name\">Terminate Process</a> or <a href=\"#Terminate All
Processes\" class=\"name\">Terminate All
Processes</a>.</li>\n</ul>\n<p>This library is new in Robot Framework
2.8.</p>\n<h3 id=\"Table of contents\">Table of contents</h3>\n<ul>\n<li><a
href=\"#Specifying command and arguments\" class=\"name\">Specifying
command and arguments</a></li>\n<li><a href=\"#Process configuration\"
class=\"name\">Process configuration</a></li>\n<li><a href=\"#Active
process\" class=\"name\">Active process</a></li>\n<li><a href=\"#Stopping
processes\" class=\"name\">Stopping processes</a></li>\n<li><a
href=\"#Result object\" class=\"name\">Result object</a></li>\n<li><a
href=\"#Using with OperatingSystem library\" class=\"name\">Using with
OperatingSystem library</a></li>\n<li><a href=\"#Example\"
class=\"name\">Example</a></li>\n</ul>\n<h2 id=\"Specifying command and
arguments\">Specifying command and arguments</h2>\n<p>Both <a href=\"#Run
Process\" class=\"name\">Run Process</a> and <a href=\"#Start Process\"
class=\"name\">Start Process</a> accept the command to execute and all
arguments passed to it as separate arguments. This is convenient to use and
also allows these keywords to automatically escape possible spaces and
other special characters in the command or arguments.</p>\n<p>When <a
href=\"#Running processes in shell\" class=\"name\">running processes in
shell</a>, it is also possible to give the whole command to execute as a
single string. The command can then contain multiple commands, for example,
connected with pipes. When using this approach the caller is responsible on
escaping.</p>\n<p>Examples:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>${progdir}${/}prog.py</td>\n<td>first
arg</td>\n<td>second</td>\n</tr>\n<tr>\n<td><a href=\"#Run Process\"
class=\"name\">Run Process</a></td>\n<td>script1.sh arg &&
script2.sh</td>\n<td>shell=yes</td>\n<td>cwd=${progdir}</td>\n</tr>\n</table>\n<h2
id=\"Process configuration\">Process configuration</h2>\n<p><a href=\"#Run
Process\" class=\"name\">Run Process</a> and <a href=\"#Start Process\"
class=\"name\">Start Process</a> keywords can be configured using optional
<span class=\"name\">**configuration</span> keyword arguments. Available
configuration arguments are listed below and discussed further in sections
afterwards.</p>\n<table
border=\"1\">\n<tr>\n<td><b>Name</b></td>\n<td><b>Explanation</b></td>\n</tr>\n<tr>\n<td>shell</td>\n<td>Specifies
whether to run the command in shell or
not</td>\n</tr>\n<tr>\n<td>cwd</td>\n<td>Specifies the working
directory.</td>\n</tr>\n<tr>\n<td>env</td>\n<td>Specifies environment
variables given to the
process.</td>\n</tr>\n<tr>\n<td>env:<name></td>\n<td>Overrides the
named environment variable(s)
only.</td>\n</tr>\n<tr>\n<td>stdout</td>\n<td>Path of a file where to write
standard output.</td>\n</tr>\n<tr>\n<td>stderr</td>\n<td>Path of a file
where to write standard error.</td>\n</tr>\n<tr>\n<td>alias</td>\n<td>Alias
given to the process.</td>\n</tr>\n</table>\n<p>Configuration must be given
after other arguments passed to these keywords and must use syntax <span
class=\"name\">name=value</span>.</p>\n<h3 id=\"Running processes in
shell\">Running processes in shell</h3>\n<p>The <span
class=\"name\">shell</span> argument specifies whether to run the process
in a shell or not. By default shell is not used, which means that shell
specific commands, like <span class=\"name\">copy</span> and <span
class=\"name\">dir</span> on Windows, are not available.</p>\n<p>Giving the
<span class=\"name\">shell</span> argument any non-false value, such as
<span class=\"name\">shell=True</span>, changes the program to be executed
in a shell. It allows using the shell capabilities, but can also make the
process invocation operating system dependent.</p>\n<p>When using a shell
it is possible to give the whole command to execute as a single string. See
<a href=\"#Specifying command and arguments\" class=\"name\">Specifying
command and arguments</a> section for more details.</p>\n<h3 id=\"Current
working directory\">Current working directory</h3>\n<p>By default the child
process will be executed in the same directory as the parent process, the
process running tests, is executed. This can be changed by giving an
alternative location using the <span class=\"name\">cwd</span> argument.
Forward slashes in the given path are automatically converted to
backslashes on Windows.</p>\n<p><a href=\"#Standard output and error
streams\" class=\"name\">Standard output and error streams</a>, when
redirected to files, are also relative to the current working directory
possibly set using the <span class=\"name\">cwd</span>
argument.</p>\n<p>Example:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>prog.exe</td>\n<td>cwd=${ROOT}/directory</td>\n<td>stdout=stdout.txt</td>\n</tr>\n</table>\n<h3
id=\"Environment variables\">Environment variables</h3>\n<p>By default the
child process will get a copy of the parent process's environment
variables. The <span class=\"name\">env</span> argument can be used to give
the child a custom environment as a Python dictionary. If there is a need
to specify only certain environment variable, it is possible to use the
<span class=\"name\">env:<name></span> format to set or override only
that named variables. It is also possible to use these two approaches
together.</p>\n<p>Examples:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>env=${environ}</td>\n<td></td>\n</tr>\n<tr>\n<td><a
href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>env:PATH=%{PATH}${:}${PROGRAM
DIR}</td>\n<td></td>\n</tr>\n<tr>\n<td><a href=\"#Run Process\"
class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>env=${environ}</td>\n<td>env:EXTRA=value</td>\n</tr>\n</table>\n<h3
id=\"Standard output and error streams\">Standard output and error
streams</h3>\n<p>By default processes are run so that their standard output
and standard error streams are kept in the memory. This works fine
normally, but if there is a lot of output, the output buffers may get full
and the program could hang.</p>\n<p>To avoid output buffers getting full,
it is possible to use <span class=\"name\">stdout</span> and <span
class=\"name\">stderr</span> arguments to specify files on the file system
where to redirect the outputs. This can also be useful if other processes
or other keywords need to read or manipulate the outputs
somehow.</p>\n<p>Given <span class=\"name\">stdout</span> and <span
class=\"name\">stderr</span> paths are relative to the <a href=\"#Current
working directory\" class=\"name\">current working directory</a>. Forward
slashes in the given paths are automatically converted to backslashes on
Windows.</p>\n<p>As a special feature, it is possible to redirect the
standard error to the standard output by using <span
class=\"name\">stderr=STDOUT</span>.</p>\n<p>Regardless are outputs
redirected to files or not, they are accessible through the <a
href=\"#Result object\" class=\"name\">result object</a> returned when the
process ends.</p>\n<p>Examples:</p>\n<table
border=\"1\">\n<tr>\n<td>${result} =</td>\n<td><a href=\"#Run Process\"
class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>stdout=${TEMPDIR}/stdout.txt</td>\n<td>stderr=${TEMPDIR}/stderr.txt</td>\n</tr>\n<tr>\n<td><span
class=\"name\">Log Many</span></td>\n<td>stdout:
${result.stdout}</td>\n<td>stderr:
${result.stderr}</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>${result}
=</td>\n<td><a href=\"#Run Process\" class=\"name\">Run
Process</a></td>\n<td>program</td>\n<td>stderr=STDOUT</td>\n<td></td>\n</tr>\n<tr>\n<td><span
class=\"name\">Log</span></td>\n<td>all output:
${result.stdout}</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</table>\n<p><b>Note:</b>
The created output files are not automatically removed after the test run.
The user is responsible to remove them if needed.</p>\n<h3
id=\"Alias\">Alias</h3>\n<p>A custom name given to the process that can be
used when selecting the <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>Example:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Start Process\" class=\"name\">Start
Process</a></td>\n<td>program</td>\n<td>alias=example</td>\n</tr>\n</table>\n<h2
id=\"Active process\">Active process</h2>\n<p>The test library keeps record
which of the started processes is currently active. By default it is latest
process started with <a href=\"#Start Process\" class=\"name\">Start
Process</a>, but <a href=\"#Switch Process\" class=\"name\">Switch
Process</a> can be used to select a different one.</p>\n<p>The keywords
that operate on started processes will use the active process by default,
but it is possible to explicitly select a different process using the <span
class=\"name\">handle</span> argument. The handle can be the identifier
returned by <a href=\"#Start Process\" class=\"name\">Start Process</a> or
an explicitly given <a href=\"#Alias\" class=\"name\">alias</a>.</p>\n<h2
id=\"Stopping processes\">Stopping processes</h2>\n<p>Started processed can
be stopped using <a href=\"#Terminate Process\" class=\"name\">Terminate
Process</a> and <a href=\"#Terminate All Processes\"
class=\"name\">Terminate All Processes</a>. The former is used for stopping
a selected process, and the latter to make sure all processes are stopped,
for example, in a suite teardown.</p>\n<p>Both keywords use <span
class=\"name\">subprocess</span> <a
href=\"http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen.terminate\">terminate()</a>
method by default, but can be configured to use <a
href=\"http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen.kill\">kill()</a>
instead.</p>\n<p>Because both <span class=\"name\">terminate()</span> and
<span class=\"name\">kill()</span> methods were added to <span
class=\"name\">subprocess</span> in Python 2.6, stopping processes does not
work with Python or Jython 2.5. Unfortunately at least beta releases of
Jython 2.7 <a href=\"http://bugs.jython.org/issue1898\">do not seem to
support it either</a>.</p>\n<p>Examples:</p>\n<table
border=\"1\">\n<tr>\n<td><a href=\"#Terminate Process\"
class=\"name\">Terminate
Process</a></td>\n<td>kill=True</td>\n</tr>\n<tr>\n<td><a href=\"#Terminate
All Processes\" class=\"name\">Terminate All
Processes</a></td>\n<td></td>\n</tr>\n</table>\n<h2 id=\"Result
object\">Result object</h2>\n<p><a href=\"#Run Process\" class=\"name\">Run
Process</a> and <a href=\"#Wait For Process\" class=\"name\">Wait For
Process</a> keywords return a result object that contains information about
the process execution as its attibutes. What is available is documented in
the table below.</p>\n<table
border=\"1\">\n<tr>\n<td><b>Attribute</b></td>\n<td><b>Explanation</b></td>\n</tr>\n<tr>\n<td>rc</td>\n<td>Return
code of the process as an
integer.</td>\n</tr>\n<tr>\n<td>stdout</td>\n<td>Contents of the standard
output stream.</td>\n</tr>\n<tr>\n<td>stderr</td>\n<td>Contents of the
standard error stream.</td>\n</tr>\n<tr>\n<td>stdout_path</td>\n<td>Path
where stdout was redirected or <span class=\"name\">None</span> if not
redirected.</td>\n</tr>\n<tr>\n<td>stderr_path</td>\n<td>Path where stderr
was redirected or <span class=\"name\">None</span> if not
redirected.</td>\n</tr>\n</table>\n<p>Example:</p>\n<table
border=\"1\">\n<tr>\n<td>${result} =</td>\n<td><a href=\"#Run Process\"
class=\"name\">Run
Process</a></td>\n<td>program</td>\n</tr>\n<tr>\n<td><span
class=\"name\">Should Be Equal As
Integers</span></td>\n<td>${result.rc}</td>\n<td></td>\n</tr>\n<tr>\n<td><span
class=\"name\">Should
Match</span></td>\n<td>${result.stdout}</td>\n<td>Some
t?xt*</td>\n</tr>\n<tr>\n<td><span class=\"name\">Should Be
Empty</span></td>\n<td>${result.stderr}</td>\n<td></td>\n</tr>\n<tr>\n<td>${stdout}
=</td>\n<td><span class=\"name\">Get
File</span></td>\n<td>${result.stdout_path}</td>\n</tr>\n<tr>\n<td><span
class=\"name\">File Should Be
Empty</span></td>\n<td>${result.stderr_path}</td>\n<td></td>\n</tr>\n<tr>\n<td><span
class=\"name\">Should Be
Equal</span></td>\n<td>${result.stdout}</td>\n<td>${stdout}</td>\n</tr>\n</table>\n<h2
id=\"Using with OperatingSystem library\">Using with OperatingSystem
library</h2>\n<p>The OperatingSystem library also contains keywords for
running processes. They are not as flexible as the keywords provided by
this library, and thus not recommended to be used anymore. They may
eventually even be deprecated.</p>\n<p>There is a name collision because
both of these libraries have <a href=\"#Start Process\"
class=\"name\">Start Process</a> and <a href=\"#Switch Process\"
class=\"name\">Switch Process</a> keywords. This is handled so that if both
libraries are imported, the keywords in the Process library are used by
default. If there is a need to use the OperatingSystem variants, it is
possible to use <span class=\"name\">OperatingSystem.Start Process</span>
syntax or use the <span class=\"name\">BuiltIn</span> keyword <span
class=\"name\">Set Library Search Order</span> to change the
priority.</p>\n<p>Other keywords in the OperatingSystem library can be used
freely with keywords in the Process library.</p>\n<h2
id=\"Example\">Example</h2>\n<pre>\n<b>***</b> Settings
<b>***</b>\nLibrary Process\nSuite Teardown <a href=\"#Terminate All
Processes\" class=\"name\">Terminate All Processes</a>
kill=True\n\n<b>***</b> Test Cases <b>***</b>\nExample\n <a
href=\"#Start Process\" class=\"name\">Start Process</a> program
arg1 arg2 alias=First\n ${handle} = <a href=\"#Start Process\"
class=\"name\">Start Process</a> command.sh arg | command2.sh
shell=True cwd=/path\n ${result} = <a href=\"#Run Process\"
class=\"name\">Run Process</a> ${CURDIR}/script.py\n <span
class=\"name\">Should Not Contain</span> ${result.stdout} FAIL\n
<a href=\"#Terminate Process\" class=\"name\">Terminate Process</a>
${handle}\n ${result} = <a href=\"#Wait For Process\"
class=\"name\">Wait For Process</a> First\n <span
class=\"name\">Should Be Equal As Integers</span> ${result.rc}
0\n</pre>","generated":"2013-06-11
15:57:55","inits":[],"keywords":[{"args":"handle=None","doc":"<p>Returns
the process ID (pid) of the process.</p>\n<p>If <span
class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>Returns
the pid assigned by the operating system as an integer. Note that with
Jython, at least with the 2.5 version, the returned pid seems to always be
<span class=\"name\">None</span>.</p>\n<p>The pid is not the same as the
identifier returned by <a href=\"#Start Process\" class=\"name\">Start
Process</a> that is used internally by this library.</p>","name":"Get
Process Id","shortdoc":"Returns the process ID (pid) of the
process."},{"args":"handle=None","doc":"<p>Return the underlying <span
class=\"name\">subprocess.Popen</span> object.</p>\n<p>If <span
class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active
process</a>.</p>","name":"Get Process Object","shortdoc":"Return the
underlying `subprocess.Popen`
object."},{"args":"handle=None","doc":"<p>Checks is the process running or
not.</p>\n<p>If <span class=\"name\">handle</span>is not given, uses the
current <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>Returns <span class=\"name\">True</span> if the
process is still running and <span class=\"name\">False</span>
otherwise.</p>","name":"Is Process Running","shortdoc":"Checks is the
process running or not."},{"args":"handle=None, error_message=Process is
not running.","doc":"<p>Verifies that the process is running.</p>\n<p>If
<span class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>Fails
if the process has stopped.</p>","name":"Process Should Be
Running","shortdoc":"Verifies that the process is
running."},{"args":"handle=None, error_message=Process is
running.","doc":"<p>Verifies that the process is not running.</p>\n<p>If
<span class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>Fails
if the process is still running.</p>","name":"Process Should Be
Stopped","shortdoc":"Verifies that the process is not
running."},{"args":"command, *arguments, **configuration","doc":"<p>Runs a
process and waits for it to complete.</p>\n<p>See <a href=\"#Specifying
command and arguments\" class=\"name\">Specifying command and arguments</a>
and <a href=\"#Process configuration\" class=\"name\">Process
configuration</a> for more information about the arguments.</p>\n<p>Returns
a <a href=\"#Result object\" class=\"name\">result object</a> containing
information about the execution.</p>\n<p>This command does not change the
<a href=\"#Active process\" class=\"name\">active
process</a>.</p>","name":"Run Process","shortdoc":"Runs a process and waits
for it to complete."},{"args":"command, *arguments,
**configuration","doc":"<p>Starts a new process on background.</p>\n<p>See
<a href=\"#Specifying command and arguments\" class=\"name\">Specifying
command and arguments</a> and <a href=\"#Process configuration\"
class=\"name\">Process configuration</a> for more information about the
arguments.</p>\n<p>Makes the started process new <a href=\"#Active
process\" class=\"name\">active process</a>. Returns an identifier that can
be used as a handle to active the started process if
needed.</p>","name":"Start Process","shortdoc":"Starts a new process on
background."},{"args":"handle","doc":"<p>Makes the specified process the
current <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>The handle can be an identifier returned by <a
href=\"#Start Process\" class=\"name\">Start Process</a> or the <a
href=\"#Alias\" class=\"name\">alias</a> given to it
explicitly.</p>\n<p>Example:</p>\n<table border=\"1\">\n<tr>\n<td><a
href=\"#Start Process\" class=\"name\">Start
Process</a></td>\n<td>prog1</td>\n<td>alias=process1</td>\n</tr>\n<tr>\n<td><a
href=\"#Start Process\" class=\"name\">Start
Process</a></td>\n<td>prog2</td>\n<td>alias=process2</td>\n</tr>\n<tr>\n<td>#
currently active process is
process2</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><a href=\"#Switch
Process\" class=\"name\">Switch
Process</a></td>\n<td>process1</td>\n<td></td>\n</tr>\n<tr>\n<td># now
active process is process
1</td>\n<td></td>\n<td></td>\n</tr>\n</table>","name":"Switch
Process","shortdoc":"Makes the specified process the current `active
process`."},{"args":"kill=True","doc":"<p>Terminates all still running
processes started by this library.</p>\n<p>See <a href=\"#Stopping
processes\" class=\"name\">Stopping processes</a> for more
details.</p>","name":"Terminate All Processes","shortdoc":"Terminates all
still running processes started by this library."},{"args":"handle=None,
kill=False","doc":"<p>Terminates the process.</p>\n<p>If <span
class=\"name\">handle</span>is not given, uses the current <a
href=\"#Active process\" class=\"name\">active process</a>.</p>\n<p>See
<span class=\"name\">Stopping process</span> for more
details.</p>","name":"Terminate Process","shortdoc":"Terminates the
process."},{"args":"handle=None","doc":"<p>Waits for the process to
complete.</p>\n<p>If <span class=\"name\">handle</span>is not given, uses
the current <a href=\"#Active process\" class=\"name\">active
process</a>.</p>\n<p>Returns a <a href=\"#Result object\"
class=\"name\">result object</a> containing information about the
execution.</p>","name":"Wait For Process","shortdoc":"Waits for the process
to
complete."}],"name":"Process","named_args":true,"scope":"global","version":"trunk
20130531"};
</script>
<title></title>
</head>
--
---
You received this message because you are subscribed to the Google Groups "robotframework-commit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to robotframework-commit+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.