diff options
author | Andrew Zonenberg <azonenberg@drawersteak.com> | 2016-12-12 17:05:06 +0800 |
---|---|---|
committer | Andrew Zonenberg <azonenberg@drawersteak.com> | 2016-12-12 17:05:06 +0800 |
commit | 01d8278e539933124de1336aa8ab70f49c6ac216 (patch) | |
tree | 835ec76259d82c74e975f52749e6360889e042af /CodingReadme | |
parent | c3c2983d12ce3b1ed6d7e025eb6b5141f3ed9b40 (diff) | |
parent | a61c88f12215eb8bfa1db62aec7c2c95bb3cc702 (diff) | |
download | yosys-01d8278e539933124de1336aa8ab70f49c6ac216.tar.gz yosys-01d8278e539933124de1336aa8ab70f49c6ac216.tar.bz2 yosys-01d8278e539933124de1336aa8ab70f49c6ac216.zip |
Merge https://github.com/cliffordwolf/yosys
Diffstat (limited to 'CodingReadme')
-rw-r--r-- | CodingReadme | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/CodingReadme b/CodingReadme index cbe1fb8be..9e85add28 100644 --- a/CodingReadme +++ b/CodingReadme @@ -411,3 +411,72 @@ Updating the website: git commit -am update 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 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 +``` |