C TAP Harness 1.11

Since I synchronized the latest WebAuth release with this, I should actually release it, although there may be some follow-on changes and another release from some other things in progress.

The biggest change in this release is that I redid the source organization so that everything is under tests, and I redid the includes in the TAP library so that they assume they're under tests/tap and not just a directory named tap.

I have mixed feelings about this, since it forces a particular code layout on users of the library unless they patch the TAP library. However, I wanted to introduce a macros.h header that was used by other TAP headers, and if I stayed with having the TAP library reference headers under a tap directory and then users add a -I flag to find the headers, every test program that used the library would have to have a -I flag to pick up the nested includes. With non-recursive Automake, that's horribly painful unless you build the entire project with a -I flag pointing to the TAP directory (which also seems wrong). The only other alternative was to use #include "", but I find that very fragile.

Also in this release are various portability fixes. Feature-test macros were an interesting experiment, but they make everything difficult on Solaris, so now feature-test macros are only used if specifically requested or when built with gcc -ansi (or similar flags). I also avoided using local in the TAP shell library (not supported by Solaris) in favor of regular global variables with a tap_ prefix. Finally, the is_double function and all the floating point code is now in separate files that can be copied in as desired, avoiding the need to link with -lm on Solaris systems if is_double is not used anywhere in the test suite.

You can get the latest version from the C TAP Harness distribution page.

Posted: 2012-04-25 21:35 — Why no comments?

Last spun 2022-02-06 from thread modified 2013-01-04