Profile cover photo
Profile photo
crpcut
12 followers -
the Compartmented Robust POSIX C++ Unit Test system
the Compartmented Robust POSIX C++ Unit Test system

12 followers
About
crpcut's posts

After a long pause version 1.9.3 is released.

This is a minor update to ensure compatibility with more modern compilers. Functionality has been verified both as C++11 and C++14 using g++ versions 4.9, 5.1 and 5.2 and also clang++ 3.6 and 3.7. The truly old compilers, like g++ 4.2 are still supported.

Post has attachment

Post has attachment
Well, this explains the weird errors I've seen lately... 
Photo

Post has attachment
Proof of concept code for matching regular expressions on stdout and stderr.

The code is a bit messy and needs cleaning up, and there's no handling of illegal regular expressions, but the general idea is there and not too tricky.

However, I would like some feedback from you on usability. Currently there's one macro EXPECT_REGEX() that takes the source (stdout or stderr) and a regular expression.

Is there a need for two sets of macros EXPECT_REGEX() and FAIL_ON_REGEX(), or some other name suggesting the idea that the regular expression must not match? If so, should both be allowed in parallel, requiring both to be true for the test to succeed?

How about multi-line matching? Should it always match the entire output regardless of regex::m, or should it match line by line if not multi-line, and consider any match (like the exit code from grep?)

Please comment below.
Photo
Photo
regex experiment
2 Photos - View album

1.9.2 was just made available. It supports old versions of CMake (I'm looking at you, Debian.) No functional changes.

Post has attachment
.deb's of 1.9.0 (patched to include libcrpcut_basic.so) for Ubuntu Precise and Quantal are available from launchpad.

Post has attachment
Ops, 1.9.1 is out. It correctly installs libcrpcut_basic.so. Now that was a stupid thing to miss.

Post has attachment
1.9.0 is out

Woke up at silly o'clock in the morning and figured I might as well go ahead with the release.

1.9.0 is a feature enhancement release with the highlights being an additional library without heap instrumentation to enable tests of code that implements its own heap functions, abolished need to predefine tags when compiled with C++11, and an added attribute "location" to all violation reports in XML format.

Post has attachment
1.9.0 is getting near, probably this weekend. It is mostly a matter of proof-reading the documentation and most likely make some clarifying changes in them.

The split library issue has been solved by providing three .so files. libcrpcut.so is the same as it always was. libcrpcut_basic.so has the heap functionality removed. There is also a libcrpcut_heap.so available, but its use is only documented as being experimental.

The first thing to take advantage of yesterdays obscure string trick is test tags in crpcut. If test sources are compiled with c++11 (using -std=c++11 or -std=c++0x) with g++-4.6 or later, or clang++-3.1 or later, tags can be anything the preprocessor can parse, and the macro DEFINE_TEST_TAG() has become a no-op. This was pushed to sourceforge just minutes ago.
Wait while more posts are being loaded