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("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;")}});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 &amp;&amp; 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:&lt;name&gt;</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:&lt;name&gt;</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 &amp;&amp; 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:&lt;name&gt;</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:&lt;name&gt;</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.


Reply via email to