Create unit tests for our basic utility library (LIBBU) #5BRL-CAD
Status: ClosedTime to complete: 72 hrs Mentors: erikgTags: C, unit test, utility

There are dozens of files in our core LIBBU library. As a core library used by nearly every one of BRL-CAD's tools, testing those functions for correct behavior is important.

References:

  • include/bu.h
  • src/libbu/bomb.c
  • src/libbu/tests/*.c (lots of examples to follow)

Code:

  • src/libbu/tests/bomb.c
  • src/libbu/tests/CMakeLists.txt

This task involves implementing a new unit test for any of LIBBU's source files that do not already have a unit test defined (or any that do not test all functions).  The test should run at least 10 public functions if there are multiple functions defined within one of our source files.

Some files might have LOTS of functions.  You don't have to test them all!  Just test at least 10 of them and if any prove to be challenging, let us know before you invest more than an hour.  Your unit test(s) must be hooked into our build system and "should" pass.  If you find a genuine bug, let us know (we can create follow-on tasks for any you investigate and fix).  We have lots of existing unit tests to follow as an example.

Submit your new unit test and build system changes as a patch file.  Let us know about any problems or bugs encountered.

 

Uploaded Work
File name/URLFile sizeDate submitted
http://sourceforge.net/p/brlcad/code/59113/n/aDecember 22 2013 12:28 UTC
http://sourceforge.net/p/brlcad/code/59120/n/aDecember 22 2013 18:55 UTC
Comments
Johannes Schulteon December 22 2013 10:52 UTCTask Claimed

I would like to work on this task.

Mandeep Kaur on December 22 2013 12:10 UTCTask Assigned

This task has been assigned to Johannes Schulte. You have 72 hours to complete this task, good luck!

Johannes Schulteon December 22 2013 12:29 UTCReady for review

The work on this task is ready to be reviewed.

erikg on December 22 2013 14:48 UTCinsufficient diagnostic information

This tester program only gives a single boolean output with no indication of which test fails. One (probably best) solution would be to have the test cases passed in as arguments in some form and have 8 add_test() commands in the cmake file, so ctest can isolate which test case failed. Another solution might be to have it print failure information. There are also only 8 tests run instead of the listed 10, and no 'corner case' tests such as empty lists, duplicate elements, "special" numbers (+/- inf, nan).

erikg on December 22 2013 14:48 UTCTask Needs More Work

One of the mentors has sent this task back for more work. Talk to the mentor(s) assigned to this task to satisfy the requirements needed to complete this task, submit your work again and mark the task as complete once you re-submit your work.

Johannes Schulteon December 22 2013 18:55 UTCReady for review

The work on this task is ready to be reviewed.

Sean on December 23 2013 08:53 UTCTask Closed

Congratulations, this task has been completed successfully.