Infrastructure work

Moss fingers

I went back and forth on posting this one, as it's not one of my better pictures and it's not entirely in focus. But I really liked the pattern that the moss made on this concrete. It's more "spiky" than I usually expect in moss, with a sharp contrast between the concrete and the moss.

So, when I started working on INN, I found that it had this nice utility library in libinn. I like utility libraries, and I like portability, so I put a ton of work into it, pulling in ideas from my nascent C knowledge and various Autoconf-driven portability bits. It grew nicely over the years, and I like to think it makes INN development much easier than it would be otherwise.

I learned how to do real testing from Perl module development, so when I decided to add a test suite to INN, I decided to use the same general protocol for test cases that Perl does since it was nice and simple. But I didn't want a Perl requirement in INN's build system. So I wrote my own version of INN's test suite implementation in pure C.

When I started writing lots of other C packages besides INN, I started stealing ideas from INN. I made a few abortive attempts at abstracting out the portability stuff into a separate package, but I never really finished; instead, I just copied and synced stuff around between packages. But now that I've got probably a dozen independent projects that all need some of the same portability glue, that's getting kind of ridiculous. So about a year ago, maybe less, I started making a concerted effort to put together packages of my test harness and my utility libraries so that all my packages can pull from the same source.

Of course, I can't leave good enough alone once I start doing stuff like this, so I rewrote my C and shell libraries for writing TAP-compliant test scripts and made them look much more like Perl's Test::More, and then added a bunch more features to the test harness because I was procrastinating rewriting all my test suites for the new API. I finally started today on rewriting the test suite for my collection of utility functions to use the new test API (after rewriting some of their supporting functions to be much more general).

All this is a long-winded way to say that I'm currently working on adding passing large arguments to remctl programs via standard input, in that way in which I work on programming projects. Whenever you have to touch something, you should always fix some other unrelated infrastructure thing at the same time!

Posted: 2009-05-09 00:42 — Why no comments?

Last spun 2013-07-01 from thread modified 2013-01-04