diff options
author | Clifford Wolf <clifford@clifford.at> | 2016-12-11 11:03:25 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2016-12-11 11:03:25 +0100 |
commit | 8a717ae1dc58b7c979be57db5e7fa66804828aa6 (patch) | |
tree | 15e98a55092bd2270f34f1083bc1fbc16f515202 /CodingReadme | |
parent | a44cc7a3d1c21c37c7dfb88b92bb479389dfce16 (diff) | |
parent | 71c47f13ed15d4635a408832d69f0cfb6b35443e (diff) | |
download | yosys-8a717ae1dc58b7c979be57db5e7fa66804828aa6.tar.gz yosys-8a717ae1dc58b7c979be57db5e7fa66804828aa6.tar.bz2 yosys-8a717ae1dc58b7c979be57db5e7fa66804828aa6.zip |
Merge branch 'LSS-USP-unit-test-structure'
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 +``` |