From a10107045fda60cdf9b253a694a8da561c28b9fe Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Sun, 11 Jun 2023 15:50:33 +0800 Subject: [PATCH] test: delete emqx_ft_fs_utils_SUITE_data from source code --- apps/emqx_ft/test/emqx_ft_fs_util_SUITE.erl | 49 +++++++++++++++++++ .../emqx_ft_fs_util_SUITE_data/a/b/foo/42 | 0 .../test/emqx_ft_fs_util_SUITE_data/a/b/foo/Я | 1 - .../test/emqx_ft_fs_util_SUITE_data/a/link | 1 - .../emqx_ft_fs_util_SUITE_data/c/bar/中文 | 1 - .../test/emqx_ft_fs_util_SUITE_data/c/link | 1 - .../emqx_ft_fs_util_SUITE_data/d/e/baz/needle | 1 - .../emqx_ft_fs_util_SUITE_data/d/haystack | 1 - apps/emqx_utils/test/emqx_utils_fs_SUITE.erl | 42 ++++++++-------- 9 files changed, 70 insertions(+), 27 deletions(-) delete mode 100644 apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/b/foo/42 delete mode 100644 apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/b/foo/Я delete mode 120000 apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/link delete mode 100644 apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/bar/中文 delete mode 120000 apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/link delete mode 100644 apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/e/baz/needle delete mode 100644 apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/haystack diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE.erl b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE.erl index e4aa70f81..0f6b8a5ae 100644 --- a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE.erl +++ b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE.erl @@ -26,6 +26,51 @@ all() -> emqx_common_test_helpers:all(?MODULE). +%%├── a +%%│ ├── b +%%│ │ └── foo +%%│ │ ├── 42 +%%│ │ └── Я +%%│ └── link -> ../c +%%├── c +%%│ ├── bar +%%│ │ └── 中文 +%%│ └── link -> ../a +%%└── d +%% ├── e +%% │ └── baz +%% │ └── needle +%% └── haystack + +init_per_suite(Config) -> + Root = ?config(data_dir, Config), + A = filename:join([Root, "a", "b", "foo"]), + C = filename:join([Root, "c", "bar"]), + D = filename:join([Root, "d", "e", "baz"]), + + F42 = filename:join([A, "42"]), + F42_1 = filename:join([A, "Я"]), + FBar = filename:join([C, "中文"]), + FNeedle = filename:join([D, "needle"]), + FHayStack = filename:join([Root, "d", "haystack"]), + Files = [F42, F42_1, FBar, FNeedle, FHayStack], + lists:foreach(fun filelib:ensure_dir/1, Files), + %% create files + lists:foreach(fun(File) -> file:write_file(File, <<"">>, [write]) end, Files), + %% create links + ALink = filename:join([Root, "a", "link"]), + CLink = filename:join([Root, "c", "link"]), + make_symlink("../c", ALink), + make_symlink("../a", CLink), + Config. + +end_per_suite(Config) -> + Root = ?config(data_dir, Config), + ok = file:del_dir_r(filename:join([Root, "a"])), + ok = file:del_dir_r(filename:join([Root, "c"])), + ok = file:del_dir_r(filename:join([Root, "d"])), + ok. + t_fold_single_level(Config) -> Root = ?config(data_dir, Config), ?assertMatch( @@ -248,3 +293,7 @@ cons(Entry, Acc) -> sort(L) when is_list(L) -> lists:sort(L). + +make_symlink(FileOrDir, NewLink) -> + _ = file:delete(NewLink), + ok = file:make_symlink(FileOrDir, NewLink). diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/b/foo/42 b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/b/foo/42 deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/b/foo/Я b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/b/foo/Я deleted file mode 100644 index ac31ffd53..000000000 --- a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/b/foo/Я +++ /dev/null @@ -1 +0,0 @@ -Ты diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/link b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/link deleted file mode 120000 index 1b271d838..000000000 --- a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/a/link +++ /dev/null @@ -1 +0,0 @@ -../c \ No newline at end of file diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/bar/中文 b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/bar/中文 deleted file mode 100644 index 2e11eb72f..000000000 --- a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/bar/中文 +++ /dev/null @@ -1 +0,0 @@ -Zhōngwén diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/link b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/link deleted file mode 120000 index 82f488f26..000000000 --- a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/c/link +++ /dev/null @@ -1 +0,0 @@ -../a \ No newline at end of file diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/e/baz/needle b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/e/baz/needle deleted file mode 100644 index d755762d1..000000000 --- a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/e/baz/needle +++ /dev/null @@ -1 +0,0 @@ -haystack diff --git a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/haystack b/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/haystack deleted file mode 100644 index a6b681bf4..000000000 --- a/apps/emqx_ft/test/emqx_ft_fs_util_SUITE_data/d/haystack +++ /dev/null @@ -1 +0,0 @@ -needle diff --git a/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl b/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl index 750a91073..d74a258d4 100644 --- a/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl +++ b/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl @@ -34,31 +34,23 @@ init_per_suite(Config) -> F2 = filename:join([D1, "2"]), DeepDir = filename:join([Root, "nonempty", "d2", "deep", "down/"]), DeepFile = filename:join([DeepDir, "here"]), - ok = filelib:ensure_dir(F1), - ok = filelib:ensure_dir(F2), - ok = filelib:ensure_dir(DeepFile), - D1Mutrec = filename:join([D1, "mutrec"]), - D2Mutrec = filename:join([D2, "deep", "mutrec"]), - ok = file:write_file(F1, <<"">>, [write]), - ok = file:write_file(F2, <<"">>, [write]), - ok = file:write_file(DeepFile, <<"">>, [write]), - {ok, D1FileInfo} = file:read_file_info(D1), - ok = file:write_file_info(D1, D1FileInfo#file_info{mode = 8#00777}), - _ = file:delete(D1Mutrec), - _ = file:delete(D2Mutrec), - ok = file:make_symlink(DeepDir, D1Mutrec), - %% can't file:make_link("../../d1", D2Mutrec) on mac, it return {error, eperm} - ok = file:make_symlink("../../d1", D2Mutrec), - {ok, DeepFileInfo} = file:read_file_info(DeepFile), - ok = file:write_file_info(DeepFile, DeepFileInfo#file_info{mode = 8#00600}), - {ok, D2MutrecInfo} = file:read_link_info(D2Mutrec), - ct:pal("~p~n", [D2MutrecInfo]), - %ok = file:write_link_info(D2Mutrec, D2MutrecInfo#file_info{mode = 8#00777}), + Files = [F1, F2, DeepFile], + lists:foreach(fun filelib:ensure_dir/1, Files), + D1LinkMutrec = filename:join([D1, "mutrec"]), + D2LinkMutrec = filename:join([D2, "deep", "mutrec"]), + lists:foreach(fun(File) -> file:write_file(File, <<"">>, [write]) end, Files), + chmod_file(D1, 8#00777), + chmod_file(DeepFile, 8#00600), + make_symlink(DeepDir, D1LinkMutrec), + %% can't file:make_link("../../d1", D2Mutrec) on mac, return {error, eperm} + make_symlink("../../d1", D2LinkMutrec), + {ok, D2MutrecInfo} = file:read_link_info(D2LinkMutrec), + ct:pal("~ts 's file_info is ~p~n", [D2LinkMutrec, D2MutrecInfo]), Config. end_per_suite(Config) -> Root = ?config(data_dir, Config), - %ok = file:del_dir_r(filename:join([Root, "nonempty"])), + ok = file:del_dir_r(filename:join([Root, "nonempty"])), ok. %% @@ -150,3 +142,11 @@ t_canonicalize_non_utf8(_) -> badarg, emqx_utils_fs:canonicalize(<<128, 128, 128>>) ). + +chmod_file(File, Mode) -> + {ok, FileInfo} = file:read_file_info(File), + ok = file:write_file_info(File, FileInfo#file_info{mode = Mode}). + +make_symlink(FileOrDir, NewLink) -> + _ = file:delete(NewLink), + ok = file:make_symlink(FileOrDir, NewLink).