mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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
 | 
						|
```
 |