Пример #1
0
static char
*test_HDR_InsertIdx(void)
{
#define NODES 10
#define SIZEOF_NEXTTBL (64 * sizeof(struct hdrt_node *))
    struct hdrt_node *hdrt, *hdrt2, *next;

    printf("... testing HDR_InsertIdx()\n");

    next = calloc(64, sizeof(next));
    MAN(next);

    hdrt = HDR_InsertIdx(NULL, "Foo", 4711);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    MASSERT(strcmp(hdrt->str, "FOO") == 0);
    MASSERT(hdrt->idx == 4711);
    MASSERT(memcmp(hdrt->next, next, SIZEOF_NEXTTBL) == 0);
    MASSERT(HDR_FindIdx(hdrt, "Foo:") == 4711);
    MASSERT(HDR_FindIdx(hdrt, "Foo: bar") == 4711);
    MASSERT(HDR_FindIdx(hdrt, "Foo:bar") == 4711);
    MASSERT(HDR_FindIdx(hdrt, "Foo: bar baz") == 4711);
    MASSERT(HDR_FindIdx(hdrt, "  Foo  : ") == 4711);
    MASSERT(HDR_FindIdx(hdrt, "  fOO  : ") == 4711);

    MASSERT(HDR_FindIdx(hdrt, "Bar:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "   Bar:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Fo:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Food:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Foo bar baz") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Foo") == -1);
    MASSERT(HDR_FindIdx(hdrt, "   Foo   ") == -1);
    MASSERT(HDR_FindIdx(hdrt, "      ") == -1);
    MASSERT(HDR_FindIdx(hdrt, "") == -1);

    hdrt = HDR_InsertIdx(hdrt, "Foo", 4711);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    MASSERT(HDR_FindIdx(hdrt, "Foo:") == 4711);

    hdrt = HDR_InsertIdx(hdrt, "Bar", 1147);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    MASSERT(*hdrt->str == '\0');
    MASSERT(hdrt->idx == -1);
    for (int i = 0; i < 64; i ++)
        if (i != next_idx('B') && i != next_idx('F'))
            MAZ(hdrt->next[i]);
    hdrt2 = hdrt->next[next_idx('B')];
    MCHECK_OBJ_NOTNULL(hdrt2, HDRT_NODE_MAGIC);
    MASSERT(strcmp(hdrt2->str, "AR") == 0);
    MASSERT(hdrt2->idx == 1147);
    MASSERT(memcmp(hdrt2->next, next, SIZEOF_NEXTTBL) == 0);
    hdrt2 = hdrt->next[next_idx('F')];
    MCHECK_OBJ_NOTNULL(hdrt2, HDRT_NODE_MAGIC);
    MASSERT(strcmp(hdrt2->str, "OO") == 0);
    MASSERT(hdrt2->idx == 4711);
    MASSERT(memcmp(hdrt2->next, next, SIZEOF_NEXTTBL) == 0);
    MASSERT(HDR_FindIdx(hdrt, "Foo:") == 4711);
    MASSERT(HDR_FindIdx(hdrt, "Bar:") == 1147);

    hdrt = HDR_InsertIdx(NULL, "Accept", 1);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    hdrt = HDR_InsertIdx(hdrt, "Accept-Encoding", 2);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    MASSERT(strcmp(hdrt->str, "ACCEPT") == 0);
    MASSERT(hdrt->idx == 1);
    for (int i = 0; i < 64; i ++)
        if (i != next_idx('-'))
            MAZ(hdrt->next[i]);
    hdrt2 = hdrt->next[next_idx('-')];
    MCHECK_OBJ_NOTNULL(hdrt2, HDRT_NODE_MAGIC);
    MASSERT(strcmp(hdrt2->str, "ENCODING") == 0);
    MASSERT(hdrt2->idx == 2);
    MASSERT(memcmp(hdrt2->next, next, SIZEOF_NEXTTBL) == 0);
    MASSERT(HDR_FindIdx(hdrt, "Accept:") == 1);
    MASSERT(HDR_FindIdx(hdrt, "Accept-Encoding:") == 2);

    hdrt = HDR_InsertIdx(hdrt, "Accept-Charset", 3);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    hdrt = HDR_InsertIdx(hdrt, "Accept-Language", 4);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    hdrt = HDR_InsertIdx(hdrt, "Accept-Datetime", 5);
    MCHECK_OBJ_NOTNULL(hdrt, HDRT_NODE_MAGIC);
    MASSERT(strcmp(hdrt->str, "ACCEPT") == 0);
    MASSERT(hdrt->idx == 1);
    for (int i = 0; i < 64; i ++)
        if (i != next_idx('-'))
            MAZ(hdrt->next[i]);
    hdrt2 = hdrt->next[next_idx('-')];
    MCHECK_OBJ_NOTNULL(hdrt2, HDRT_NODE_MAGIC);
    MASSERT(*hdrt2->str == '\0');
    MASSERT(hdrt2->idx == -1);
    for (int i = 0; i < 64; i ++)
        if (i != next_idx('C') && i != next_idx('D') && i != next_idx('E')
            && i != next_idx('L'))
            MAZ(hdrt2->next[i]);
    MCHECK_OBJ_NOTNULL(hdrt2->next[next_idx('C')], HDRT_NODE_MAGIC);
    MCHECK_OBJ_NOTNULL(hdrt2->next[next_idx('D')], HDRT_NODE_MAGIC);
    MCHECK_OBJ_NOTNULL(hdrt2->next[next_idx('E')], HDRT_NODE_MAGIC);
    MCHECK_OBJ_NOTNULL(hdrt2->next[next_idx('L')], HDRT_NODE_MAGIC);
    MASSERT(strcmp(hdrt2->next[next_idx('C')]->str, "HARSET") == 0);
    MASSERT(hdrt2->next[next_idx('C')]->idx == 3);
    MASSERT(strcmp(hdrt2->next[next_idx('D')]->str, "ATETIME") == 0);
    MASSERT(hdrt2->next[next_idx('D')]->idx == 5);
    MASSERT(strcmp(hdrt2->next[next_idx('E')]->str, "NCODING") == 0);
    MASSERT(hdrt2->next[next_idx('E')]->idx == 2);
    MASSERT(strcmp(hdrt2->next[next_idx('L')]->str, "ANGUAGE") == 0);
    MASSERT(hdrt2->next[next_idx('L')]->idx == 4);
    MASSERT(HDR_FindIdx(hdrt, "Accept:") == 1);
    MASSERT(HDR_FindIdx(hdrt, "Accept-Charset:") == 3);
    MASSERT(HDR_FindIdx(hdrt, "Accept-Encoding:") == 2);
    MASSERT(HDR_FindIdx(hdrt, "Accept-Language:") == 4);
    MASSERT(HDR_FindIdx(hdrt, "Accept-Datetime:") == 5);

    hdrt = HDR_InsertIdx(NULL, "Accept-Encoding", 4711);
    hdrt = HDR_InsertIdx(hdrt, "Accept", 1147);
    MASSERT(HDR_FindIdx(hdrt, "Accept:") == 1147);
    MASSERT(HDR_FindIdx(hdrt, "Accept-Charset:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Accept-Encoding:") == 4711);

    hdrt = HDR_InsertIdx(NULL, "Content-Disposition", 1);
    hdrt = HDR_InsertIdx(hdrt, "Content-Encoding", 2);
    hdrt = HDR_InsertIdx(hdrt, "Content-Language", 3);
    hdrt = HDR_InsertIdx(hdrt, "Content-Length", 4);
    hdrt = HDR_InsertIdx(hdrt, "Content-Location", 5);
    hdrt = HDR_InsertIdx(hdrt, "Content-MD5", 6);
    hdrt = HDR_InsertIdx(hdrt, "Content-Range", 7);
    hdrt = HDR_InsertIdx(hdrt, "Content-Type", 8);
    MASSERT(HDR_FindIdx(hdrt, "Content-Disposition:") == 1);
    MASSERT(HDR_FindIdx(hdrt, "Content-Encoding:") == 2);
    MASSERT(HDR_FindIdx(hdrt, "Content-Language:") == 3);
    MASSERT(HDR_FindIdx(hdrt, "Content-Length:") == 4);
    MASSERT(HDR_FindIdx(hdrt, "Content-Location:") == 5);
    MASSERT(HDR_FindIdx(hdrt, "Content-MD5:") == 6);
    MASSERT(HDR_FindIdx(hdrt, "Content-Range:") == 7);
    MASSERT(HDR_FindIdx(hdrt, "Content-Type:") == 8);

    MASSERT(HDR_FindIdx(hdrt, "Content-:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Content-L:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Content-La:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Content-Le:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Content-Lo:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Content:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "Content-Foo:") == -1);

    hdrt = HDR_InsertIdx(NULL, "X-Csrf-Token", 11);
    hdrt = HDR_InsertIdx(hdrt, "X-Forwarded-For", 12);
    hdrt = HDR_InsertIdx(hdrt, "X-Forwarded-Host", 13);
    hdrt = HDR_InsertIdx(hdrt, "X-Forwarded-Proto", 14);

    MASSERT(HDR_FindIdx(hdrt, "X-Csrf-Token:") == 11);
    MASSERT(HDR_FindIdx(hdrt, "X-Forwarded-For:") == 12);
    MASSERT(HDR_FindIdx(hdrt, "X-Forwarded-Host:") == 13);
    MASSERT(HDR_FindIdx(hdrt, "X-Forwarded-Proto:") == 14);

    MASSERT(HDR_FindIdx(hdrt, "X-:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "X-Forwarded-:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "X-Forwarded-F:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "X-Forwarded-H:") == -1);
    MASSERT(HDR_FindIdx(hdrt, "X-Forwarded-P:") == -1);

    hdrt = HDR_InsertIdx(NULL, "Beresp", 0);
    hdrt = HDR_InsertIdx(hdrt, "BerespBody", 1);
    hdrt = HDR_InsertIdx(hdrt, "Bereq", 2);
    MASSERT(HDR_FindIdx(hdrt, "Beresp:") == 0);
    MASSERT(HDR_FindIdx(hdrt, "BerespBody:") == 1);
    MASSERT(HDR_FindIdx(hdrt, "Bereq:") == 2);

    return NULL;
}
Пример #2
0
main()
{  
	int i=10,j=5,k=0;
	k= MAN(i++,++j);
	printf("%d %d %d\n",i,j,k);
}