~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/dev-tools/kunit/index.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/dev-tools/kunit/index.rst (Version linux-6.12-rc7) and /Documentation/dev-tools/kunit/index.rst (Version linux-4.17.19)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 =================================                 
  4 KUnit - Linux Kernel Unit Testing                 
  5 =================================                 
  6                                                   
  7 .. toctree::                                      
  8         :maxdepth: 2                              
  9         :caption: Contents:                       
 10                                                   
 11         start                                     
 12         architecture                              
 13         run_wrapper                               
 14         run_manual                                
 15         usage                                     
 16         api/index                                 
 17         style                                     
 18         faq                                       
 19         running_tips                              
 20                                                   
 21 This section details the kernel unit testing f    
 22                                                   
 23 Introduction                                      
 24 ============                                      
 25                                                   
 26 KUnit (Kernel unit testing framework) provides    
 27 unit tests within the Linux kernel. Using KUni    
 28 of test cases called test suites. The tests ei    
 29 if built-in, or load as a module. KUnit automa    
 30 failed test cases in the kernel log. The test     
 31 :doc:`KTAP (Kernel - Test Anything Protocol) f    
 32 It is inspired by JUnit, Python’s unittest.m    
 33 (C++ unit testing framework).                     
 34                                                   
 35 KUnit tests are part of the kernel, written in    
 36 language, and test parts of the Kernel impleme    
 37 language function). Excluding build time, from    
 38 completion, KUnit can run around 100 tests in     
 39 KUnit can test any kernel component, for examp    
 40 calls, memory management, device drivers and s    
 41                                                   
 42 KUnit follows the white-box testing approach.     
 43 internal system functionality. KUnit runs in k    
 44 restricted to things exposed to user-space.       
 45                                                   
 46 In addition, KUnit has kunit_tool, a script (`    
 47 that configures the Linux kernel, runs KUnit t    
 48 (:doc:`User Mode Linux </virt/uml/user_mode_li    
 49 parses the test results and                       
 50 displays them in a user friendly manner.          
 51                                                   
 52 Features                                          
 53 --------                                          
 54                                                   
 55 - Provides a framework for writing unit tests.    
 56 - Runs tests on any kernel architecture.          
 57 - Runs a test in milliseconds.                    
 58                                                   
 59 Prerequisites                                     
 60 -------------                                     
 61                                                   
 62 - Any Linux kernel compatible hardware.           
 63 - For Kernel under test, Linux kernel version     
 64                                                   
 65 Unit Testing                                      
 66 ============                                      
 67                                                   
 68 A unit test tests a single unit of code in iso    
 69 granularity of testing and allows all possible    
 70 code under test. This is possible if the code     
 71 have any external dependencies outside of the     
 72                                                   
 73                                                   
 74 Write Unit Tests                                  
 75 ----------------                                  
 76                                                   
 77 To write good unit tests, there is a simple bu    
 78 Arrange-Act-Assert. This is a great way to str    
 79 defines an order of operations.                   
 80                                                   
 81 - Arrange inputs and targets: At the start of     
 82   that allows a function to work. Example: ini    
 83   object.                                         
 84 - Act on the target behavior: Call your functi    
 85 - Assert expected outcome: Verify that the res    
 86   expected.                                       
 87                                                   
 88 Unit Testing Advantages                           
 89 -----------------------                           
 90                                                   
 91 - Increases testing speed and development in t    
 92 - Detects bugs at initial stage and therefore     
 93   compared to acceptance testing.                 
 94 - Improves code quality.                          
 95 - Encourages writing testable code.               
 96                                                   
 97 Read also :ref:`kinds-of-tests`.                  
 98                                                   
 99 How do I use it?                                  
100 ================                                  
101                                                   
102 You can find a step-by-step guide to writing a    
103 Documentation/dev-tools/kunit/start.rst           
104                                                   
105 Alternatively, feel free to look through the r    
106 or to experiment with tools/testing/kunit/kuni    
107 lib/kunit/kunit-example-test.c                    
108                                                   
109 Happy testing!                                    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php