diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2021-02-28 18:22:56 +0100 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2021-02-28 18:22:56 +0100 |
| commit | ed231c21894da3520929fc385027d57bbe0485a2 (patch) | |
| tree | 78cad4d2b85ac3baf951292225752ccd14acc2c3 /docs | |
| parent | b1e0674c4f91c39c426a145686c1c37f57528b46 (diff) | |
| download | minishell_test-ed231c21894da3520929fc385027d57bbe0485a2.tar.gz minishell_test-ed231c21894da3520929fc385027d57bbe0485a2.tar.bz2 minishell_test-ed231c21894da3520929fc385027d57bbe0485a2.zip | |
Merging common content between README.rst and index.rst in gettingstarted.rst
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/config.rst | 30 | ||||
| -rw-r--r-- | docs/gettingstarted.rst | 42 | ||||
| -rw-r--r-- | docs/index.rst | 102 |
3 files changed, 97 insertions, 77 deletions
diff --git a/docs/config.rst b/docs/config.rst index a8933d5..884cf9b 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -10,13 +10,11 @@ It looks for a ``minishell_test.cfg`` file in your project directory. Here is what the default configuration looks like: -.. code-block:: cfg - - .. include:: ../minishell_test/data/default.cfg +.. include:: ../minishell_test/data/default.cfg + :code: cfg -Format used for the configuration file: -https://docs.python.org/3/library/configparser.html#supported-ini-file-structure +The format of this file is described in more details `here <https://docs.python.org/3/library/configparser.html#supported-ini-file-structure>`_ Global ------ @@ -33,35 +31,35 @@ Global settings are defined under the ``minishell_test`` section: :type: true|false :default: false - Run the bonus tests + Run the bonus tests .. conf:: exec_name :type: PATH :default: minishell - Minishell executable name + Minishell executable name .. conf:: make :type: true|false :default: true - Run ``make`` in your project directory before the test + Run ``make`` in your project directory before the test .. conf:: pager :type: NAME :default: less - Pager to use when viewing your results + Pager to use when viewing your results .. conf:: log_path :type: PATH :default: minishell_test.log - File where to put the test results + File where to put the test results .. conf:: cache_path @@ -84,14 +82,14 @@ Shell settings are defined under the ``shell`` section: :type: LIST :default: rmdir env cat touch ls grep sh head - Commands available in test + Commands available in test .. conf:: path_variable :type: LIST :default: {cache:executables_path} - ``$PATH`` environment variable passed to the shell + ``$PATH`` environment variable passed to the shell Reference +++++++++ @@ -108,15 +106,15 @@ Reference shell settings are defined under the ``shell:reference`` section: :type: PATH :default: /bin/bash - Path to reference shell (shell which will be compared minishell) - has to support the ``-c`` option (``sh``, ``bash`` and ``zsh`` support it) + Path to reference shell (shell which will be compared minishell) + has to support the ``-c`` option (``sh``, ``bash`` and ``zsh`` support it) .. conf:: args :type: ARGV - Supplementary arguments to the reference shell - (e.g ``--posix`` can be used with bash for a more posix complient behavior) + | Supplementary arguments to the reference shell + | e.g ``--posix`` can be used with bash for a more posix complient behavior Timeout ------- diff --git a/docs/gettingstarted.rst b/docs/gettingstarted.rst new file mode 100644 index 0000000..e45ff38 --- /dev/null +++ b/docs/gettingstarted.rst @@ -0,0 +1,42 @@ +Getting Started +--------------- + +Installation +++++++++++++ + +.. code-block:: + + $ pip3 install minishell-test + $ pip3 install --user minishell-test # if you don't have root access + +Compatibility ++++++++++++++ + +Your executable **must** support the ``-c`` option which allow to pass command as string. + +.. code-block:: + + $ bash -c 'echo bonjour je suis | cat -e' + bonjour je suis$ + $ ./minishell -c 'echo bonjour je suis | cat -e' + bonjour je suis$ + + +.. note:: + With this setup ``argv[2]`` is what you would usually get in ``line`` from ``get_next_line``. + +Usage ++++++ + +Run all the predefined tests: + +.. code-block:: + + $ cd <MINISHELL> + $ minishell_test + +.. warning:: + If you get ``command not found``, do either of those things: + + * ``~/.local/bin`` to your ``PATH`` environment variable. + * run ``$ python3 -m minishell_test`` instead of ``$ minishell_test`` diff --git a/docs/index.rst b/docs/index.rst index 7726f0a..043c7a2 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,73 +1,16 @@ .. program:: minishell_test -minishell_test -============== - -Test for 42 school's minishell project. - -.. .. image:: https://i.imgur.com/98xh2xY.gif - -Getting Started ---------------- - -Installation -++++++++++++ - -.. code-block:: - - $ pip3 install minishell-test - $ pip3 install --user minishell-test # if you don't have root access - -Compatibility -+++++++++++++ - -Your executable **must** support the ``-c`` option which allow to pass command as string. - -.. code-block:: - - $ bash -c 'echo bonjour je suis | cat -e' - bonjour je suis$ - $ ./minishell -c 'echo bonjour je suis | cat -e' - bonjour je suis$ - - -.. note:: - With this setup ``argv[2]`` is what you would usually get in ``line`` from ``get_next_line``. - -Usage -+++++ - -Run all the predefined tests: - -.. code-block:: - - $ cd <MINISHELL> - $ minishell_test - -.. warning:: - If you get ``command not found``, do either of those things: - - * ``~/.local/bin`` to your ``PATH`` environment variable. - * run ``$ python3 -m minishell_test`` instead of ``$ minishell_test`` - - -Documentation -------------- +minishell_test documentation +============================ .. toctree:: - :maxdepth: 2 + :maxdepth: 1 config options developers - -.. code-block:: - - $ minishell_test --help - -The options are explained in more details in :ref:`options <options>`. - +.. include:: gettingstarted.rst Environement variables ---------------------- @@ -94,3 +37,40 @@ Linux ----- It will try to convert to output/status code of ``bash`` on Linux to the one on Mac. + +.. Add individual test +.. ------------------- +.. +.. In your suite function you can use the `test` function. With the following arguments: +.. +.. 1. Command to be tested (output and status will be compared to bash) +.. 2. A command to setup the sandbox directory where the tested command will be run +.. 3. List of files to watch (the content of each file will be compared) +.. +.. ```python +.. test("echo bonjour je suis") # simple command +.. test("cat < somefile", setup="echo file content > somefile") # setup +.. test("ls > somefile", setup="", files=["somefile"]) # watch a file +.. test("echo $A", exports={"A": "a"}) # export variables +.. # in the environment +.. test("echo bonjour", hook=lambda s: s.replace("o", "a")) # pass the shell output +.. # through a hook function +.. +.. test("cat < somefile > otherfile", +.. setup="echo file content > somefile", +.. files=["otherfile"]) +.. ``` +.. +.. ### Add Suite +.. +.. A test suite is a group of related tests. +.. +.. ```python +.. @suite() # @suite(bonus=True) if it's a bonus suite +.. def suite_yoursuitename(test): +.. """ a description of the suite """ +.. test(...) +.. test(...) +.. test(...) +.. ``` +.. |
