From 3f2f64f41475550527a5621f57d0b0d2b30ee179 Mon Sep 17 00:00:00 2001 From: rodrigosiqueira Date: Sun, 4 Dec 2016 11:35:13 -0200 Subject: 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(+) (limited to 'CodingReadme') 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 +``` -- cgit v1.2.3 From b932e2355de3d2d3b7a61fe86d11265ba02aba2a Mon Sep 17 00:00:00 2001 From: rodrigosiqueira Date: Sat, 10 Dec 2016 18:21:56 -0200 Subject: Improved unit test structure Signed-off-by: rodrigosiqueira Signed-off-by: chaws <18oliveira.charles@gmail.com> * Merged run-all-unitest inside unit-test target * Fixed Makefile dependencies * Updated documentation about unit test --- CodingReadme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CodingReadme') diff --git a/CodingReadme b/CodingReadme index d2e975dab..041f3b1fa 100644 --- a/CodingReadme +++ b/CodingReadme @@ -436,8 +436,8 @@ 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 +* Install: cmake and pthread +* Clone google test project from: https://github.com/google/googletest and enter in the project directory * Inside project directory, type: -- cgit v1.2.3 From 71c47f13ed15d4635a408832d69f0cfb6b35443e Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Sun, 11 Dec 2016 11:02:56 +0100 Subject: Some minor CodingReadme changes in unit test section --- CodingReadme | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'CodingReadme') diff --git a/CodingReadme b/CodingReadme index 041f3b1fa..9e85add28 100644 --- a/CodingReadme +++ b/CodingReadme @@ -429,7 +429,7 @@ well with C/C++ code. Hence, it was chosen (google test) 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 @@ -456,7 +456,7 @@ 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: @@ -467,19 +467,13 @@ If you want to add new unit tests for Yosys, just follow the steps below: 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): +To compile and run all unit tests, just go to yosys root directory and type: ``` make unit-test -make run-all-unitest ``` If you want to remove all unit test files, type: -- cgit v1.2.3