tests: runtime: in_http: add test for tag_key
@@ -361,10 +361,84 @@ void flb_test_http_successful_response_code_204()
flb_test_http_successful_response_code("204");
}
+void flb_test_http_tag_key()
+{
+ struct flb_lib_out_cb cb_data;
+ struct test_ctx *ctx;
+ struct flb_http_client *c;
+ int ret;
+ int num;
+ size_t b_sent;
+
+ char *buf = "{\"test\":\"msg\", \"tag\":\"new_tag\"}";
+
+ clear_output_num();
+
+ cb_data.cb = cb_check_result_json;
+ cb_data.data = "\"test\":\"msg\"";
+
+ ctx = test_ctx_create(&cb_data);
+ if (!TEST_CHECK(ctx != NULL)) {
+ TEST_MSG("test_ctx_create failed");
+ exit(EXIT_FAILURE);
+ }
+
+ ret = flb_input_set(ctx->flb, ctx->i_ffd,
+ "tag_key", "tag",
+ NULL);
+ TEST_CHECK(ret == 0);
+
+ ret = flb_output_set(ctx->flb, ctx->o_ffd,
+ "match", "new_tag",
+ "format", "json",
+ NULL);
+ TEST_CHECK(ret == 0);
+
+ /* Start the engine */
+ ret = flb_start(ctx->flb);
+ TEST_CHECK(ret == 0);
+
+ ctx->httpc = http_client_ctx_create();
+ TEST_CHECK(ctx->httpc != NULL);
+
+ c = flb_http_client(ctx->httpc->u_conn, FLB_HTTP_POST, "/", buf, strlen(buf),
+ "127.0.0.1", 9880, NULL, 0);
+ ret = flb_http_add_header(c, FLB_HTTP_HEADER_CONTENT_TYPE, strlen(FLB_HTTP_HEADER_CONTENT_TYPE),
+ JSON_CONTENT_TYPE, strlen(JSON_CONTENT_TYPE));
+ TEST_CHECK(ret == 0);
+ if (!TEST_CHECK(c != NULL)) {
+ TEST_MSG("http_client failed");
+ exit(EXIT_FAILURE);
+ }
+
+ ret = flb_http_do(c, &b_sent);
+ if (!TEST_CHECK(ret == 0)) {
+ TEST_MSG("ret error. ret=%d\n", ret);
+ }
+ else if (!TEST_CHECK(b_sent > 0)){
+ TEST_MSG("b_sent size error. b_sent = %lu\n", b_sent);
+ }
+ else if (!TEST_CHECK(c->resp.status == 201)) {
+ TEST_MSG("http response code error. expect: 201, got: %d\n", c->resp.status);
+ }
+
+ /* waiting to flush */
+ flb_time_msleep(1500);
+
+ num = get_output_num();
+ if (!TEST_CHECK(num > 0)) {
+ TEST_MSG("no outputs");
+ }
+ flb_http_client_destroy(c);
+ flb_upstream_conn_release(ctx->httpc->u_conn);
+ test_ctx_destroy(ctx);
+}
+
TEST_LIST = {
{"http", flb_test_http},
{"successful_response_code_200", flb_test_http_successful_response_code_200},
{"successful_response_code_204", flb_test_http_successful_response_code_204},
+ {"tag_key", flb_test_http_tag_key},
{NULL, NULL}
};
