From: Victor Julien Date: Fri, 17 Mar 2023 16:27:25 +0000 (+0100) Subject: detect/http_client_body: remove and update tests X-Git-Tag: suricata-7.0.0-rc2~401 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a7e1eaaa2ceba95c69963348df1c596c5d18dde8;p=thirdparty%2Fsuricata.git detect/http_client_body: remove and update tests --- diff --git a/src/tests/detect-http-client-body.c b/src/tests/detect-http-client-body.c index 6bcb4ff325..2fdf1fe7d9 100644 --- a/src/tests/detect-http-client-body.c +++ b/src/tests/detect-http-client-body.c @@ -826,112 +826,65 @@ libhtp:\n\ */ static int DetectHttpClientBodyTest01(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 0; - SigMatch *sm = NULL; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert tcp any any -> any any " - "(msg:\"Testing http_client_body\"; " - "content:\"one\"; http_client_body; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 1; - } else { - goto end; - } - sm = de_ctx->sig_list->sm_lists[DETECT_SM_LIST_MATCH]; - if (sm != NULL) { - result &= (sm->type == DETECT_CONTENT); - result &= (sm->next == NULL); - } + Signature *s = DetectEngineAppendSig(de_ctx, "alert tcp any any -> any any " + "(msg:\"Testing http_client_body\"; " + "content:\"one\"; http_client_body; sid:1;)"); + FAIL_IF_NULL(s); - end: - DetectEngineCtxFree(de_ctx); + SigMatch *sm = de_ctx->sig_list->init_data->smlists[DETECT_SM_LIST_MATCH]; + FAIL_IF_NOT_NULL(sm); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** * \test Test that a signature containing an valid http_client_body entry is * parsed. + * \todo error in sig 'http_client_body:;' */ static int DetectHttpClientBodyTest02(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 0; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert tcp any any -> any any " - "(msg:\"Testing http_client_body\"; " - "content:\"one\"; http_client_body:; sid:1;)"); - if (de_ctx->sig_list != NULL) - result = 1; - end: - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert tcp any any -> any any " + "(msg:\"Testing http_client_body\"; " + "content:\"one\"; http_client_body:; sid:1;)"); + FAIL_IF_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** - * \test Test that an invalid signature containing no content but a http_client_body - * is invalidated. + * \test Test invalid signatures */ static int DetectHttpClientBodyTest03(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 0; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert tcp any any -> any any " - "(msg:\"Testing http_client_body\"; " - "http_client_body; sid:1;)"); - if (de_ctx->sig_list == NULL) - result = 1; - - end: - DetectEngineCtxFree(de_ctx); - - return result; -} -/** - * \test Test that an invalid signature containing a rawbytes along with a - * http_client_body is invalidated. - */ -static int DetectHttpClientBodyTest04(void) -{ - DetectEngineCtx *de_ctx = NULL; - int result = 0; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - - de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert tcp any any -> any any " - "(msg:\"Testing http_client_body\"; " - "content:\"one\"; rawbytes; http_client_body; sid:1;)"); - if (de_ctx->sig_list == NULL) - result = 1; + const char *sigs[] = { + "alert tcp any any -> any any (http_client_body; sid:1;)", + "alert tcp any any -> any any " + "(msg:\"Testing http_client_body\"; " + "content:\"one\"; rawbytes; http_client_body; sid:2;)", + NULL, + }; - end: + for (uint32_t i = 0; sigs[i] != NULL; i++) { + Signature *s = DetectEngineAppendSig(de_ctx, sigs[i]); + FAIL_IF_NOT_NULL(s); + } DetectEngineCtxFree(de_ctx); - - return result; + PASS; } /** @@ -940,24 +893,21 @@ static int DetectHttpClientBodyTest04(void) */ static int DetectHttpClientBodyTest05(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 0; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert tcp any any -> any any " - "(msg:\"Testing http_client_body\"; " - "content:\"one\"; http_client_body; nocase; sid:1;)"); - if (de_ctx->sig_list != NULL) - result = 1; - end: - DetectEngineCtxFree(de_ctx); + const char *sigs[] = { + "alert tcp any any -> any any (content:\"one\"; http_client_body; nocase; sid:1;)", + NULL, + }; - return result; + for (uint32_t i = 0; sigs[i] != NULL; i++) { + Signature *s = DetectEngineAppendSig(de_ctx, sigs[i]); + FAIL_IF_NULL(s); + } + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -1010,12 +960,11 @@ static int DetectHttpClientBodyTest06(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:\"message\"; http_client_body; " - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:\"message\"; http_client_body; " + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -1115,12 +1064,11 @@ static int DetectHttpClientBodyTest07(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:\"message\"; http_client_body; " - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:\"message\"; http_client_body; " + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -1234,12 +1182,11 @@ static int DetectHttpClientBodyTest08(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:\"message\"; http_client_body; " - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:\"message\"; http_client_body; " + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -1356,12 +1303,11 @@ static int DetectHttpClientBodyTest09(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:\"body1This\"; http_client_body; " - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:\"body1This\"; http_client_body; " + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -1478,12 +1424,11 @@ static int DetectHttpClientBodyTest10(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:\"body1This\"; http_client_body; nocase;" - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:\"body1This\"; http_client_body; nocase;" + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -1591,12 +1536,11 @@ static int DetectHttpClientBodyTest11(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:!\"message1\"; http_client_body; " - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:!\"message1\"; http_client_body; " + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -1687,12 +1631,11 @@ static int DetectHttpClientBodyTest12(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:!\"message\"; http_client_body; " - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:!\"message\"; http_client_body; " + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -1783,12 +1726,12 @@ static int DetectHttpClientBodyTest13(void) de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx,"alert http any any -> any any " - "(msg:\"http client body test\"; " - "content:\"abcdefghijklmnopqrstuvwxyz0123456789\"; http_client_body; " - "sid:1;)"); - if (de_ctx->sig_list == NULL) - goto end; + Signature *s = DetectEngineAppendSig(de_ctx, + "alert http any any -> any any " + "(msg:\"http client body test\"; " + "content:\"abcdefghijklmnopqrstuvwxyz0123456789\"; http_client_body; " + "sid:1;)"); + FAIL_IF_NULL(s); SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx); @@ -2537,14 +2480,12 @@ static int DetectHttpClientBodyTest27(void) goto end; de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert icmp any any -> any any " - "(content:\"one\"; offset:10; http_client_body; pcre:/two/; " - "content:\"three\"; distance:10; http_client_body; within:10; " - "content:\"four\"; distance:10; sid:1;)"); - if (de_ctx->sig_list == NULL) { - printf("de_ctx->sig_list == NULL\n"); - goto end; - } + Signature *s = DetectEngineAppendSig(de_ctx, + "alert icmp any any -> any any " + "(content:\"one\"; offset:10; http_client_body; pcre:/two/; " + "content:\"three\"; distance:10; http_client_body; within:10; " + "content:\"four\"; distance:10; sid:1;)"); + FAIL_IF_NULL(s); result = 1; @@ -2703,12 +2644,10 @@ static int DetectHttpClientBodyTest31(void) goto end; de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert icmp any any -> any any " - "(content:\"one\"; within:5; http_client_body; sid:1;)"); - if (de_ctx->sig_list == NULL) { - printf("de_ctx->sig_list == NULL\n"); - goto end; - } + Signature *s = + DetectEngineAppendSig(de_ctx, "alert icmp any any -> any any " + "(content:\"one\"; within:5; http_client_body; sid:1;)"); + FAIL_IF_NULL(s); result = 1; @@ -2726,12 +2665,10 @@ static int DetectHttpClientBodyTest32(void) goto end; de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert icmp any any -> any any " - "(content:\"one\"; http_client_body; within:5; sid:1;)"); - if (de_ctx->sig_list == NULL) { - printf("de_ctx->sig_list != NULL\n"); - goto end; - } + Signature *s = + DetectEngineAppendSig(de_ctx, "alert icmp any any -> any any " + "(content:\"one\"; http_client_body; within:5; sid:1;)"); + FAIL_IF_NULL(s); result = 1; @@ -2749,12 +2686,9 @@ static int DetectHttpClientBodyTest33(void) goto end; de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, "alert icmp any any -> any any " - "(content:\"one\"; within:5; sid:1;)"); - if (de_ctx->sig_list == NULL) { - printf("de_ctx->sig_list == NULL\n"); - goto end; - } + Signature *s = DetectEngineAppendSig(de_ctx, "alert icmp any any -> any any " + "(content:\"one\"; within:5; sid:1;)"); + FAIL_IF_NULL(s); result = 1; @@ -2945,7 +2879,6 @@ void DetectHttpClientBodyRegisterTests(void) UtRegisterTest("DetectHttpClientBodyTest01", DetectHttpClientBodyTest01); UtRegisterTest("DetectHttpClientBodyTest02", DetectHttpClientBodyTest02); UtRegisterTest("DetectHttpClientBodyTest03", DetectHttpClientBodyTest03); - UtRegisterTest("DetectHttpClientBodyTest04", DetectHttpClientBodyTest04); UtRegisterTest("DetectHttpClientBodyTest05", DetectHttpClientBodyTest05); UtRegisterTest("DetectHttpClientBodyTest06", DetectHttpClientBodyTest06); UtRegisterTest("DetectHttpClientBodyTest07", DetectHttpClientBodyTest07);