mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-26 09:24:37 +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
 | |
| ```
 |