aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrodrigosiqueira <rodrigosiqueiramelo@gmail.com>2016-12-04 11:35:13 -0200
committerrodrigosiqueira <rodrigosiqueiramelo@gmail.com>2016-12-04 11:35:13 -0200
commit3f2f64f41475550527a5621f57d0b0d2b30ee179 (patch)
treef15ba08da0972700e5581dbe8c499e8525136c63
parente0152319f5ed6d99eb38bf6da40157a60fd48e04 (diff)
downloadyosys-3f2f64f41475550527a5621f57d0b0d2b30ee179.tar.gz
yosys-3f2f64f41475550527a5621f57d0b0d2b30ee179.tar.bz2
yosys-3f2f64f41475550527a5621f57d0b0d2b30ee179.zip
Added explanation about configure and create test
Added explanation about configure unit test environment and how to add new unit tests
-rw-r--r--CodingReadme75
1 files changed, 75 insertions, 0 deletions
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
+```