4
%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
6
%% The contents of this file are subject to the Erlang Public License,
7
%% Version 1.1, (the "License"); you may not use this file except in
8
%% compliance with the License. You should have received a copy of the
9
%% Erlang Public License along with this software. If not, it can be
10
%% retrieved online at http://www.erlang.org/.
12
%% Software distributed under the License is distributed on an "AS IS"
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
%% the License for the specific language governing rights and limitations
21
-module(mnesia_examples_test).
22
-author('hakan@erix.ericsson.se').
23
-compile([export_all]).
24
-include("mnesia_test_lib.hrl").
26
init_per_testcase(Func, Conf) ->
27
mnesia_test_lib:init_per_testcase(Func, Conf).
29
end_per_testcase(Func, Conf) ->
30
mnesia_test_lib:end_per_testcase(Func, Conf).
32
-define(init(N, Config),
33
mnesia_test_lib:prepare_test_case([{init_test_case, [mnesia]},
35
N, Config, ?FILE, ?LINE)).
37
opt_net_load(ExampleMod) ->
38
opt_net_load([node() | nodes()], ExampleMod, ok).
40
opt_net_load([Node | Nodes], ExampleMod, Res) ->
41
case rpc:call(Node, ?MODULE, opt_load, [ExampleMod]) of
42
{module, ExampleMod} ->
43
opt_net_load(Nodes, ExampleMod, Res);
45
Error = {opt_net_load, ExampleMod, Node, Reason},
46
opt_net_load(Nodes, ExampleMod, {error, Error});
48
Error = {opt_net_load, ExampleMod, Node, Reason},
49
opt_net_load(Nodes, ExampleMod, {error, Error})
51
opt_net_load([], _ExampleMod, Res) ->
55
case code:is_loaded(Mod) of
59
Abs = filename:join([code:lib_dir(mnesia), examples, Mod]),
63
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
65
[bup, company, meter, {group, tpcb}].
69
[replica_test, sticky_replica_test, dist_test,
70
conflict_test, frag_test, frag2_test, remote_test,
73
init_per_group(_GroupName, Config) ->
76
end_per_group(_GroupName, Config) ->
80
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
81
bup(doc) -> ["Run the backup examples in bup.erl"];
83
bup(Config) when is_list(Config) ->
84
Nodes = ?init(3, Config),
86
?match(ok, bup:test(Nodes)).
88
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
90
["Run the company examples in company.erl and company_o.erl"].
92
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
94
replica_test(suite) -> [];
95
replica_test(Config) when is_list(Config) ->
97
opt_net_load(mnesia_tpcb),
98
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(replica_test, ram_copies))).
100
sticky_replica_test(suite) -> [];
101
sticky_replica_test(Config) when is_list(Config) ->
103
opt_net_load(mnesia_tpcb),
104
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(sticky_replica_test, ram_copies))).
106
dist_test(suite) -> [];
107
dist_test(Config) when is_list(Config) ->
108
?init(3, [{tc_timeout, timer:minutes(10)} | Config]),
109
opt_net_load(mnesia_tpcb),
110
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(dist_test, ram_copies))).
112
conflict_test(suite) -> [];
113
conflict_test(Config) when is_list(Config) ->
115
opt_net_load(mnesia_tpcb),
116
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(conflict_test, ram_copies))).
118
frag_test(suite) -> [];
119
frag_test(Config) when is_list(Config) ->
121
opt_net_load(mnesia_tpcb),
122
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(frag_test, ram_copies))).
124
frag2_test(suite) -> [];
125
frag2_test(Config) when is_list(Config) ->
127
opt_net_load(mnesia_tpcb),
128
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(frag2_test, ram_copies))).
130
remote_test(suite) -> [];
131
remote_test(Config) when is_list(Config) ->
133
opt_net_load(mnesia_tpcb),
134
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(remote_test, ram_copies))).
136
remote_frag2_test(suite) -> [];
137
remote_frag2_test(Config) when is_list(Config) ->
139
opt_net_load(mnesia_tpcb),
140
?match({ok, _}, mnesia_tpcb:start(mnesia_tpcb:config(remote_frag2_test, ram_copies))).
142
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144
["Run the meter example in mnesia_meter.erl"];
147
meter(Config) when is_list(Config) ->
148
[N | _] = ?init(3, Config),
149
opt_net_load(mnesia_meter),
150
?match(ok, mnesia_meter:go(ram_copies, [N])).