Unit tests

Alan DeKok aland at deployingradius.com
Thu Oct 31 19:03:02 CET 2013

  We need a bit more sanity checks on the server functionality.  Sorry
about the engineering issues, but the server is getting to be *huge*.
It's getting hard to test everything before a release.

  I've just committed a unit test program.  It's basically "radiusd",
but without any socket functionality.  It's mean to:

- read the config
  - load modules, etc. just like a real server
- read a "packet" from a file
- pass the packet through the server
- print the response to another file

  It also lets you specify a "filter" file.  It will pass the response
through the filter, and see if it matches.  This lets the validation
checks be independent of attribute ordering, whitespace, etc.

  It can be run via:

$ ./build/make/jlibtool --mode=execute ./build/bin/unittest -D share/ -d
./raddb/ -i src/tests/user_password -xx -f src/tests/boo -o src/tests/out

  I'll be committing a simple test framework to src/tests/ over the next
while.  If people can assist with patches, it would help enormously.

  The goal is to have all of the functionality of the server tested via
functional / unit tests before every release.  That will help avoid
"brown bag" issues with a release.

  Alan DeKok.

More information about the Freeradius-Devel mailing list