I was very happy with CuTest the last time I needed to unit test C. It's only one .c/.h pair, comes with a small shell script which automatically finds all the tests to build the test suite and the assertion errors aren't entirely unhelpful.
Here is an example of one of my tests:
void TestBadPaths(CuTest *tc) {
// Directory doesn't exist
char *path = (char *)"/foo/bar";
CuAssertPtrEquals(tc, NULL, searchpath(path, "sh"));
// A binary which isn't found
path = (char *)"/bin";
CuAssertPtrEquals(tc, NULL, searchpath(path, "foobar"));
}