On Sun, Mar 22, 2020 at 10:18 AM <cl...@isep.ipp.pt> wrote:
>
> From: Cláudio Maia <cl...@isep.ipp.pt>
>
> ---
>  user/tools/tester.rst | 153 ++++++++++++++++++++++--------------------
>  1 file changed, 82 insertions(+), 71 deletions(-)
>
> diff --git a/user/tools/tester.rst b/user/tools/tester.rst
> index c3c3fe2..44263da 100644
> --- a/user/tools/tester.rst
> +++ b/user/tools/tester.rst
> @@ -10,26 +10,26 @@ RTEMS Tester and Run
>  .. index:: Tools, rtems-test, rtems-run
>
>  The RTEMS Tester is a test tool that provides a command line interface to run
> -test executable on supported targets. The tool provides back-end support for
> +test executables on supported targets. The tool provides back-end support for
>  common simulators, debuggers and boot loaders. Board support package (BSP)
>  configurations for RTEMS are provided and can be used to run all the tests in
> -the RTEMS test suite. The tool and it's framework is not specific to RTEMS 
> and
> +the RTEMS test suite. The tool and its framework is not specific to RTEMS and
>  can be configured to run any suitable application.
>
>  RTEMS is an embedded operating system and is cross-compiled on a range of 
> host
> -machines. The executables run on the target hardware and this can vary widely
> +machines. The executables run on hardware which can vary widely
>  from open source simulators, commercial simulators, debuggers with 
> simulators,
> -debuggers with hardware specific pods and devices to targe boot
> -loaders. Testing RTEMS requires the cross-compiled test executable is
> -transferred to the target hardware, executed and the output captured and
> +debuggers with hardware specific pods and devices, and target boot
Maybe "targets with boot loaders"?

> +loaders. Testing RTEMS requires that the cross-compiled test executable is
> +transferred to the target hardware, executed, the output captured and
>  returned to the test host where it is analyzed to determine the test
>  result.
>
>  Running the RTEMS tests on your target is very important. It provides you 
> with
>  a traceable record showing that your RTEMS version and its tools are working 
> at
>  the level the RTEMS development team expect when releasing RTEMS. Being able 
> to
> -easily run the tests and verify the results is critical in maintaining a high
> -standard.
> +easily run the tests and verify the results is critical in maintaining high
> +standards.
>
>  Available BSP testers
>  ---------------------
> @@ -63,7 +63,7 @@ You can list the available BSP testers with:
>
>  Some of the BSPs may appear more than once in the list. These are aliased BSP
>  configurations that may use a different back-end. An example is the erc32 
> BSP.
> -There is the ``erc32`` tester which uses the GDB back-end and the
> +There is the erc32 tester which uses the GDB back-end and the
>  ``erc32-run`` tester which uses the ``run`` command for erc32. We will show
>  how to use :program:`rtems-test` command with the erc32 BSP because it is 
> easy
>  to build an use.
> @@ -84,19 +84,20 @@ configure after running ``bootstrap``.
>                          --enable-tests --enable-rtemsbsp=erc32
>      $ make
>
> -Add the `-j` option to the make command with the number of cores to run a
> -parallel build.
> +Add the `-j` option to the make command with the number of parallel jobs to 
> run a
> +parallel build (e.g. `-j 8`).
>
>  Building all the tests takes time and it uses more disk so be patient. When
> -finished all the tests will have been built. Some BSPs may require a 
> post-build
> -process to be run on the RTEMS ELF executable to create an image suitable for
> -execution. This can be built into the configuration script and the tester 
> will
> -perform a pre-test command to covert the executable to a suitable format for
> -your target.
> +make finishes, all the tests will have been built.
> +
> +.. note:: Some BSPs may require a post-build process to be run on the RTEMS 
> ELF
> +          executable to create an image suitable for execution. This can be 
> built
> +          into the configuration script and the tester will perform a 
> pre-test
> +          command to covert the executable to a suitable format for your 
> target.
typo: convert

>
>  Before running all the tests it is a good idea to run the ``hello`` test. The
>  ``hello`` test is an RTEMS version of the classic "Hello World" example and
> -running it shows you have a working tool chain and build of RTEMS ready to 
> run
> +running it shows you have a working toolchain and build of RTEMS ready to run
>  the tests. Using the run with the ERC32 BSP the command is:
>
>  .. code-block:: none
> @@ -145,14 +146,14 @@ Running the example using SIS:
>
>      sis> q
>
> -The examples can also be run using GDB with SIS as the backend. SIS can be 
> connected to
> +The examples can also be run using GDB with SIS as the back end. SIS can be 
> connected to
Since you make this change, make it everywhere consistently "back
end", there are many more "back-end"

>  gdb through a network socket using the gdb remote interface.
>
> -Either start SIS with ``-gdb``, or issue the ``gdb`` command inside SIS, and 
> connect
> +Either start SIS with ``-gdb`` or issue the ``gdb`` command inside SIS, and 
> connect
Keep the comma, or add "then" after and.

>  gdb with ``target remote:1234``. The default port is ``1234``, the port can 
> be changed
>  using the ``-port`` option.
>
> -Open a terminal and issue the command:
> +Open a terminal and issue the following command:
>
>  .. code-block:: none
>
> @@ -163,7 +164,7 @@ Open a terminal and issue the command:
>
>      gdb: listening on port 1234
>
> -Now open another terminal and issue the command:
> +Now open another terminal and issue the following command:
>
>  .. code-block:: none
>
> @@ -187,7 +188,7 @@ Now open another terminal and issue the command:
>      (gdb) target remote:1234
>
>  The ``target remote:1234`` will tell gdb to connect to the sis simulator. 
> After this
> -command the output of the first terminal will change to
> +command the output of the first terminal will change to:
>
>  .. code-block:: none
>
> @@ -199,7 +200,7 @@ command the output of the first terminal will change to
>      gdb: listening on port 1234 connected
>
>  Before running the executable, it must be loaded, this is done using the
> -``load`` command in gdb, and to run, issue ``continue`` command.
> +``load`` command in gdb, and to run it, issue the ``continue`` command.
>
>  .. code-block:: none
>
> @@ -270,10 +271,10 @@ Running the Tests
>
>  The :program:`rtems-test` command line accepts a range of options. These are
>  discussed later in the manual. Any command line argument without a `--` 
> prefix
> -is a test executable. You can pass more than one executable on the command
> -line. If the executable is a path to a directory the directories under that
> -path are searched for any file with a ``.exe`` extension. This is the default
> -extension for RTEMS executables built within RTEMS.
> +is a test executable or a path to a directory. When using a path to a 
> directory,
> +the directories under that path are searched for any file with a ``.exe`` 
> extension.
> +This is the  default extension for RTEMS executables built within RTEMS. You 
> can
> +pass more than one executable on the command line.
I believe you can also pass multiple directories. This paragraph could
probably be simplified:
  Command line arguments without a `--` prefix are test executables or
paths to directories.
(etc)

>
>  To run the erc32 tests enter the following command from the top of the erc32
>  BSP build tree:
> @@ -311,24 +312,26 @@ BSP build tree:
>      Average test time: 0:00:27.963000
>      Testing time     : 0:06:03.519012
>
> +The output has been shortened so it fits nicely here. Following the order of
> +appearance above, we have the following:
> +
>  * The RTEMS Tester's test command. In this example we are using an absolute
>    path.
>  * The ``--log`` option sends the output to a log file. By default only failed
>    tests log the complete output.
> -* Select the erc32 BSP and use GDB.
> -* Path to the RTEMS tools so GDB can be found.
> -* Path to the erc32 BSP built with all tests to run. If you add 
> subdirectories
> +* The ``--rtems-bsp`` option selects the erc32 BSP.
> +* The path to the RTEMS tools so GDB can be found.
> +* The path to the erc32 BSP tests to run. If you add subdirectories
>    to the path specific tests can be run.
> -* The output has been shortened so it fits nicely here.
> -* The test results shows passes, fails, timeouts, and invalid results. In
> -  this run 13 tests passed and 5 tests timed out and 1 is invalid. The
> -  timeouts are probably due to the tests not having enough execute time to
> -  complete. The default timeout is 180 seconds and some of the interrupt 
> tests
> -  need longer. The amount of time depends on the performance of your host CPU
> -  running the simulations.
> -* The output shows the average time per test and the total time taken to run
> -  all the tests.
> -* If the path to the testsuites was put to
> +* The test results so far. See details below.
> +* Overall results of the run. In this run, 13 tests passed, 5 tests timed out
> +  and 1 is invalid. The timeouts are probably due to the tests not having 
> enough
> +  time to complete. The default timeout is 180 seconds and some of the 
> interrupt
> +  tests need more time. The amount of time each test takes depends on the
> +  performance of your host CPU when running the simulations.
> +* The average time per test and the total time taken to run all the tests.
> +
> +.. note:: If the path to the testsuites was put to
>    ``sparc-rtems5/c/erc32/testsuites`` instead of
>    ``sparc-rtems5/c/erc32/testsuites/samples`` then all the executables
>    would have been tested and not just those in samples.
> @@ -338,31 +341,35 @@ This BSP requires the ``--rtems-tools`` option because 
> the SPARC GDB is the
>  will require this option so you will need to check the specifics of the BSP
>  configuration to determine if it is needed.
>
> -The output you see is each test starting to run. The :program:`rtems-test`
> +An output line is printed for each test that is executed. The 
> :program:`rtems-test`
>  command by default runs multiple tests in parallel so you will see a number
> -start quickly and then new tests start as others finish. The output shown 
> here
> -is from an 8 core processor so the first 8 are started in parallel and the
> -status shows the order in which they actually started, which is not 1 to 8.
> +of tests starting quickly and then new tests start as others finish. For 
> example,
> +the output shown above is from an 8-core processor. Thus, the first 8 tests
> +started in parallel and the status shows the order in which they actually 
> started,
> +which is not necessarily sequential, as it happens in the example above where
> +test 8 started before test 7.
>
> -The test start line shows the current status of the tests. The status 
> reported
> -is when the test starts and not the result of that test. A fail, timeout or
> -invalid count changing means a test running before this test started failed,
> -not the starting test. The status here has 7 tests passed, no failures, 5
> -timeouts and 1 invalid test.
> +Each output line shows information about the current status of the tests.
> +The status reported in each line is the status when the test starts and not 
> the
> +result of that particular test. Thus, a fail, timeout or invalid count 
> changing
> +means a test running before this test failed. The overall status in the end
> +shows that 7 tests passed, no failures, 5 timeouts and 1 invalid test.
> +
> +Concerning the output of each line, we have the following:
>
>  .. code-block:: none
>
>      [ 5/13] p:2  f:0  u:0  e:0  I:0  B:0  t:0  i:0  | sparc/erc32: hello.exe
>
> -* [ 5/13] indicates the test number, in this case test 5 of 13 tests.
> -* ``p`` is the passed test count (2 in this case)
> -* ``f`` is the failed test count (0 in this case)
> -* ``u`` is the count for test marked as "user-input" as they expect input 
> from
> -  user
> -* ``e`` is the expected-fail count (tests that are expected to fail)
> -* ``I`` is the count for tests the results of which are indeterminate
> -* ``B`` is the count for benchmarked tests
> -* ``t`` is the timeout test count
> +* [ 5/13] indicates the test number, in this case test 5 out of 13 tests.
> +* ``p`` is the passed test count (2 in this case).
> +* ``f`` is the failed test count (0 in this case).
> +* ``u`` is the count for test marked as "user-input" (tests that expect input
> +    from the user).
> +* ``e`` is the expected-fail count (tests that are expected to fail).
> +* ``I`` is the count for tests the results of which are indeterminate.
> +* ``B`` is the count for benchmarked tests.
> +* ``t`` is the timeout test count.
>  * ``i`` is the invalid test count.
>  * ``sparc/erc32`` is the architecture and BSP names.
>  * ``hello.exe`` is the executable name.
> @@ -371,11 +378,11 @@ The test log records all the tests and results. The 
> logging mode by default
>  only provides the output history if a test fails, times out, or is invalid. 
> The
>  time taken by each test is also recorded.
>
> -The tests must complete in a specified time or the test is marked as timed
> -out. The default timeout is 3 minutes and can be globally changed using the
> +The tests must complete in a specified period of time or the test is marked 
> as
> +timed out. The default timeout is 3 minutes and can be globally changed 
> using the
>  ``--timeout`` command line option. The time required to complete a test can
> -vary. When simulators are run in parallel the time taken depends on the
> -specifics of the host machine being used. A test per core is the most stable
> +vary. When simulators are run in parallel, the time taken depends on the 
> resources
> +available on the host machine being used. A test per core is the most stable
>  method even though more tests can be run than available cores. If your 
> machine
>  needs longer or you are using a VM you may need to lengthen the timeout.
>
> @@ -408,7 +415,7 @@ A test fails if the start marker is seen and there is no 
> end marker.
>
>  User-input
>  ^^^^^^^^^^
> -A test marked as "user-input" as it expects input from user
> +A test marked as "user-input" as it expects input from user.
>
>  Expected-fail
>  ^^^^^^^^^^^^^
> @@ -442,7 +449,7 @@ The following modes of logging are available:
>  * Failures (``failures``)
>  * None (``none``)
>
> -The mode is controlled using the command line option ``--log-mode`` using
> +This mode is controlled using the command line option ``--log-mode`` using
>  the values listed above.
>
>  All
> @@ -530,19 +537,19 @@ Reporting
>  ---------
>
>  The RTEMS Tester supports output in a machine parsable format. This can be
> -enabled using the options "--report-path" and "--report-format". Currently,
> +enabled using the options ``--report-path`` and ``--report-format``. 
> Currently,
>  JSON output is supported using these options like so:
> -'--report-path="report" --report-format=json'
> +``--report-path="report" --report-format=json``
>
> -This will produce a file "report.json" that contains output equivalent to the
> -"failure" logging mode.
> +This will produce a file ``report.json`` that contains output equivalent to 
> the
> +``failure`` logging mode.
>
>  Running Tests in Parallel
>  -------------------------
>
>  The RTEMS Tester supports parallel execution of tests by default. This only
> -makes sense if the test back-end can run in parallel without resulting in
> -resource contention. Simulators are an example of back-ends that can run in
> +makes sense if the test back end can run in parallel without resulting in
> +resource contention. Simulators are an example of back ends that can run in
>  parallel. A hardware debug tool like a BDM or JTAG pod can manage only a
>  single test at once so the tests need to be run one at a time.
>
> @@ -554,7 +561,7 @@ Command Line Help
>  -----------------
>
>  The :program:`rtems-test` command line accepts a range of options. You can
> -review the available option by the ``--help`` option:
> +review the available options by using the ``--help`` option:
>
>  .. code-block:: none
>
> @@ -580,3 +587,7 @@ review the available option by the ``--help`` option:
>      --timeout                    : Set the test timeout in seconds (default 
> 180 seconds)
>      --trace                      : Trace the execution
>      --warn-all                   : Generate warnings
> +
> +.. note:: The list of options is growing according to the needs of each 
> release.
Replace "is growing according to the needs" by "may change in"
> +          Please see the available options for the release you are using for
> +          more information.
> --
> 2.17.1
>
> _______________________________________________
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to