aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/config.rst30
-rw-r--r--docs/gettingstarted.rst42
-rw-r--r--docs/index.rst102
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(...)
+.. ```
+..