You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2019/12/25 17:45:23 UTC
[couchdb] 20/41: Speedup eunit: couch_file_tests
This is an automated email from the ASF dual-hosted git repository.
davisp pushed a commit to branch speedup-test-suite
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit b026480044a91853d93cd6f9ae86e419c37324b3
Author: Paul J. Davis <pa...@gmail.com>
AuthorDate: Wed Dec 25 11:32:02 2019 -0600
Speedup eunit: couch_file_tests
---
src/couch/test/eunit/couch_file_tests.erl | 166 +++++++++++++++++-------------
1 file 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 e9806c0..606f4bb 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),