21
21
-module(compilation_SUITE).
23
-include("test_server.hrl").
23
-include_lib("test_server/include/test_server.hrl").
25
25
-compile(export_all).
28
test_lib:recompile(?MODULE),
29
[self_compile_old_inliner,self_compile,
30
compiler_1,compiler_3,compiler_5,
31
beam_compiler_1, beam_compiler_2, beam_compiler_3,
32
beam_compiler_4, beam_compiler_5, beam_compiler_6,
33
beam_compiler_7, beam_compiler_8, beam_compiler_9,
34
beam_compiler_10, beam_compiler_11, beam_compiler_12,
35
nested_tuples_in_case_expr,
36
otp_2330, guards, vsn,
37
otp_2380, otp_2141, otp_2173, otp_4790,
39
bin_syntax_1, bin_syntax_2, bin_syntax_3,
40
bin_syntax_4, bin_syntax_5, bin_syntax_6,
43
catch_in_catch, redundant_case, long_string,
44
otp_5076, complex_guard, otp_5092, otp_5151,
46
trycatch_4, opt_crash,
47
otp_5404,otp_5436,otp_5481,otp_5553,otp_5632,
48
otp_5714,otp_5872,otp_6121,otp_6121a,otp_6121b,
49
otp_7202,otp_7345,on_load
27
suite() -> [{ct_hooks,[ts_install_cth]}].
30
test_lib:recompile(compilation_SUITE),
31
[self_compile_old_inliner, self_compile, compiler_1,
32
compiler_3, compiler_5, beam_compiler_1,
33
beam_compiler_2, beam_compiler_3, beam_compiler_4,
34
beam_compiler_5, beam_compiler_6, beam_compiler_7,
35
beam_compiler_8, beam_compiler_9, beam_compiler_10,
36
beam_compiler_11, beam_compiler_12,
37
nested_tuples_in_case_expr, otp_2330, guards,
38
{group, vsn}, otp_2380, otp_2141, otp_2173, otp_4790,
39
const_list_256, bin_syntax_1, bin_syntax_2,
40
bin_syntax_3, bin_syntax_4, bin_syntax_5, bin_syntax_6,
41
live_var, convopts, bad_functional_value,
42
catch_in_catch, redundant_case, long_string, otp_5076,
43
complex_guard, otp_5092, otp_5151, otp_5235, otp_5244,
44
trycatch_4, opt_crash, otp_5404, otp_5436, otp_5481,
45
otp_5553, otp_5632, otp_5714, otp_5872, otp_6121,
46
otp_6121a, otp_6121b, otp_7202, otp_7345, on_load,
47
string_table,otp_8949_a,otp_8949_a].
50
[{vsn, [], [vsn_1, vsn_2, vsn_3]}].
52
init_per_suite(Config) ->
55
end_per_suite(_Config) ->
58
init_per_group(_GroupName, Config) ->
61
end_per_group(_GroupName, Config) ->
53
65
N(Config) when is_list(Config) -> try_it(N, Config)).
597
608
id(LlUnitdataReq).
610
%% Check the generation of the string table.
612
string_table(Config) when is_list(Config) ->
613
?line DataDir = ?config(data_dir, Config),
614
?line File = filename:join(DataDir, "string_table.erl"),
615
?line {ok,string_table,Beam,[]} = compile:file(File, [return, binary]),
616
?line {ok,{string_table,[StringTableChunk]}} = beam_lib:chunks(Beam, ["StrT"]),
617
?line {"StrT", <<"stringabletringtable">>} = StringTableChunk,
620
otp_8949_a(Config) when is_list(Config) ->
621
value = otp_8949_a(),
624
-record(cs, {exs,keys = [],flags = 1}).
625
-record(exs, {children = []}).
632
Cs#cs.flags band 1 =/= 0 ->
634
(((Cs#cs.exs)#exs.children /= [])
636
(Cs#cs.flags band (1 bsl 0 bor (1 bsl 22)) == 0));
637
Cs#cs.flags band (1 bsl 22) =/= 0 ->
642
otp_8949_b(Config) when is_list(Config) ->
644
?line value = otp_8949_b([], false),
645
?line {'EXIT',_} = (catch otp_8949_b([], true)),
648
%% Would cause an endless loop in beam_utils.
652
A == [], B == false ->