Skip to content

Commit

Permalink
tests: runtime: filter_lua: add test for nil_str
Browse files Browse the repository at this point in the history
Signed-off-by: Takahiro Yamashita <[email protected]>
  • Loading branch information
nokute78 committed Aug 6, 2023
1 parent 88ed925 commit 0dd88be
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions tests/runtime/filter_lua.c
Original file line number Diff line number Diff line change
Expand Up @@ -753,12 +753,85 @@ void flb_test_split_record(void)
flb_sds_destroy(outbuf);
}

/* https://github.com/fluent/fluent-bit/issues/7708 */
void flb_test_nil_str(void)
{
int ret;
flb_ctx_t *ctx;
int in_ffd;
int out_ffd;
int filter_ffd;
char *output = NULL;
char *input = "[0, {\"key\":\"val\", \"nil_key\":null}]";
char *result;
struct flb_lib_out_cb cb_data;

char *script_body = ""
"function lua_main(tag, timestamp, record)\n"
" new_record = record\n"
" return 1, timestamp, new_record\n"
"end\n";

clear_output();

/* Create context, flush every second (some checks omitted here) */
ctx = flb_create();
flb_service_set(ctx, "flush", FLUSH_INTERVAL, "grace", "1", NULL);

/* Prepare output callback context*/
cb_data.cb = callback_test;
cb_data.data = NULL;

ret = create_script(script_body, strlen(script_body));
TEST_CHECK(ret == 0);
/* Filter */
filter_ffd = flb_filter(ctx, (char *) "lua", NULL);
TEST_CHECK(filter_ffd >= 0);
ret = flb_filter_set(ctx, filter_ffd,
"Match", "*",
"call", "lua_main",
"nil_str", "nil",
"script", TMP_LUA_PATH,
NULL);

/* Input */
in_ffd = flb_input(ctx, (char *) "lib", NULL);
flb_input_set(ctx, in_ffd, "tag", "test", NULL);
TEST_CHECK(in_ffd >= 0);

/* Lib output */
out_ffd = flb_output(ctx, (char *) "lib", (void *)&cb_data);
TEST_CHECK(out_ffd >= 0);
flb_output_set(ctx, out_ffd,
"match", "test",
"format", "json",
NULL);

ret = flb_start(ctx);
TEST_CHECK(ret==0);

flb_lib_push(ctx, in_ffd, input, strlen(input));
wait_with_timeout(2000, &output);
result = strstr(output, "\"nil_key\":null");
if(!TEST_CHECK(result != NULL)) {
TEST_MSG("output:%s\n", output);
}

/* clean up */
flb_lib_free(output);
delete_script();

flb_stop(ctx);
flb_destroy(ctx);
}

TEST_LIST = {
{"hello_world", flb_test_helloworld},
{"append_tag", flb_test_append_tag},
{"type_int_key", flb_test_type_int_key},
{"type_int_key_multi", flb_test_type_int_key_multi},
{"type_array_key", flb_test_type_array_key},
{"nil_str", flb_test_nil_str},
{"array_contains_null", flb_test_array_contains_null},
{"drop_all_records", flb_test_drop_all_records},
{"split_record", flb_test_split_record},
Expand Down

0 comments on commit 0dd88be

Please sign in to comment.