From 3f2f64f41475550527a5621f57d0b0d2b30ee179 Mon Sep 17 00:00:00 2001 From: rodrigosiqueira Date: Sun, 4 Dec 2016 11:35:13 -0200 Subject: [PATCH] Added explanation about configure and create test Added explanation about configure unit test environment and how to add new unit tests --- CodingReadme | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/CodingReadme b/CodingReadme index cbe1fb8be..d2e975dab 100644 --- a/CodingReadme +++ b/CodingReadme @@ -411,3 +411,78 @@ 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 +* 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 +```