2 new revisions:

Revision: 117a00450559
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Mon Oct 28 13:22:46 2013 UTC
Log:      Process: Enhancements mainly to doc but also little elsewhere....
http://code.google.com/p/robotframework/source/detail?r=117a00450559

Revision: 1d5cbf12a787
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Mon Oct 28 13:53:16 2013 UTC
Log: fixed tests that were broken when Log got two more optional args. hope...
http://code.google.com/p/robotframework/source/detail?r=1d5cbf12a787

==============================================================================
Revision: 117a00450559
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Mon Oct 28 13:22:46 2013 UTC
Log:      Process: Enhancements mainly to doc but also little elsewhere.

Update issue 1490
Status: Done
Doc proofread and enhanced a little along with other enhancements.
http://code.google.com/p/robotframework/source/detail?r=117a00450559

Modified:
 /atest/robot/standard_libraries/process/terminate_and_pid.txt
 /src/robot/libraries/Process.py

=======================================
--- /atest/robot/standard_libraries/process/terminate_and_pid.txt Thu Oct 17 14:55:57 2013 UTC +++ /atest/robot/standard_libraries/process/terminate_and_pid.txt Mon Oct 28 13:22:46 2013 UTC
@@ -20,7 +20,8 @@
     ${tc} =    Check Test Case    ${TESTNAME}
Check Log Message ${tc.kws[6].msgs[0]} Gracefully terminating process. Pass Execution If ${WINDOWS} Pass on Windows since there's no kill command. - Check Log Message ${tc.kws[6].msgs[1]} Forcefully killing process. + Check Log Message ${tc.kws[6].msgs[1]} Graceful termination failed. + Check Log Message ${tc.kws[6].msgs[2]} Forcefully killing process.
     Should Be True    ${tc.elapsedtime} >= 2000

 Pid
=======================================
--- /src/robot/libraries/Process.py     Mon Oct 28 08:22:30 2013 UTC
+++ /src/robot/libraries/Process.py     Mon Oct 28 13:22:46 2013 UTC
@@ -29,9 +29,9 @@
     """Robot Framework test library for running processes.

     This library utilizes Python's
-    [http://docs.python.org/2.7/library/subprocess.html|subprocess]
+    [http://docs.python.org/2/library/subprocess.html|subprocess]
     module and its
- [http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen| Popen] + [http://docs.python.org/2/library/subprocess.html#subprocess.Popen| Popen]
     class.

     The library has following main usages:
@@ -49,7 +49,6 @@
     - `Specifying command and arguments`
     - `Process configuration`
     - `Active process`
-    - `Stopping processes`
     - `Result object`
     - `Using with OperatingSystem library`
     - `Example`
@@ -75,8 +74,10 @@
     = Process configuration =

     `Run Process` and `Start Process` keywords can be configured using
-    optional `**configuration` keyword arguments. Available configuration
- arguments are listed below and discussed further in sections afterwards.
+    optional `**configuration` keyword arguments. Configuration arguments
+    must be given after other arguments passed to these keywords and must
+    use syntax like `name=value`. Available configuration arguments are
+    listed below and discussed further in sections afterwards.

     |  = Name =  |                  = Explanation =                      |
     | shell      | Specifies whether to run the command in shell or not  |
@@ -87,9 +88,6 @@
     | stderr     | Path of a file where to write standard error.         |
     | alias      | Alias given to the process.                           |

- Configuration must be given after other arguments passed to these keywords
-    and must use syntax `name=value`.
-
     == Running processes in shell ==

     The `shell` argument specifies whether to run the process in a shell or
@@ -103,7 +101,7 @@

     When using a shell it is possible to give the whole command to execute
     as a single string. See `Specifying command and arguments` section for
-    more details.
+    examples and more details in general.

     == Current working directory ==

@@ -126,20 +124,20 @@
     environment variables. The `env` 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
-    `env:<name>` format to set or override only that named variables. It is
-    also possible to use these two approaches together.
+ `env:<name>=<value>` format to set or override only that named variables.
+    It is also possible to use these two approaches together.

     Examples:
     | `Run Process` | program | env=${environ} |
-    | `Run Process` | program | env:PATH=%{PATH}${:}${PROGRAM DIR} |
-    | `Run Process` | program | env=${environ} | env:EXTRA=value   |
+ | `Run Process` | program | env:http_proxy=10.144.1.10:8080 | env:PATH=%{PATH}${:}${PROGDIR} |
+    | `Run Process` | program | env=${environ} | env:EXTRA=value |

     == Standard output and error streams ==

     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.
+    the program can hang.

     To avoid output buffers getting full, it is possible to use `stdout`
     and `stderr` arguments to specify files on the file system where to
@@ -170,41 +168,22 @@
     A custom name given to the process that can be used when selecting the
     `active process`.

-    Example:
+    Examples:
     | `Start Process` | program | alias=example |
+    | `Run Process`   | python  | -c | print 'hello' | alias=hello |

     = Active process =

The test library keeps record which of the started processes is currently
     active. By default it is latest process started with `Start Process`,
-    but `Switch Process` can be used to select a different one.
+    but `Switch Process` can be used to select a different one. Using
+    `Run Process` does not affect the active process.

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 `handle` argument. The handle can be the identifier returned by
-    `Start Process` or an explicitly given `alias`.
-
-    = Stopping processes =
-
-    Started processed can be stopped using `Terminate Process` and
-    `Terminate All Processes`. 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.
-
-    Both keywords use `subprocess`
- [http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen.terminate| terminate()]
-    method by default, but can be configured to use
- [http://docs.python.org/2.7/library/subprocess.html#subprocess.Popen.kill| kill()]
-    instead.
-
- Because both `terminate()` and `kill()` methods were added to `subprocess` - in Python 2.6, stopping processes does not work with Python or Jython 2.5.
-    Unfortunately at least beta releases of Jython 2.7
-    [http://bugs.jython.org/issue1898|do not seem to support it either].
-
-    Examples:
-    | `Terminate Process` | kill=True |
-    | `Terminate All Processes` |
+    `Start Process` or an `alias` explicitly given to `Start Process` or
+    `Run Process`.

     = Result object =

@@ -354,7 +333,7 @@
         if self.is_process_running(handle):
             raise AssertionError(error_message)

- def wait_for_process(self, handle=None, timeout=None, on_timeout='none'): + def wait_for_process(self, handle=None, timeout=None, on_timeout='continue'):
         """Waits for the process to complete or to reach the given timeout.

         The process to wait for must have been started earlier with
@@ -370,7 +349,7 @@
         that reaching the timeout never fails the test.

         |  = Value =  |               = Action =               |
-        | `none`      | The process is left running (default). |
+        | `continue`  | The process is left running (default). |
         | `terminate` | The process is gracefully terminated.  |
         | `kill`      | The process is forcefully stopped.     |

@@ -421,23 +400,36 @@
             return None

     def terminate_process(self, handle=None, kill=False):
-        """Terminates the process.
+        """Stops the process gracefully or forcefully.

         If `handle` is not given, uses the current `active process`.

Returns a `result object` containing information about the execution
         similarly as `Wait For Process`.

- By default, tries to terminate the process gracefully, but forcefully
-        kills it if it does not stop in 30 seconds. Kills the process
-        immediately if `kill` argument is given any non-empty value.
- On Unix-like machines termination is done using `TERM (15)` signal and
-        killing using `KILL (9)`. On Windows Win32 API is used directly.
+ On Unix-like machines, by default, first tries to terminate the process + gracefully, but forcefully kills it if it does not stop in 30 seconds. + Kills the process immediately if the `kill` argument is given any true
+        value (e.g. any non-empty string). Termination is done using `TERM
+        (15)` signal and killing using `KILL (9)`. Use `Send Signal To
+        Process` if you just want to send the `TERM` signal.
+
+ On Windows the Win32 API function `TerminateProcess` is used directly + to stop the process. Using the `kill` argument has no special effect.
+
+        | ${result} =                 | Terminate Process |          |
+        | Should Be Equal As Integers | ${result.rc}      | -15      |
+        | Terminate Process           | myproc            | kill=yes |

-        See `Stopping process` for more details.
+        *Note:* Stopping processes requires the
+        [http://docs.python.org/2/library/subprocess.html|subprocess]
+        module to have working `terminate` and `kill` functions. They were
+        added in Python 2.6 and are thus missing from earlier versions.
+        Unfortunately at least beta releases of Jython 2.7
+ [http://bugs.jython.org/issue1898|do not seem to support them either].

- Termination timeout and returning the result object are new features
-        in Robot Framework 2.8.2.
+        Automatically killing the process if termination fails as well as
+ returning the result object are new features in Robot Framework 2.8.2.
         """
         process = self._processes[handle]
         result = self._results[process]
@@ -464,14 +456,18 @@
         logger.info('Gracefully terminating process.')
         process.terminate()
         if not self._process_is_stopped(process, self.TERMINATE_TIMEOUT):
+            logger.info('Graceful termination failed.')
             self._kill_process(process)

     def terminate_all_processes(self, kill=False):
         """Terminates all still running processes started by this library.

-        `kill` parameter works similar than in `Terminate Process`
+        This keyword can be used in suite teardown or elsewhere to make
+        sure that all processes are stopped,

-        See `Stopping processes` for more details.
+        By default tries to terminate processes gracefully, but can be
+ configured to forcefully kill them immediately. See `Terminate Process`
+        that this keyword uses internally for more details.
         """
         for handle in range(1, len(self._processes) + 1):
             if self.is_process_running(handle):
@@ -484,7 +480,7 @@
         Signal name can be give with or without the SIG prefix
         (for example SIGINT and INT will both send interrupt signal).

-        NOTE! This Keyword does not work on Windows.
+        NOTE! This Keyword does not work on Windows nor with Python 2.5.

         `signal` is the number or name of the signal to be send.

@@ -541,7 +537,10 @@
         The given `handle` specifies the process whose results should be
         returned. If no `handle` is given, results of the current `active
         process` are returned. In either case, the process must have been
-        finishes before this keyword can be used.
+        finishes before this keyword can be used. In practice this means
+        that processes started with `Start Process` must be finished either
+        with `Wait For Process` or `Terminate Process` before using this
+        keyword.

         If no other arguments than the optional `handle` are given, a whole
`result object` is returned. If one or more of the other arguments are

==============================================================================
Revision: 1d5cbf12a787
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Mon Oct 28 13:53:16 2013 UTC
Log: fixed tests that were broken when Log got two more optional args. hopefully catched all and fixes teh build.
http://code.google.com/p/robotframework/source/detail?r=1d5cbf12a787

Modified:
 /atest/robot/cli/dryrun/run_keyword_variants.txt
 /atest/testdata/cli/dryrun/dryrun.txt
 /atest/testdata/cli/dryrun/more_tests.txt
 /atest/testdata/cli/dryrun/run_keyword_variants.txt
 /atest/testdata/cli/dryrun/run_keyword_variants_in_suite_teardown.txt
 /atest/testdata/core/invalid_syntax.html
 /atest/testdata/standard_libraries/builtin/run_keywords.txt

=======================================
--- /atest/robot/cli/dryrun/run_keyword_variants.txt Wed May 29 13:16:18 2013 UTC +++ /atest/robot/cli/dryrun/run_keyword_variants.txt Mon Oct 28 13:53:16 2013 UTC
@@ -51,7 +51,7 @@
     Test Should Have Correct Keywords  BuiltIn.Log  BuiltIn.Log

 Run Keywords With Arguments When Multiple Keyword Fails
-    Test Should Have Correct Keywords  BuiltIn.Log  no kw
+    Test Should Have Correct Keywords  BuiltIn.Log  Unknown Keyword

 Run Keywords With Arguments With Variables
     Test Should Have Correct Keywords  BuiltIn.Log
=======================================
--- /atest/testdata/cli/dryrun/dryrun.txt       Tue Oct 15 11:46:40 2013 UTC
+++ /atest/testdata/cli/dryrun/dryrun.txt       Mon Oct 28 13:53:16 2013 UTC
@@ -82,7 +82,7 @@
     [Documentation]  FAIL Several failures occurred:\n\n
... 1) Keyword 'BuiltIn.Should Be Equal' expected 2 to 4 arguments, got 1.\n\n
     ...  2) No keyword with name 'Invalid Syntax UK' found.\n\n
-    ...  3) Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 4.\n\n
+    ...  3) Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 5.\n\n
... 4) No keyword with name 'Yet another non-existing keyword' found.\n\n
     ...  5) No keyword with name 'Does not exist' found.
     Should Be Equal  1
@@ -114,6 +114,6 @@

 UK with multiple failures
     Invalid Syntax UK
-    Log  too  many  arguments  here
+    Log  too  many  arguments  here  is
     Yet another non-existing keyword

=======================================
--- /atest/testdata/cli/dryrun/more_tests.txt   Fri Feb  1 08:54:21 2013 UTC
+++ /atest/testdata/cli/dryrun/more_tests.txt   Mon Oct 28 13:53:16 2013 UTC
@@ -4,7 +4,7 @@

 *** Test Cases ***
 Some other test
- [Documentation] FAIL Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 0. + [Documentation] FAIL Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 0.
     Fail  Not actually executed so won't fail.
     Log

=======================================
--- /atest/testdata/cli/dryrun/run_keyword_variants.txt Thu Sep 12 10:27:57 2013 UTC +++ /atest/testdata/cli/dryrun/run_keyword_variants.txt Mon Oct 28 13:53:16 2013 UTC
@@ -1,10 +1,10 @@
 *** Variables ***
 ${existing} =  foo
-${LOG GOT WRONG ARGS} = Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got +${LOG GOT WRONG ARGS} = Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got
 ${UK GOT WRONG ARGS} =  Keyword 'UK' expected 0 arguments, got
 ${LOG KW} =  Log
 @{LOG THAT} =  Log  that  DEBUG
-
+@{FIVE} =    1    2    3    4    5

 *** Test Cases ***
 Run Keyword With Keyword with Invalid Number of Arguments
@@ -71,17 +71,20 @@
     Run Keywords  Fail  No Operation  Log  UK  Missing

 Run Keywords With Arguments When All Keywords Pass
-    Run Keywords  Log Many  this  is  AND  No Operation
+    Run Keywords  Log Many  this  is  valid  AND  No Operation

 Run Keywords With Arguments When One Keyword Fails
-    [Documentation]  FAIL  ${LOG GOT WRONG ARGS} 3.
-    Run Keywords  Log  FOO  AND  Log  Bar  DEBUG  this should fail
+    [Documentation]  FAIL  ${LOG GOT WRONG ARGS} 5.
+    Run Keywords  Log  valid  AND  Log  1  2  3  4  5

 Run Keywords With Arguments When Multiple Keyword Fails
     [Documentation]  FAIL  Several failures occurred:\n\n
-    ...  1) ${LOG GOT WRONG ARGS} 3.\n\n
-    ...  2) No keyword with name 'no kw' found.
-    Run Keywords  Log  FOO  DEBUG  this should fail  AND  no kw
+    ...  1) ${LOG GOT WRONG ARGS} 6.\n\n
+    ...  2) No keyword with name 'Unknown Keyword' found.
+    Run Keywords
+    ...    Log    msg    DEBUG    and    too    many    args
+    ...    AND
+    ...    Unknown Keyword

 Run Keywords With Arguments With Variables
Run Keywords ${LOG KW} this DEBUG AND @{LOG THAT} AND Log only kw
@@ -114,33 +117,33 @@
     ...  1) ${LOG GOT WRONG ARGS} 0.\n\n
     ...  2) ${UK GOT WRONG ARGS} 1.\n\n
     ...  3) No keyword with name 'Non Existing' found.\n\n
-    ...  4) ${LOG GOT WRONG ARGS} 3.
+    ...  4) ${LOG GOT WRONG ARGS} 5.
     Run Keyword If    expression    No Operation    ELSE    UK
     RunKeywordIf      expression    Log             ELSE    No Operation
runkeywordif expression No operation ELSE UK not allowed - RUN_KEYWORD_IF expression Non Existing ELSE Log 1 2 3 + RUN_KEYWORD_IF expression Non Existing ELSE Log 1 2 3 4 5

 Run Keyword If with ELSE IF
     [Documentation]  FAIL  Several failures occurred:\n\n
     ...  1) ${LOG GOT WRONG ARGS} 0.\n\n
     ...  2) ${UK GOT WRONG ARGS} 1.\n\n
     ...  3) No keyword with name 'Non Existing' found.\n\n
-    ...  4) ${LOG GOT WRONG ARGS} 3.
+    ...  4) ${LOG GOT WRONG ARGS} 5.
     Run Keyword If    expr    No Operation    ELSE IF    expr    UK
Run Keyword If expr Log ELSE IF expr No Operation Run Keyword If expr No operation ELSE IF expr UK not allowed - Run Keyword If expr Non Existing ELSE IF expr Log 1 2 3 + Run Keyword If expr Non Existing ELSE IF expr Log 1 2 3 4 5

 Run Keyword If with ELSE IF and ELSE
     [Documentation]  FAIL  Several failures occurred:\n\n
     ...  1) ${LOG GOT WRONG ARGS} 0.\n\n
     ...  2) ${UK GOT WRONG ARGS} 2.\n\n
     ...  3) No keyword with name 'not found kw' found.\n\n
-    ...  4) ${LOG GOT WRONG ARGS} 3.
+    ...  4) ${LOG GOT WRONG ARGS} 5.
     Run Keyword If    expr    Log
     ...    ELSE IF    expr    UK    1    2
     ...    ELSE IF    expr    not found kw
-    ...    ELSE    Log    1   2   3
+    ...    ELSE    Log    1    2    3    4    5

 Run Keyword If with ELSE IF and ELSE without keywords
     [Documentation]  FAIL  Several failures occurred:\n\n
@@ -175,26 +178,26 @@

 Run Keyword If with escaped or non-caps ELSE IF and ELSE
     [Documentation]  FAIL  Several failures occurred:\n\n
-    ...  1) ${LOG GOT WRONG ARGS} 3.\n\n
+    ...  1) ${LOG GOT WRONG ARGS} 6.\n\n
     ...  2) ${LOG GOT WRONG ARGS} 5.
-     Run Keyword If    expr    Log    \ELSE IF    not expr    not kw
- Run Keyword If expr Log \ELSE not kw (and not level either)
-     Run Keyword If    expr    Log    else if    valid args for log
+ Run Keyword If expr Log \ELSE IF INFO and too many args
+     Run Keyword If    expr    Log    \ELSE    DEBUG
+     Run Keyword If    expr    Log    else if    WARN    html=yes
      Run Keyword If    expr    Log    else    too    many    args    again

 Run Keyword If with list variable in ELSE IF and ELSE
     [Documentation]  FAIL  Several failures occurred:\n\n
-    ...  1) ${LOG GOT WRONG ARGS} 4.\n\n
-    ...  2) ${LOG GOT WRONG ARGS} 5.
+    ...  1) ${LOG GOT WRONG ARGS} 5.\n\n
+    ...  2) ${LOG GOT WRONG ARGS} 8.
     Run Keyword If    @{list}
     Run Keyword If    @{list}    ELSE      @{list}
     Run Keyword If    @{list}    ELSE IF   @{list}
     Run Keyword If    @{list}    ELSE IF   @{list}    ELSE    @{list}
Run Keyword If @{list} Not Considered Keyword ELSE @{list} XXX
-    Run Keyword If    @{list}    ELSE      Log   1    2     3    4
+    Run Keyword If    @{list}    ELSE      Log   1    2    3    4    5
Run Keyword If expr No Operation ELSE IF @{list} UK 1 Run Keyword If expr No Operation ELSE IF @{list} UK 1 2
-    ...    ELSE IF    expr       Log    1    2    3    4    5
+ ... ELSE IF expr Log 1 2 3 4 5 6 7 8 Run Keyword If expr No Operation ELSE IF @{list} No Operation
     ...  ELSE    @{list}

=======================================
--- /atest/testdata/cli/dryrun/run_keyword_variants_in_suite_teardown.txt Mon May 27 21:27:12 2013 UTC +++ /atest/testdata/cli/dryrun/run_keyword_variants_in_suite_teardown.txt Mon Oct 28 13:53:16 2013 UTC
@@ -7,18 +7,18 @@
     ...    Parent suite teardown failed:
     ...    Several failures occurred:
     ...
-    ...    1) Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 0.
+    ...    1) Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 0.
     ...
     ...    2) No keyword with name 'Non Existing' found.
     ...
-    ...    3) Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 3.
+    ...    3) Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 5.
     ...
-    ...    4) Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 0.
+    ...    4) Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 0.
     No Operation

 *** Keywords ***
 Run All Suite Teardown Related Run Keyword Variants
     Run Keyword If All Critical Tests Passed    Log
     Run Keyword If Any Critical Tests Failed    Non Existing
-    Run Keyword If All Tests Passed    Log    too    many    args
+ Run Keyword If All Tests Passed Log too many args we have
     Run Keyword If Any Tests Failed    Log
=======================================
--- /atest/testdata/core/invalid_syntax.html    Wed Nov 21 15:22:07 2012 UTC
+++ /atest/testdata/core/invalid_syntax.html    Mon Oct 28 13:53:16 2013 UTC
@@ -391,7 +391,7 @@
       <td>[ Document ]</td>
       <td>Note that doc and tags should be set ok.</td>
       <td>FAIL</td>
-      <td>Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 4.<br>
+      <td>Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 6.<br>
       </td>
       <td></td>
     </tr>
@@ -413,9 +413,9 @@
     </tr>
     <tr>
       <td></td>
-      <td></td>
-      <td></td>
-      <td></td>
+      <td>...</td>
+      <td>we</td>
+      <td>have</td>
       <td></td>
       <td></td>
     </tr>
@@ -424,7 +424,7 @@
       <td>[ Document ]</td>
       <td>Note that doc and tags should be set ok.</td>
       <td>FAIL</td>
-      <td>Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 3.<br>
+      <td>Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 5.<br>
       </td>
       <td></td>
     </tr>
@@ -702,10 +702,10 @@
       <td>arguments</td>
     </tr>
     <tr>
-      <td></td>
-      <td></td>
-      <td></td>
       <td></td>
+      <td>...</td>
+      <td>we</td>
+      <td>have</td>
       <td></td>
     </tr>
     <tr>
=======================================
--- /atest/testdata/standard_libraries/builtin/run_keywords.txt Mon May 27 21:27:12 2013 UTC +++ /atest/testdata/standard_libraries/builtin/run_keywords.txt Mon Oct 28 13:53:16 2013 UTC
@@ -1,9 +1,8 @@
-***Settings***
+*** Settings ***
 Suite Setup  Run keywords  Passing  ${NOOP}
 Suite Teardown  Run keywords  Failing  Passing  Fail

-
-***Variables***
+*** Variables ***
 ${NOOP}      No Operation
 ${PASSING}   Passing
 ${FAILING}   Failing
@@ -12,9 +11,8 @@
 ${TD ERR}    Parent suite teardown failed:\n${ERRORS}
 ${ATD ERR}   \n\nAlso parent suite teardown failed:\n${ERRORS}

-
+*** Test Cases ***

-***Test Cases***
 Passing keywords
     [Documentation]  FAIL  ${TD ERR}
     Run keywords  No Operation  Passing  Log Variables
@@ -46,7 +44,7 @@
     Run keywords  Passing  Non-Existing  Non-Existing But Not Executed

 Wrong number of arguments to keyword
- [Documentation] FAIL Keyword 'BuiltIn.Log' expected 1 to 2 arguments, got 0.${ATD ERR} + [Documentation] FAIL Keyword 'BuiltIn.Log' expected 1 to 4 arguments, got 0.${ATD ERR}
     Run keywords  Passing  Log  This isn't argument to Log keyword

 In test setup
@@ -66,8 +64,8 @@
     ...  Executed but doesn't exist
     ...  Executed after syntax error in teardown

+*** Keywords ***

-***Keywords***
 Passing
     Log  Hello, world!

--

--- 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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to