1*83ee113eSDavid van MoolenbroekIntroduction 2*83ee113eSDavid van Moolenbroek------------ 3*83ee113eSDavid van Moolenbroek 4*83ee113eSDavid van MoolenbroekThat is only a brief overview of tests in ISC DHCP. For more thorough 5*83ee113eSDavid van Moolenbroekdescription, see ISC DHCP Developer's Guide. You can generate it, by 6*83ee113eSDavid van Moolenbroekhaving Doxygen installed and doing: 7*83ee113eSDavid van Moolenbroek 8*83ee113eSDavid van Moolenbroek cd doc 9*83ee113eSDavid van Moolenbroek make devel 10*83ee113eSDavid van Moolenbroek 11*83ee113eSDavid van Moolenbroekand then opening doc/html/index.html 12*83ee113eSDavid van Moolenbroek 13*83ee113eSDavid van MoolenbroekTests Overview 14*83ee113eSDavid van Moolenbroek-------------- 15*83ee113eSDavid van Moolenbroek 16*83ee113eSDavid van MoolenbroekIn DHCP, a unit test exercises a particular piece of code in 17*83ee113eSDavid van Moolenbroekisolation. There is a separate unit test per module or API. Each unit 18*83ee113eSDavid van Moolenbroektest lives in a directory beneath the code it is designed to exercise. 19*83ee113eSDavid van MoolenbroekSo, we (will eventually) have: 20*83ee113eSDavid van Moolenbroek 21*83ee113eSDavid van Moolenbroek server/tests/ 22*83ee113eSDavid van Moolenbroek client/tests/ 23*83ee113eSDavid van Moolenbroek common/tests/ 24*83ee113eSDavid van Moolenbroek dhcpctl/tests/ 25*83ee113eSDavid van Moolenbroek 26*83ee113eSDavid van MoolenbroekAnd so on. 27*83ee113eSDavid van Moolenbroek 28*83ee113eSDavid van MoolenbroekWe are using ATF (Automated Test Framework) as a framework to run our 29*83ee113eSDavid van Moolenbroekunittests. See ISC DHCP Developer's Guide for much more thorough 30*83ee113eSDavid van Moolenbroekdescription of unit-test and ATF framework in general. 31*83ee113eSDavid van Moolenbroek 32*83ee113eSDavid van MoolenbroekRunning Unit Tests 33*83ee113eSDavid van Moolenbroek------------------ 34*83ee113eSDavid van Moolenbroek 35*83ee113eSDavid van MoolenbroekIn order to run the unit tests for DHCP, enable ATF support during configure: 36*83ee113eSDavid van Moolenbroek 37*83ee113eSDavid van Moolenbroek$ ./configure --with-atf 38*83ee113eSDavid van Moolenbroek 39*83ee113eSDavid van MoolenbroekAnd then use: 40*83ee113eSDavid van Moolenbroek 41*83ee113eSDavid van Moolenbroek$ make check 42*83ee113eSDavid van Moolenbroek 43*83ee113eSDavid van MoolenbroekThis will run all of the unit tests. Make sure that ATF is actually 44*83ee113eSDavid van Moolenbroekinstalled and that you have atf-run and atf-report tool in your PATH. 45*83ee113eSDavid van Moolenbroek 46*83ee113eSDavid van MoolenbroekYou can run a single test by going to the appropriate test directory 47*83ee113eSDavid van Moolenbroekand invoking the test directly: 48*83ee113eSDavid van Moolenbroek 49*83ee113eSDavid van Moolenbroek$ cd server/tests 50*83ee113eSDavid van Moolenbroek$ atf-run | atf-report 51*83ee113eSDavid van Moolenbroek 52*83ee113eSDavid van MoolenbroekThere are also a number of options that you can use when running a 53*83ee113eSDavid van Moolenbroektest. See atf-run and atf-report documentation. 54*83ee113eSDavid van Moolenbroek 55*83ee113eSDavid van MoolenbroekAdding a New Unit Test 56*83ee113eSDavid van Moolenbroek---------------------- 57*83ee113eSDavid van Moolenbroek 58*83ee113eSDavid van MoolenbroekSee ISC DHCP Developer's Guide. 59*83ee113eSDavid van Moolenbroek 60*83ee113eSDavid van MoolenbroekAdding a New Unit Test Program 61*83ee113eSDavid van Moolenbroek------------------------------ 62*83ee113eSDavid van Moolenbroek 63*83ee113eSDavid van MoolenbroekSee ISC DHCP Developer's Guide. 64