From ee2897e5dedfb671de6221bd498f33b35497885e Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Wed, 16 Aug 2023 17:54:49 -0300 Subject: [PATCH] test(refactor): move test to integration tests dir --- .../test => emqx/integration_test}/emqx_ds_SUITE.erl | 0 apps/emqx/test/emqx_cth_suite.erl | 8 +++++++- apps/emqx/test/emqx_persistent_messages_SUITE.erl | 7 ++++++- 3 files changed, 13 insertions(+), 2 deletions(-) rename apps/{emqx_durable_storage/test => emqx/integration_test}/emqx_ds_SUITE.erl (100%) diff --git a/apps/emqx_durable_storage/test/emqx_ds_SUITE.erl b/apps/emqx/integration_test/emqx_ds_SUITE.erl similarity index 100% rename from apps/emqx_durable_storage/test/emqx_ds_SUITE.erl rename to apps/emqx/integration_test/emqx_ds_SUITE.erl diff --git a/apps/emqx/test/emqx_cth_suite.erl b/apps/emqx/test/emqx_cth_suite.erl index 9b3e58da4..80b3a578c 100644 --- a/apps/emqx/test/emqx_cth_suite.erl +++ b/apps/emqx/test/emqx_cth_suite.erl @@ -101,7 +101,13 @@ when %% function will raise an error. work_dir := file:name() }. -start(Apps, SuiteOpts = #{work_dir := WorkDir}) -> +start(Apps, SuiteOpts0 = #{work_dir := WorkDir0}) -> + %% when running CT on the whole app, it seems like `priv_dir` is the same on all + %% suites and leads to the "clean slate" verificatin to fail. + WorkDir = binary_to_list( + filename:join([WorkDir0, emqx_guid:to_hexstr(emqx_guid:gen())]) + ), + SuiteOpts = SuiteOpts0#{work_dir := WorkDir}, % 1. Prepare appspec instructions AppSpecs = [mk_appspec(App, SuiteOpts) || App <- Apps], % 2. Load every app so that stuff scanning attributes of loaded modules works diff --git a/apps/emqx/test/emqx_persistent_messages_SUITE.erl b/apps/emqx/test/emqx_persistent_messages_SUITE.erl index dbd4df0ae..bb2921de1 100644 --- a/apps/emqx/test/emqx_persistent_messages_SUITE.erl +++ b/apps/emqx/test/emqx_persistent_messages_SUITE.erl @@ -29,9 +29,14 @@ all() -> emqx_common_test_helpers:all(?MODULE). init_per_suite(Config) -> + %% avoid inter-suite flakiness... + %% TODO: remove after other suites start to use `emx_cth_suite' + application:stop(emqx), + application:stop(emqx_durable_storage), + WorkDir = ?config(priv_dir, Config), TCApps = emqx_cth_suite:start( app_specs(), - #{work_dir => ?config(priv_dir, Config)} + #{work_dir => WorkDir} ), [{tc_apps, TCApps} | Config].