From e7b35011e60f50113d3c582477edf9eab6802f70 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Tue, 30 May 2023 18:00:35 -0300 Subject: [PATCH] test(oracle): attempt to fix flaky test https://github.com/emqx/emqx/actions/runs/5126014459/jobs/9220155908#step:7:754 ``` =CRITICAL REPORT==== 30-May-2023::20:50:26.267103 === Run stage failed: error:{assertMatch, [{module,emqx_bridge_oracle_SUITE}, {line,394}, {expression, "emqx_resource : simple_sync_query ( ResourceId , { query , \"SELECT COUNT(*) FROM mqtt_test\" } )"}, {pattern, "{ ok , [ { result_set , _ , _ , [ [ { 3 } ] ] } ] }"}, {value, {ok,[{result_set,[<<"COUNT(*)">>],[],[[{0}]]}]}}]} Stacktrace: [{emqx_bridge_oracle_SUITE,'-t_batch_sync_query/1-fun-5-',1, [{file, "/emqx/apps/emqx_bridge_oracle/test/emqx_bridge_oracle_SUITE.erl"}, {line,394}]}, {emqx_bridge_oracle_SUITE,'-t_batch_sync_query/1-fun-6-',5, [{file, "/emqx/apps/emqx_bridge_oracle/test/emqx_bridge_oracle_SUITE.erl"}, {line,390}]}, {emqx_bridge_oracle_SUITE,t_batch_sync_query,1, [{file, "/emqx/apps/emqx_bridge_oracle/test/emqx_bridge_oracle_SUITE.erl"}, {line,364}]}] ``` --- .../test/emqx_bridge_oracle_SUITE.erl | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/emqx_bridge_oracle/test/emqx_bridge_oracle_SUITE.erl b/apps/emqx_bridge_oracle/test/emqx_bridge_oracle_SUITE.erl index f280c51d6..721beab6e 100644 --- a/apps/emqx_bridge_oracle/test/emqx_bridge_oracle_SUITE.erl +++ b/apps/emqx_bridge_oracle/test/emqx_bridge_oracle_SUITE.erl @@ -203,8 +203,9 @@ oracle_config(TestCase, _ConnectionType, Config) -> " pool_size = 1\n" " sql = \"~s\"\n" " resource_opts = {\n" - " auto_restart_interval = 5000\n" - " request_timeout = 30000\n" + " auto_restart_interval = \"5s\"\n" + " health_check_interval = \"5s\"\n" + " request_timeout = \"30s\"\n" " query_mode = \"async\"\n" " enable_batch = true\n" " batch_size = 3\n" @@ -233,6 +234,11 @@ resource_id(Config) -> Name = ?config(oracle_name, Config), emqx_bridge_resource:resource_id(Type, Name). +bridge_id(Config) -> + Type = ?BRIDGE_TYPE_BIN, + Name = ?config(oracle_name, Config), + emqx_bridge_resource:bridge_id(Type, Name). + create_bridge(Config) -> create_bridge(Config, _Overrides = #{}). @@ -361,6 +367,7 @@ t_batch_sync_query(Config) -> ProxyHost = ?config(proxy_host, Config), ProxyName = ?config(proxy_name, Config), ResourceId = resource_id(Config), + BridgeId = bridge_id(Config), ?check_trace( begin ?assertMatch({ok, _}, create_bridge_api(Config)), @@ -380,12 +387,12 @@ t_batch_sync_query(Config) -> % Send 3 async messages while resource is down. When it comes back, these messages % will be delivered in sync way. If we try to send sync messages directly, it will % be sent async as callback_mode is set to async_if_possible. - Message = {send_message, Params}, emqx_common_test_helpers:with_failure(down, ProxyName, ProxyHost, ProxyPort, fun() -> ct:sleep(1000), - emqx_resource:query(ResourceId, Message), - emqx_resource:query(ResourceId, Message), - emqx_resource:query(ResourceId, Message) + emqx_bridge:send_message(BridgeId, Params), + emqx_bridge:send_message(BridgeId, Params), + emqx_bridge:send_message(BridgeId, Params), + ok end), ?retry( _Sleep = 1_000,