aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mnesia/test/mnesia_SUITE.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mnesia/test/mnesia_SUITE.erl')
-rw-r--r--lib/mnesia/test/mnesia_SUITE.erl168
1 files changed, 88 insertions, 80 deletions
diff --git a/lib/mnesia/test/mnesia_SUITE.erl b/lib/mnesia/test/mnesia_SUITE.erl
index 8be1a549d6..83175b04c3 100644
--- a/lib/mnesia/test/mnesia_SUITE.erl
+++ b/lib/mnesia/test/mnesia_SUITE.erl
@@ -30,68 +30,99 @@ end_per_testcase(Func, Conf) ->
mnesia_test_lib:end_per_testcase(Func, Conf).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-suite() -> [{suite_callbacks,[ts_install_scb]}].
+suite() -> [{suite_callbacks,[{ts_install_scb,[{nodenames,1}]}]}].
+
+
+%% Verify that Mnesia really is a distributed real-time DBMS.
+%% This is the test suite of the Mnesia DBMS. The test suite
+%% covers many aspects of usage and is indended to be developed
+%% incrementally. The test suite is divided into a hierarchy of test
+%% suites where the leafs actually implements the test cases.
+%% The intention of each test case and sub test suite can be
+%% read in comments where they are implemented or in worst cases
+%% from their long mnemonic names.
+%%
+%% The most simple test case of them all is called 'silly'
+%% and is useful to run now and then, e.g. when some new fatal
+%% bug has been introduced. It may be run even if Mnesia is in
+%% such a bad shape that the test machinery cannot be used.
+%% NB! Invoke the function directly with mnesia_SUITE:silly()
+%% and do not involve the normal test machinery.
all() ->
-[{group, light}, {group, medium}, {group, heavy},
- clean_up_suite].
+ [{group, light}, {group, medium}, {group, heavy},
+ clean_up_suite].
groups() ->
+ %% The 'light' test suite runs a selected set of test suites and is
+ %% intended to be the smallest test suite that is meaningful
+ %% to run. It starts with an installation test (which in essence is the
+ %% 'silly' test case) and then it covers all functions in the API in
+ %% various depths. All configuration parameters and examples are also
+ %% covered.
[{light, [],
- [{group, install}, {group, nice}, {group, evil},
- {mnesia_frag_test, [{group, light}]}, {group, qlc},
- {group, registry}, {group, config}, {group, examples}]},
- {install, [], [{mnesia_install_test, all}]},
- {nice, [], [{mnesia_nice_coverage_test, all}]},
- {evil, [], [{mnesia_evil_coverage_test, all}]},
- {qlc, [], [{mnesia_qlc_test, all}]},
- {registry, [], [{mnesia_registry_test, all}]},
- {config, [], [{mnesia_config_test, all}]},
- {examples, [], [{mnesia_examples_test, all}]},
- {medium, [],
- [{group, install}, {group, atomicity},
- {group, isolation}, {group, durability},
- {group, recovery}, {group, consistency},
- {mnesia_frag_test, [{group, medium}]}]},
- {atomicity, [], [{mnesia_atomicity_test, all}]},
- {isolation, [], [{mnesia_isolation_test, all}]},
- {durability, [], [{mnesia_durability_test, all}]},
- {recovery, [], [{mnesia_recovery_test, all}]},
- {consistency, [], [{mnesia_consistency_test, all}]},
- {heavy, [], [{group, measure}]},
- {measure, [], [{mnesia_measure_test, all}]},
- {prediction, [],
- [{mnesia_measure_test, [{group, prediction}]}]},
- {fairness, [],
- [{mnesia_measure_test, [{group, fairness}]}]},
- {benchmarks, [],
- [{mnesia_measure_test, [{group, benchmarks}]}]},
- {consumption, [],
- [{mnesia_measure_test, [{group, consumption}]}]},
- {scalability, [],
- [{mnesia_measure_test, [{group, scalability}]}]},
- {otp_r4b, [],
- [{mnesia_config_test, access_module},
- {mnesia_config_test, dump_log_load_regulation},
- {mnesia_config_test, embedded_mnemosyne},
- {mnesia_config_test, ignore_fallback_at_startup},
- {mnesia_config_test, max_wait_for_decision},
- {mnesia_consistency_test, consistency_after_restore},
- {mnesia_evil_backup, restore},
- {mnesia_evil_coverage_test, offline_set_master_nodes},
- {mnesia_evil_coverage_test, record_name},
- {mnesia_evil_coverage_test, user_properties},
- {mnesia_registry_test, all}, {group, otp_2363}]},
- {otp_2363, [],
- [{mnesia_dirty_access_test,
- dirty_index_match_object_disc_only},
- {mnesia_dirty_access_test, dirty_index_read_disc_only},
- {mnesia_dirty_access_test,
- dirty_index_update_bag_disc_only},
- {mnesia_dirty_access_test,
- dirty_index_update_set_disc_only},
- {mnesia_evil_coverage_test,
- create_live_table_index_disc_only}]}].
+ [{group, install}, {group, nice}, {group, evil},
+ {group, mnesia_frag_test, light}, {group, qlc},
+ {group, registry}, {group, config}, {group, examples}]},
+ {install, [], [{mnesia_install_test, all}]},
+ {nice, [], [{mnesia_nice_coverage_test, all}]},
+ {evil, [], [{mnesia_evil_coverage_test, all}]},
+ {qlc, [], [{mnesia_qlc_test, all}]},
+ {registry, [], [{mnesia_registry_test, all}]},
+ {config, [], [{mnesia_config_test, all}]},
+ {examples, [], [{mnesia_examples_test, all}]},
+ %% The 'medium' test suite verfies the ACID (atomicity, consistency
+ %% isolation and durability) properties and various recovery scenarios
+ %% These tests may take quite while to run.
+ {medium, [],
+ [{group, install}, {group, atomicity},
+ {group, isolation}, {group, durability},
+ {group, recovery}, {group, consistency},
+ {group, mnesia_frag_test, medium}]},
+ {atomicity, [], [{mnesia_atomicity_test, all}]},
+ {isolation, [], [{mnesia_isolation_test, all}]},
+ {durability, [], [{mnesia_durability_test, all}]},
+ {recovery, [], [{mnesia_recovery_test, all}]},
+ {consistency, [], [{mnesia_consistency_test, all}]},
+ %% The 'heavy' test suite runs some resource consuming tests and
+ %% benchmarks
+ {heavy, [], [{group, measure}]},
+ {measure, [], [{mnesia_measure_test, all}]},
+ {prediction, [],
+ [{group, mnesia_measure_test, prediction}]},
+ {fairness, [],
+ [{group, mnesia_measure_test, fairness}]},
+ {benchmarks, [],
+ [{group, mnesia_measure_test, benchmarks}]},
+ {consumption, [],
+ [{group, mnesia_measure_test, consumption}]},
+ {scalability, [],
+ [{group, mnesia_measure_test, scalability}]},
+ %% This test suite is an extract of the grand Mnesia suite
+ %% it contains OTP R4B specific test cases
+ {otp_r4b, [],
+ [{mnesia_config_test, access_module},
+ {mnesia_config_test, dump_log_load_regulation},
+ {mnesia_config_test, embedded_mnemosyne},
+ {mnesia_config_test, ignore_fallback_at_startup},
+ {mnesia_config_test, max_wait_for_decision},
+ {mnesia_consistency_test, consistency_after_restore},
+ {mnesia_evil_backup, restore},
+ {mnesia_evil_coverage_test, offline_set_master_nodes},
+ {mnesia_evil_coverage_test, record_name},
+ {mnesia_evil_coverage_test, user_properties},
+ {mnesia_registry_test, all}, {group, otp_2363}]},
+ %% Index on disc only tables
+ {otp_2363, [],
+ [{mnesia_dirty_access_test,
+ dirty_index_match_object_disc_only},
+ {mnesia_dirty_access_test, dirty_index_read_disc_only},
+ {mnesia_dirty_access_test,
+ dirty_index_update_bag_disc_only},
+ {mnesia_dirty_access_test,
+ dirty_index_update_set_disc_only},
+ {mnesia_evil_coverage_test,
+ create_live_table_index_disc_only}]}].
init_per_group(_GroupName, Config) ->
Config.
@@ -112,29 +143,6 @@ silly() ->
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-
-
-
-
-
clean_up_suite(doc) -> ["Not a test case only kills mnesia and nodes, that where"
"started during the tests"];
clean_up_suite(suite) ->