diff options
author | N. Engelhardt <nak@yosyshq.com> | 2021-03-22 19:16:25 +0100 |
---|---|---|
committer | N. Engelhardt <nak@yosyshq.com> | 2021-03-22 19:16:25 +0100 |
commit | d9ec35a526b9583727ef484ec68bc288dcddb0c8 (patch) | |
tree | 01716e03bbb854262fcd128f9c4b3bba5344b751 /guidelines/UnitTests | |
parent | 92d5550a90558a0292c8ac63cecabb2de30eb6aa (diff) | |
download | yosys-d9ec35a526b9583727ef484ec68bc288dcddb0c8.tar.gz yosys-d9ec35a526b9583727ef484ec68bc288dcddb0c8.tar.bz2 yosys-d9ec35a526b9583727ef484ec68bc288dcddb0c8.zip |
split CodingReadme into multiple files
Diffstat (limited to 'guidelines/UnitTests')
-rw-r--r-- | guidelines/UnitTests | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/guidelines/UnitTests b/guidelines/UnitTests new file mode 100644 index 000000000..d42a63ce5 --- /dev/null +++ b/guidelines/UnitTests @@ -0,0 +1,69 @@ +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 and pthread +* 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 +``` + +* 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 + +Run unit test +------------- + +To compile and run all unit tests, just go to yosys root directory and type: +``` +make unit-test +``` + +If you want to remove all unit test files, type: +``` +make clean-unit-test +``` |