diff options
author | garren smith <garren.smith@gmail.com> | 2021-07-22 12:03:44 +0200 |
---|---|---|
committer | garren smith <garren.smith@gmail.com> | 2021-07-22 17:00:30 +0200 |
commit | 3907e9f0abd2bfc26e8384a819939ea964daf157 (patch) | |
tree | dbdac769d2b6732ea6076fb7f1d1884474d679e8 | |
parent | 383c8a9f59936b3c0a6331c1ea29a3aa887956fa (diff) | |
download | couchdb-3907e9f0abd2bfc26e8384a819939ea964daf157.tar.gz |
Add in option to run different js engine for tests
Add a `js_engine` field when starting test applications.
When the couch apps are loaded it will load the js engine defined
in the ini files.
This allows us to swop out and use different javascript engines for
`couch_eval` for eunit tests.
17 files changed, 31 insertions, 17 deletions
diff --git a/src/chttpd/src/chttpd_test_util.erl b/src/chttpd/src/chttpd_test_util.erl index d905a8d88..48c14be27 100644 --- a/src/chttpd/src/chttpd_test_util.erl +++ b/src/chttpd/src/chttpd_test_util.erl @@ -20,7 +20,7 @@ start_couch() -> start_couch(?CONFIG_CHAIN). start_couch(IniFiles) -> - test_util:start_couch(IniFiles, [couch_js, couch_views, chttpd]). + test_util:start_couch(IniFiles, [js_engine, couch_views, chttpd]). stop_couch(Ctx) -> test_util:stop_couch(Ctx). diff --git a/src/couch/src/test_util.erl b/src/couch/src/test_util.erl index d9f4bc098..99994f21b 100644 --- a/src/couch/src/test_util.erl +++ b/src/couch/src/test_util.erl @@ -73,7 +73,8 @@ start_couch(ExtraApps) -> start_couch(IniFiles, ExtraApps) -> load_applications_with_stats(), ok = application:set_env(config, ini_files, IniFiles), - Apps = start_applications(?DEFAULT_APPS ++ ExtraApps), + ExtraApps1 = maybe_add_js_engine(ExtraApps), + Apps = start_applications(?DEFAULT_APPS ++ ExtraApps1), ok = config:delete("compactions", "_default", false), #test_context{started = Apps}. @@ -336,3 +337,16 @@ sort_apps(Apps) -> weight_app(couch_log) -> {0.0, couch_log}; weight_app(Else) -> {1.0, Else}. + +maybe_add_js_engine(Apps) -> + case lists:member(js_engine, Apps) of + false -> + Apps; + true -> + application:start(config), + % Deleting the config app from the list because we started it here + % and don't need to start it again. + Apps1 = lists:delete(config, Apps), + JS = list_to_atom(config:get("couch_eval.languages", "javascript", "couch_js")), + lists:delete(js_engine, Apps1) ++ [JS] + end. diff --git a/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl b/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl index f2e174cec..380e9e91d 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl @@ -52,7 +52,7 @@ -define(PASSWORD, "rep_eunit_password"). start_couch() -> - Ctx = test_util:start_couch([fabric, chttpd, couch_replicator, couch_js]), + Ctx = test_util:start_couch([fabric, chttpd, couch_replicator, js_engine]), Hashed = couch_passwords:hash_admin_password(?PASSWORD), ok = config:set("admins", ?USERNAME, ?b2l(Hashed), _Persist = false), Ctx. diff --git a/src/couch_views/test/couch_views_active_tasks_test.erl b/src/couch_views/test/couch_views_active_tasks_test.erl index dd13b45b2..eded1fa18 100644 --- a/src/couch_views/test/couch_views_active_tasks_test.erl +++ b/src/couch_views/test/couch_views_active_tasks_test.erl @@ -27,7 +27,7 @@ setup() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]), Ctx. diff --git a/src/couch_views/test/couch_views_cleanup_test.erl b/src/couch_views/test/couch_views_cleanup_test.erl index abec35a21..1e6fc74ba 100644 --- a/src/couch_views/test/couch_views_cleanup_test.erl +++ b/src/couch_views/test/couch_views_cleanup_test.erl @@ -53,7 +53,7 @@ setup_all() -> test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]). diff --git a/src/couch_views/test/couch_views_custom_red_test.erl b/src/couch_views/test/couch_views_custom_red_test.erl index b064a2a15..423dc3516 100644 --- a/src/couch_views/test/couch_views_custom_red_test.erl +++ b/src/couch_views/test/couch_views_custom_red_test.erl @@ -70,7 +70,7 @@ setup_common(Enabled) -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]), config:set_boolean("couch_views", "custom_reduce_enabled", Enabled, false), diff --git a/src/couch_views/test/couch_views_error_test.erl b/src/couch_views/test/couch_views_error_test.erl index 8d59cd9c1..6bb4d8c86 100644 --- a/src/couch_views/test/couch_views_error_test.erl +++ b/src/couch_views/test/couch_views_error_test.erl @@ -45,7 +45,7 @@ setup() -> fabric, chttpd, couch_jobs, - couch_js, + js_engine, couch_views ]), Hashed = couch_passwords:hash_admin_password(?PASS), diff --git a/src/couch_views/test/couch_views_indexer_test.erl b/src/couch_views/test/couch_views_indexer_test.erl index 08bba08d1..a1be2567b 100644 --- a/src/couch_views/test/couch_views_indexer_test.erl +++ b/src/couch_views/test/couch_views_indexer_test.erl @@ -64,7 +64,7 @@ setup() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]), Ctx. diff --git a/src/couch_views/test/couch_views_info_test.erl b/src/couch_views/test/couch_views_info_test.erl index ee5d6efff..a2bdaf660 100644 --- a/src/couch_views/test/couch_views_info_test.erl +++ b/src/couch_views/test/couch_views_info_test.erl @@ -23,7 +23,7 @@ setup() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]), Ctx. diff --git a/src/couch_views/test/couch_views_map_test.erl b/src/couch_views/test/couch_views_map_test.erl index 2eb19d310..6aa834851 100644 --- a/src/couch_views/test/couch_views_map_test.erl +++ b/src/couch_views/test/couch_views_map_test.erl @@ -22,7 +22,7 @@ setup() -> test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]). diff --git a/src/couch_views/test/couch_views_red_test.erl b/src/couch_views/test/couch_views_red_test.erl index 0b6e6c9f8..485ec6f15 100644 --- a/src/couch_views/test/couch_views_red_test.erl +++ b/src/couch_views/test/couch_views_red_test.erl @@ -88,7 +88,7 @@ setup_db() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]), {ok, Db} = fabric2_db:create(?tempdb(), [{user_ctx, ?ADMIN_USER}]), diff --git a/src/couch_views/test/couch_views_server_test.erl b/src/couch_views/test/couch_views_server_test.erl index e30f1db0a..d3af9af06 100644 --- a/src/couch_views/test/couch_views_server_test.erl +++ b/src/couch_views/test/couch_views_server_test.erl @@ -43,7 +43,7 @@ setup() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_eval, couch_lib ]), diff --git a/src/couch_views/test/couch_views_size_test.erl b/src/couch_views/test/couch_views_size_test.erl index e2055931c..4914c74e4 100644 --- a/src/couch_views/test/couch_views_size_test.erl +++ b/src/couch_views/test/couch_views_size_test.erl @@ -52,7 +52,7 @@ setup() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]), Ctx. diff --git a/src/couch_views/test/couch_views_trace_index_test.erl b/src/couch_views/test/couch_views_trace_index_test.erl index b55e2dd8a..13788905d 100644 --- a/src/couch_views/test/couch_views_trace_index_test.erl +++ b/src/couch_views/test/couch_views_trace_index_test.erl @@ -45,7 +45,7 @@ indexer_test_() -> }. setup() -> - test_util:start_couch([fabric, couch_js]). + test_util:start_couch([fabric, js_engine]). cleanup(Ctx) -> test_util:stop_couch(Ctx). diff --git a/src/couch_views/test/couch_views_updater_test.erl b/src/couch_views/test/couch_views_updater_test.erl index 61d9a9f52..63dc95a48 100644 --- a/src/couch_views/test/couch_views_updater_test.erl +++ b/src/couch_views/test/couch_views_updater_test.erl @@ -44,7 +44,7 @@ setup() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views, mango ]), diff --git a/src/couch_views/test/couch_views_upgrade_test.erl b/src/couch_views/test/couch_views_upgrade_test.erl index 7dafefd28..8a6cfd50e 100644 --- a/src/couch_views/test/couch_views_upgrade_test.erl +++ b/src/couch_views/test/couch_views_upgrade_test.erl @@ -49,7 +49,7 @@ setup() -> Ctx = test_util:start_couch([ fabric, couch_jobs, - couch_js, + js_engine, couch_views ]), Ctx. diff --git a/src/fabric/test/fabric2_doc_crud_tests.erl b/src/fabric/test/fabric2_doc_crud_tests.erl index 8ffbcbc7b..7de0d5e8c 100644 --- a/src/fabric/test/fabric2_doc_crud_tests.erl +++ b/src/fabric/test/fabric2_doc_crud_tests.erl @@ -72,7 +72,7 @@ doc_crud_test_() -> }. setup() -> - Ctx = test_util:start_couch([fabric, couch_js]), + Ctx = test_util:start_couch([fabric, js_engine]), {ok, Db} = fabric2_db:create(?tempdb(), [{user_ctx, ?ADMIN_USER}]), {Db, Ctx}. |