xref: /minix3/external/bsd/dhcp/dist/tests/HOWTO-unit-test (revision 83ee113ee0d94f3844d44065af2311604e9a30ad)
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