diff options
author | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-12-25 11:32:02 -0600 |
---|---|---|
committer | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-12-25 13:52:32 -0600 |
commit | 8169a3325fff425be0712524555b15eecb9f6aaf (patch) | |
tree | 3a93b96922a6c0aade8a68e6e0867030e914e07e | |
parent | e038de4fef8f7a2a564d4e6466a5db23671ce0dc (diff) | |
download | couchdb-8169a3325fff425be0712524555b15eecb9f6aaf.tar.gz |
Speedup eunit: couch_file_tests
-rw-r--r-- | src/couch/test/eunit/couch_file_tests.erl | 166 |
1 files changed, 92 insertions, 74 deletions
diff --git a/src/couch/test/eunit/couch_file_tests.erl b/src/couch/test/eunit/couch_file_tests.erl index e9806c09a..606f4bbf4 100644 --- a/src/couch/test/eunit/couch_file_tests.erl +++ b/src/couch/test/eunit/couch_file_tests.erl @@ -327,45 +327,53 @@ delete_test_() -> { "File delete tests", { - foreach, + setup, fun() -> - meck:new(config, [passthrough]), - File = ?tempfile() ++ ".couch", - RootDir = filename:dirname(File), - ok = couch_file:init_delete_dir(RootDir), - ok = file:write_file(File, <<>>), - {RootDir, File} + meck:new(config, [passthrough]) end, - fun({_, File}) -> - meck:unload(config), - file:delete(File) + fun(_) -> + meck:unload() end, - [ - fun(Cfg) -> - {"enable_database_recovery = false, context = delete", - make_enable_recovery_test_case(Cfg, false, delete)} - end, - fun(Cfg) -> - {"enable_database_recovery = true, context = delete", - make_enable_recovery_test_case(Cfg, true, delete)} + { + foreach, + fun() -> + meck:reset([config]), + File = ?tempfile() ++ ".couch", + RootDir = filename:dirname(File), + ok = couch_file:init_delete_dir(RootDir), + ok = file:write_file(File, <<>>), + {RootDir, File} end, - fun(Cfg) -> - {"enable_database_recovery = false, context = compaction", - make_enable_recovery_test_case(Cfg, false, compaction)} + fun({_, File}) -> + file:delete(File) end, - fun(Cfg) -> - {"enable_database_recovery = true, context = compaction", - make_enable_recovery_test_case(Cfg, true, compaction)} - end, - fun(Cfg) -> - {"delete_after_rename = true", - make_delete_after_rename_test_case(Cfg, true)} - end, - fun(Cfg) -> - {"delete_after_rename = false", - make_delete_after_rename_test_case(Cfg, false)} - end - ] + [ + fun(Cfg) -> + {"enable_database_recovery = false, context = delete", + make_enable_recovery_test_case(Cfg, false, delete)} + end, + fun(Cfg) -> + {"enable_database_recovery = true, context = delete", + make_enable_recovery_test_case(Cfg, true, delete)} + end, + fun(Cfg) -> + {"enable_database_recovery = false, context = compaction", + make_enable_recovery_test_case(Cfg, false, compaction)} + end, + fun(Cfg) -> + {"enable_database_recovery = true, context = compaction", + make_enable_recovery_test_case(Cfg, true, compaction)} + end, + fun(Cfg) -> + {"delete_after_rename = true", + make_delete_after_rename_test_case(Cfg, true)} + end, + fun(Cfg) -> + {"delete_after_rename = false", + make_delete_after_rename_test_case(Cfg, false)} + end + ] + } } }. @@ -412,49 +420,57 @@ nuke_dir_test_() -> { "Nuke directory tests", { - foreach, + setup, fun() -> - meck:new(config, [passthrough]), - File0 = ?tempfile() ++ ".couch", - RootDir = filename:dirname(File0), - BaseName = filename:basename(File0), - Seed = couch_rand:uniform(8999999999) + 999999999, - DDocDir = io_lib:format("db.~b_design", [Seed]), - ViewDir = filename:join([RootDir, DDocDir]), - file:make_dir(ViewDir), - File = filename:join([ViewDir, BaseName]), - file:rename(File0, File), - ok = couch_file:init_delete_dir(RootDir), - ok = file:write_file(File, <<>>), - {RootDir, ViewDir} + meck:new(config, [passthrough]) end, - fun({RootDir, ViewDir}) -> - meck:unload(config), - remove_dir(ViewDir), - Ext = filename:extension(ViewDir), - case filelib:wildcard(RootDir ++ "/*.deleted" ++ Ext) of - [DelDir] -> remove_dir(DelDir); - _ -> ok - end + fun(_) -> + meck:unload() end, - [ - fun(Cfg) -> - {"enable_database_recovery = false", - make_rename_dir_test_case(Cfg, false)} - end, - fun(Cfg) -> - {"enable_database_recovery = true", - make_rename_dir_test_case(Cfg, true)} + { + foreach, + fun() -> + meck:reset([config]), + File0 = ?tempfile() ++ ".couch", + RootDir = filename:dirname(File0), + BaseName = filename:basename(File0), + Seed = couch_rand:uniform(8999999999) + 999999999, + DDocDir = io_lib:format("db.~b_design", [Seed]), + ViewDir = filename:join([RootDir, DDocDir]), + file:make_dir(ViewDir), + File = filename:join([ViewDir, BaseName]), + file:rename(File0, File), + ok = couch_file:init_delete_dir(RootDir), + ok = file:write_file(File, <<>>), + {RootDir, ViewDir} end, - fun(Cfg) -> - {"delete_after_rename = true", - make_delete_dir_test_case(Cfg, true)} + fun({RootDir, ViewDir}) -> + remove_dir(ViewDir), + Ext = filename:extension(ViewDir), + case filelib:wildcard(RootDir ++ "/*.deleted" ++ Ext) of + [DelDir] -> remove_dir(DelDir); + _ -> ok + end end, - fun(Cfg) -> - {"delete_after_rename = false", - make_delete_dir_test_case(Cfg, false)} - end - ] + [ + fun(Cfg) -> + {"enable_database_recovery = false", + make_rename_dir_test_case(Cfg, false)} + end, + fun(Cfg) -> + {"enable_database_recovery = true", + make_rename_dir_test_case(Cfg, true)} + end, + fun(Cfg) -> + {"delete_after_rename = true", + make_delete_dir_test_case(Cfg, true)} + end, + fun(Cfg) -> + {"delete_after_rename = false", + make_delete_dir_test_case(Cfg, false)} + end + ] + } } }. @@ -462,7 +478,8 @@ nuke_dir_test_() -> make_rename_dir_test_case({RootDir, ViewDir}, EnableRecovery) -> meck:expect(config, get_boolean, fun ("couchdb", "enable_database_recovery", _) -> EnableRecovery; - ("couchdb", "delete_after_rename", _) -> true + ("couchdb", "delete_after_rename", _) -> true; + (_, _, Default) -> Default end), DirExistsBefore = filelib:is_dir(ViewDir), couch_file:nuke_dir(RootDir, ViewDir), @@ -479,7 +496,8 @@ make_rename_dir_test_case({RootDir, ViewDir}, EnableRecovery) -> make_delete_dir_test_case({RootDir, ViewDir}, DeleteAfterRename) -> meck:expect(config, get_boolean, fun ("couchdb", "enable_database_recovery", _) -> false; - ("couchdb", "delete_after_rename", _) -> DeleteAfterRename + ("couchdb", "delete_after_rename", _) -> DeleteAfterRename; + (_, _, Default) -> Default end), DirExistsBefore = filelib:is_dir(ViewDir), couch_file:nuke_dir(RootDir, ViewDir), |