mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-15 13:28:59 +00:00
Added explanation about configure and create test
Added explanation about configure unit test environment and how to add new unit tests
This commit is contained in:
parent
e0152319f5
commit
3f2f64f414
75
CodingReadme
75
CodingReadme
|
@ -411,3 +411,78 @@ Updating the website:
|
||||||
git commit -am update
|
git commit -am update
|
||||||
make push
|
make push
|
||||||
|
|
||||||
|
How to add unit test
|
||||||
|
====================
|
||||||
|
|
||||||
|
Unit test brings some advantages, briefly, we can list some of them (reference
|
||||||
|
[1](https://en.wikipedia.org/wiki/Unit_testing)):
|
||||||
|
|
||||||
|
* Tests reduce bugs in new features;
|
||||||
|
* Tests reduce bugs in existing features;
|
||||||
|
* Tests are good documentation;
|
||||||
|
* Tests reduce the cost of change;
|
||||||
|
* 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.
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
* Install: cmake
|
||||||
|
* Clone google test project from: //github.com/rodrigosiqueira/logbook.git and
|
||||||
|
enter in the project directory
|
||||||
|
* Inside project directory, type:
|
||||||
|
|
||||||
|
```
|
||||||
|
cmake -DBUILD_SHARED_LIBS=ON .
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
|
Ps.: Some distros already have googletest packed. If your distro supports it,
|
||||||
|
you can use it instead of compile.
|
||||||
|
|
||||||
|
Create new unit test
|
||||||
|
=======================
|
||||||
|
|
||||||
|
If you want to add new unit tests for Yosys, just follow the steps below:
|
||||||
|
|
||||||
|
* Go to directory "yosys/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;
|
||||||
|
* Implement your unit test
|
||||||
|
* If you want to compile your tests, just go to yosys root directory and type:
|
||||||
|
```
|
||||||
|
make unit-test
|
||||||
|
```
|
||||||
|
|
||||||
|
Run unit test
|
||||||
|
=============
|
||||||
|
|
||||||
|
To run all unit tests, you need to compile it first and then run it. Follow the
|
||||||
|
steps below (from the yosys root directory):
|
||||||
|
```
|
||||||
|
make unit-test
|
||||||
|
make run-all-unitest
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to remove all unit test files, type:
|
||||||
|
```
|
||||||
|
make clean-unit-test
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in a new issue