Skip to content

Commit

Permalink
Docs: Formatting recent md -> rst converts
Browse files Browse the repository at this point in the history
  • Loading branch information
KrystalDelusion committed Nov 12, 2024
1 parent 66eec43 commit 55da97c
Show file tree
Hide file tree
Showing 3 changed files with 181 additions and 170 deletions.
26 changes: 13 additions & 13 deletions docs/source/yosys_internals/extending_yosys/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,28 @@ Formatting of code

- Yosys code is using tabs for indentation. Tabs are 8 characters.

- A continuation of a statement in the following line is indented by
two additional tabs.
- A continuation of a statement in the following line is indented by two
additional tabs.

- Lines are as long as you want them to be. A good rule of thumb is
to break lines at about column 150.
- Lines are as long as you want them to be. A good rule of thumb is to break
lines at about column 150.

- Opening braces can be put on the same or next line as the statement
opening the block (if, switch, for, while, do). Put the opening brace
on its own line for larger blocks, especially blocks that contains
blank lines.
- Opening braces can be put on the same or next line as the statement opening
the block (if, switch, for, while, do). Put the opening brace on its own line
for larger blocks, especially blocks that contains blank lines.

- Otherwise stick to the Linux Kernel Coding Style:
https://www.kernel.org/doc/Documentation/process/coding-style.rst
- Otherwise stick to the `Linux Kernel Coding Style`_.

.. _Linux Kernel Coding Style: https://www.kernel.org/doc/Documentation/process/coding-style.rst


C++ Language
~~~~~~~~~~~~

Yosys is written in C++17.

In general Yosys uses "int" instead of "size_t". To avoid compiler
warnings for implicit type casts, always use "GetSize(foobar)" instead
of "foobar.size()". (GetSize() is defined in kernel/yosys.h)
In general Yosys uses ``int`` instead of ``size_t``. To avoid compiler warnings
for implicit type casts, always use ``GetSize(foobar)`` instead of
``foobar.size()``. (``GetSize()`` is defined in :file:`kernel/yosys.h`)

Use range-based for loops whenever applicable.
53 changes: 28 additions & 25 deletions docs/source/yosys_internals/extending_yosys/test_suites.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,30 +40,31 @@ page`_.
* Tests allow refactoring;

With those advantages in mind, it was required to choose a framework which fits
well with C/C++ code. Hence, it was chosen (google test)
[https://github.com/google/googletest], because it is largely used and it is
relatively easy learn.
well with C/C++ code. Hence, `google test`_ was chosen, because it is widely
used and it is relatively easy learn.

.. _google test: https://github.com/google/googletest

Install and configure google test (manually)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In this section, you will see a brief description of how to install google
test. However, it is strongly recommended that you take a look to the official
repository (https://github.com/google/googletest) and refers to that if you
have any problem to install it. Follow the steps below:
In this section, you will see a brief description of how to install google test.
However, it is strongly recommended that you take a look to the official
repository (https://github.com/google/googletest) and refers to that if you have
any problem to install it. Follow the steps below:

* Install: cmake and pthread
* Clone google test project from: https://github.com/google/googletest and
enter in the project directory
* Clone google test project from: https://github.com/google/googletest and enter
in the project directory
* Inside project directory, type:

```
cmake -DBUILD_SHARED_LIBS=ON .
make
```
.. code-block:: console
cmake -DBUILD_SHARED_LIBS=ON .
make
* After compilation, copy all "*.so" inside directory "googlemock" and
"googlemock/gtest" to "/usr/lib/"
* After compilation, copy all ``*.so`` inside directory ``googlemock`` and
``googlemock/gtest`` to ``/usr/lib/``
* Done! Now you can compile your tests.

If you have any problem, go to the official repository to find help.
Expand All @@ -76,23 +77,25 @@ page`_.

If you want to add new unit tests for Yosys, just follow the steps below:

* Go to directory "yosys/test/unit/"
* Go to directory :file:`test/unit/`
* In this directory you can find something similar Yosys's directory structure.
To create your unit test file you have to follow this pattern:
fileNameToImplementUnitTest + Test.cc. E.g.: if you want to implement the
unit test for kernel/celledges.cc, you will need to create a file like this:
tests/unit/kernel/celledgesTest.cc;
fileNameToImplementUnitTest + Test.cc. E.g.: if you want to implement the unit
test for ``kernel/celledges.cc``, you will need to create a file like this:
``tests/unit/kernel/celledgesTest.cc``;
* Implement your unit test

Run unit tests
~~~~~~~~~~~~~~

To compile and run all unit tests, just go to yosys root directory and type:
```
make unit-test
```

.. code-block:: console
make unit-test
If you want to remove all unit test files, type:
```
make clean-unit-test
```

.. code-block:: console
make clean-unit-test
Loading

0 comments on commit 55da97c

Please sign in to comment.