#!/usr/bin/env bash # Auto generate single AllTests file for CuTest. # Searches through all *.c files in the current directory. # Prints to stdout. # Author: Asim Jalis # Date: 01/08/2003 if test $# -eq 0 ; then FILES=(*.c) else FILES=("$@") ; fi cat << _EOF /* This is auto-generated code. Edit at your own peril. */ #include #include #include "CuTest.h" _EOF cat "${FILES[@]}" | grep '^void Test' | sed -e 's/(.*$//' \ -e 's/$/(CuTest*);/' \ -e 's/^/extern /' cat << _EOF void RunAllTests(void) { CuString *output = CuStringNew(); CuSuite* suite = CuSuiteNew(); _EOF cat "${FILES[@]}" | grep '^void Test' | sed -e 's/^void //' \ -e 's/(.*$//' \ -e 's/^/ SUITE_ADD_TEST(suite, /' \ -e 's/$/);/' cat << _EOF CuSuiteRun(suite); CuSuiteSummary(suite, output); CuSuiteDetails(suite, output); printf("%s\n", output->buffer); CuStringDelete(output); CuSuiteDelete(suite); } int main(void) { RunAllTests(); } _EOF