qa.dox 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
  2. //
  3. // This Source Code Form is subject to the terms of the Mozilla Public
  4. // License, v. 2.0. If a copy of the MPL was not distributed with this
  5. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
  6. /**
  7. @page qa Kea Quality Assurance processes
  8. @section qaUnitTests Unit-tests
  9. Kea uses the Google C++ Testing Framework (also called googletest or gtest) as a
  10. base for our C++ unit-tests. See http://code.google.com/p/googletest/ for
  11. details. We used to have Python unit-tests that were inherited from BIND10
  12. days. Those tests are removed now, so please do not develop any new Python
  13. tests in Kea. If you want to write DHCP tests in Python, we encourage you to
  14. take a look at ISC Forge: http://kea.isc.org/wiki/IscForge. You must have \c
  15. gtest installed or at least extracted in a directory before compiling Kea
  16. unit-tests. To enable unit-tests in Kea, use:
  17. @code
  18. ./configure --with-gtest=/path/to/your/gtest/dir
  19. @endcode
  20. or
  21. @code
  22. ./configure --with-gtest-source=/path/to/your/gtest/dir
  23. @endcode
  24. Depending on how you compiled or installed \c gtest (e.g. from sources
  25. or using some package management system) one of those two switches will
  26. find \c gtest. After that you make run unit-tests:
  27. @code
  28. make check
  29. @endcode
  30. The following environment variable can affect unit-tests:
  31. - KEA_LOCKFILE_DIR - Specifies a directory where the logging system should
  32. create its lock file. If not specified, it is prefix/var/run/kea, where prefix
  33. defaults to /usr/local. This variable must not end with a slash. There is one
  34. special value: "none", which instructs Kea to not create lock file at
  35. all. This may cause issues if several processes log to the same file.
  36. Also see Kea User's Guide, section 15.3.
  37. - KEA_LOGGER_DESTINATION - Specifies logging destination. If not set, logged
  38. messages will not be recorded anywhere. There are 3 special values:
  39. stdout, stderr and syslog. Any other value is interpreted as a filename.
  40. Also see Kea User's Guide, section 15.3.
  41. - KEA_PIDFILE_DIR - Specifies the directory which should be used for PID files
  42. as used by dhcp::Daemon or its derivatives. If not specified, the default is
  43. prefix/var/run/kea, where prefix defaults to /usr/local. This variable must
  44. not end with a slash.
  45. - KEA_SOCKET_TEST_DIR - if set, it specifies the directory where Unix
  46. sockets are created. There's OS limitation on how long a Unix socket
  47. path can be. It is typcially slightly over 100 characters. If you
  48. happen to build and run unit-tests in deeply nested directories, this
  49. may become a problem. KEA_SOCKET_TEST_DIR can be specified to instruct
  50. unit-test to use a different directory. Must not end with slash (e.g.
  51. /tmp).
  52. */