Added explanation about configure and create test
authorrodrigosiqueira <rodrigosiqueiramelo@gmail.com>
Sun, 4 Dec 2016 13:35:13 +0000 (11:35 -0200)
committerrodrigosiqueira <rodrigosiqueiramelo@gmail.com>
Sun, 4 Dec 2016 13:35:13 +0000 (11:35 -0200)
Added explanation about configure unit test environment and how to add new unit tests

CodingReadme

index cbe1fb8bef428514c86f69341c3145ad7db3d935..d2e975dab0976ab215e321cb4d536936fdae684d 100644 (file)
@@ -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
+```