testing.c

#include <stdlib.h>
#include <llib/file.h>
#include <llib/str.h>

str_t pat = "$ ./";
#ifdef _WIN32
int pat_offs = 0;
#else
int pat_offs = -2;
#endif

#define errorf(fmt,...) fprintf(stderr,fmt,__VA_ARGS__)

int main(int argc, char **argv)
{
    char line[256];
    int pat_len = strlen(pat) + pat_offs;
    FILE* f = fopen(argc > 1 ? argv[1] : "test.file","r");
    int L = 0;
    while (file_gets(f,line,sizeof(line))) {
        L++;
        char *p = strstr(line,pat);
        char *cmd = p + pat_len;
        printf("cmd: %s\n",cmd);
        char **out = file_command_lines(cmd);
        while (*out && file_gets(f,line,sizeof(line))) {
            L++;
            if (*out)
                str_trim(*out);
            str_trim(line);
            if (! *out || ! str_eq(line,*out)) {
                errorf("mismatch line %d\n\t{%s}\n\t{%s}\n",L,line,*out);
                exit(1);
            }
            ++out;
        }
    }
    fclose(f);
    return 0;
}
generated by LDoc 1.4.3 Last updated 2015-04-27 12:35:55