38 static void DetectTransformStripWhitespaceRegisterTests(
void);
46 "modify buffer to strip whitespace before inspection";
50 TransformStripWhitespace;
52 DetectTransformStripWhitespaceSetup;
54 DetectTransformStripWhitespaceRegisterTests;
77 const uint8_t *input = buffer->
inspect;
79 uint8_t output[input_len];
80 uint8_t *oi = output, *os = output;
83 for (uint32_t i = 0; i < input_len; i++) {
84 if (!isspace(*input)) {
89 uint32_t output_size = oi - os;
98 const uint8_t *input = buffer->
inspect;
100 uint8_t output[input_len * 2];
101 uint8_t *oi = output, *os = output;
104 for (uint32_t i = 0; i < input_len; i++) {
105 if (isspace(*input)) {
111 uint32_t output_size = oi - os;
118 static int DetectTransformStripWhitespaceTest01(
void)
120 const uint8_t *input = (
const uint8_t *)
" A B C D ";
121 uint32_t input_len = strlen((
char *)input);
127 TransformStripWhitespace(&buffer);
133 static int DetectTransformStripWhitespaceTest02(
void)
135 const uint8_t *input = (
const uint8_t *)
" A B C D ";
136 uint32_t input_len = strlen((
char *)input);
142 TransformDoubleWhitespace(&buffer);
144 TransformDoubleWhitespace(&buffer);
146 TransformStripWhitespace(&buffer);
152 static int DetectTransformStripWhitespaceTest03(
void)
154 const char rule[] =
"alert http any any -> any any (http_request_line; strip_whitespace; content:\"GET/HTTP\"; sid:1;)";
157 memset(&th_v, 0,
sizeof(th_v));
172 static void DetectTransformStripWhitespaceRegisterTests(
void)
176 DetectTransformStripWhitespaceTest01);
178 DetectTransformStripWhitespaceTest02);
180 DetectTransformStripWhitespaceTest03);
Signature * DetectEngineAppendSig(DetectEngineCtx *de_ctx, const char *sigstr)
Parse and append a Signature into the Detection Engine Context signature list.
SigTableElmt sigmatch_table[DETECT_TBLSIZE]
int(* Setup)(DetectEngineCtx *, Signature *, const char *)
#define PASS
Pass the test.
TmEcode DetectEngineThreadCtxInit(ThreadVars *, void *, void **)
initialize thread specific detection engine context
int DetectSignatureAddTransform(Signature *s, int transform)
void InspectionBufferInit(InspectionBuffer *buffer, uint32_t initial_size)
void(* Transform)(InspectionBuffer *)
main detection engine ctx
TmEcode DetectEngineThreadCtxDeinit(ThreadVars *, void *)
int SigGroupBuild(DetectEngineCtx *de_ctx)
Convert the signature list into the runtime match structure.
void UtRegisterTest(const char *name, int(*TestFn)(void))
Register unit test.
void PrintRawDataFp(FILE *fp, const uint8_t *buf, uint32_t buflen)
void InspectionBufferCopy(InspectionBuffer *buffer, uint8_t *buf, uint32_t buf_len)
void InspectionBufferSetup(InspectionBuffer *buffer, const uint8_t *data, const uint32_t data_len)
setup the buffer with our initial data
#define FAIL_IF_NULL(expr)
Fail a test if expression evaluates to NULL.
Per thread variable structure.
void InspectionBufferFree(InspectionBuffer *buffer)
void DetectEngineCtxFree(DetectEngineCtx *)
Free a DetectEngineCtx::
void(* RegisterTests)(void)
DetectEngineCtx * DetectEngineCtxInit(void)