Skip to content

Commit 9efd029

Browse files
committed
Merge branch 'ingela/eqc-test-cuddling' into maint
* ingela/eqc-test-cuddling: ssl: Use common test include file ssl: Reduce code length ssl: Reduce code duplication ssl: oneof -> elements due to static list of elements
2 parents 4f99a98 + b9b2135 commit 9efd029

File tree

4 files changed

+92
-273
lines changed

4 files changed

+92
-273
lines changed

lib/ssl/test/property_test/ssl_eqc_chain.erl

Lines changed: 40 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -25,135 +25,51 @@
2525

2626
%%-export([prop_tls_orded_path/1]).
2727
-compile(export_all).
28-
29-
-proptest(eqc).
30-
-proptest([triq,proper]).
31-
32-
-ifndef(EQC).
33-
-ifndef(PROPER).
34-
-ifndef(TRIQ).
35-
-define(EQC,true).
36-
-endif.
37-
-endif.
38-
-endif.
39-
40-
-ifdef(EQC).
41-
-include_lib("eqc/include/eqc.hrl").
42-
-define(MOD_eqc,eqc).
43-
44-
-else.
45-
-ifdef(PROPER).
46-
-include_lib("proper/include/proper.hrl").
47-
-define(MOD_eqc,proper).
48-
49-
-else.
50-
-ifdef(TRIQ).
51-
-define(MOD_eqc,triq).
52-
-include_lib("triq/include/triq.hrl").
53-
54-
-endif.
55-
-endif.
56-
-endif.
57-
28+
-include_lib("common_test/include/ct_property_test.hrl").
5829
-include_lib("public_key/include/public_key.hrl").
5930
%%--------------------------------------------------------------------
6031
%% Properties --------------------------------------------------------
6132
%%--------------------------------------------------------------------
33+
34+
signature_algs_test(ClientOptions, ServerOptions) ->
35+
try
36+
[TLSVersion] = proplists:get_value(versions, ClientOptions),
37+
SigAlgs = signature_algs(TLSVersion),
38+
ssl_test_lib:basic_test(SigAlgs ++ ClientOptions,
39+
SigAlgs ++ ServerOptions, [{server_type, erlang},
40+
{client_type, erlang},
41+
{version, TLSVersion}
42+
]),
43+
44+
true
45+
catch _:_ ->
46+
false
47+
end.
48+
6249
prop_tls_unordered_path(PrivDir) ->
63-
?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), unordered_options(Version, PrivDir)),
64-
try
65-
[TLSVersion] = proplists:get_value(versions, ClientOptions),
66-
SigAlgs = signature_algs(TLSVersion),
67-
ssl_test_lib:basic_test(SigAlgs ++ ClientOptions,
68-
SigAlgs ++ ServerOptions, [{server_type, erlang},
69-
{client_type, erlang},
70-
{version, TLSVersion}
71-
])
72-
of
73-
_ ->
74-
true
75-
catch
76-
_:_ ->
77-
false
78-
end
79-
).
50+
?FORALL({ClientOptions, ServerOptions},
51+
?LET(Version, tls_version(), unordered_options(Version, PrivDir)),
52+
signature_algs_test(ClientOptions, ServerOptions)).
8053

8154
prop_tls_extraneous_path(PrivDir) ->
82-
?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), extraneous_options(Version, PrivDir)),
83-
try
84-
[TLSVersion] = proplists:get_value(versions, ClientOptions),
85-
SigAlgs = signature_algs(TLSVersion),
86-
ssl_test_lib:basic_test(SigAlgs ++ ClientOptions,
87-
SigAlgs ++ ServerOptions, [{server_type, erlang},
88-
{client_type, erlang},
89-
{version, TLSVersion}
90-
])
91-
of
92-
_ ->
93-
true
94-
catch
95-
_:_ ->
96-
false
97-
end
98-
).
55+
?FORALL({ClientOptions, ServerOptions},
56+
?LET(Version, tls_version(), extraneous_options(Version, PrivDir)),
57+
signature_algs_test(ClientOptions, ServerOptions)).
9958

10059
prop_tls_extraneous_paths() ->
101-
?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), extra_extraneous_options(Version)),
102-
try
103-
[TLSVersion] = proplists:get_value(versions, ClientOptions),
104-
SigAlgs = signature_algs(TLSVersion),
105-
ssl_test_lib:basic_test(SigAlgs ++ ClientOptions,
106-
SigAlgs ++ ServerOptions, [{server_type, erlang},
107-
{client_type, erlang},
108-
{version, TLSVersion}
109-
])
110-
of
111-
_ ->
112-
true
113-
catch
114-
_:_ ->
115-
false
116-
end
117-
).
60+
?FORALL({ClientOptions, ServerOptions},
61+
?LET(Version, tls_version(), extra_extraneous_options(Version)),
62+
signature_algs_test(ClientOptions, ServerOptions)).
11863

11964
prop_tls_extraneous_and_unordered_path() ->
120-
?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), unordered_extraneous_options(Version)),
121-
try
122-
[TLSVersion] = proplists:get_value(versions, ClientOptions),
123-
SigAlgs = signature_algs(TLSVersion),
124-
ssl_test_lib:basic_test(SigAlgs ++ ClientOptions,
125-
SigAlgs ++ ServerOptions, [{server_type, erlang},
126-
{client_type, erlang},
127-
{version, TLSVersion}
128-
])
129-
of
130-
_ ->
131-
true
132-
catch
133-
_:_ ->
134-
false
135-
end
136-
).
65+
?FORALL({ClientOptions, ServerOptions},
66+
?LET(Version, tls_version(), unordered_extraneous_options(Version)),
67+
signature_algs_test(ClientOptions, ServerOptions)).
13768

13869
prop_client_cert_auth() ->
139-
?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), client_cert_auth_opts(Version)),
140-
try
141-
[TLSVersion] = proplists:get_value(versions, ClientOptions),
142-
SigAlgs = signature_algs(TLSVersion),
143-
ssl_test_lib:basic_test(SigAlgs ++ ClientOptions,
144-
SigAlgs ++ ServerOptions,
145-
[{server_type, erlang},
146-
{client_type, erlang},
147-
{version, TLSVersion}
148-
])
149-
of
150-
_ ->
151-
true
152-
catch
153-
_:_ ->
154-
false
155-
end
156-
).
70+
?FORALL({ClientOptions, ServerOptions},
71+
?LET(Version, tls_version(), client_cert_auth_opts(Version)),
72+
signature_algs_test(ClientOptions, ServerOptions)).
15773

15874
%%--------------------------------------------------------------------
15975
%% Chain Generators -----------------------------------------------
@@ -162,14 +78,14 @@ tls_version() ->
16278
Versions = [Version || Version <- ['tlsv1.3', 'tlsv1.2', 'tlsv1.1', 'tlsv1', 'dtlsv1.2', 'dtlsv1'],
16379
ssl_test_lib:sufficient_crypto_support(Version)
16480
],
165-
oneof(Versions).
81+
elements(Versions).
16682

16783
key_alg(Version) when Version == 'tlsv1.3';
16884
Version == 'tlsv1.2';
16985
Version == 'dtlsv1.2'->
170-
oneof([rsa, ecdsa]);
86+
elements([rsa, ecdsa]);
17187
key_alg(_) ->
172-
oneof([rsa]).
88+
elements([rsa]).
17389

17490
server_options('tlsv1.3') ->
17591
[{verify, verify_peer},
@@ -196,11 +112,11 @@ pem_unordered_options(Version, PrivDir) ->
196112
unordered_der_cert_chain_opts(Version, Alg) ->
197113
#{server_config := ServerConf,
198114
client_config := ClientConf} = public_key:pkix_test_data(#{server_chain => #{root => root_key(Alg),
199-
intermediates => intermediates(Alg, 4),
200-
peer => peer_key(Alg)},
201-
client_chain => #{root => root_key(Alg),
202-
intermediates => intermediates(Alg, 4),
203-
peer => peer_key(Alg)}}),
115+
intermediates => intermediates(Alg, 4),
116+
peer => peer_key(Alg)},
117+
client_chain => #{root => root_key(Alg),
118+
intermediates => intermediates(Alg, 4),
119+
peer => peer_key(Alg)}}),
204120
{client_options(Version) ++ [protocol(Version), {versions, [Version]} | unordered_der_conf(ClientConf)],
205121
server_options(Version) ++ [protocol(Version), {versions, [Version]} | unordered_der_conf(ServerConf)]}.
206122

lib/ssl/test/property_test/ssl_eqc_cipher_format.erl

Lines changed: 9 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -25,35 +25,7 @@
2525

2626
-compile(export_all).
2727

28-
-proptest(eqc).
29-
-proptest([triq,proper]).
30-
31-
-ifndef(EQC).
32-
-ifndef(PROPER).
33-
-ifndef(TRIQ).
34-
-define(EQC,true).
35-
-endif.
36-
-endif.
37-
-endif.
38-
39-
-ifdef(EQC).
40-
-include_lib("eqc/include/eqc.hrl").
41-
-define(MOD_eqc,eqc).
42-
43-
-else.
44-
-ifdef(PROPER).
45-
-include_lib("proper/include/proper.hrl").
46-
-define(MOD_eqc,proper).
47-
48-
-else.
49-
-ifdef(TRIQ).
50-
-define(MOD_eqc,triq).
51-
-include_lib("triq/include/triq.hrl").
52-
53-
-endif.
54-
-endif.
55-
-endif.
56-
28+
-include_lib("common_test/include/ct_property_test.hrl").
5729
-include_lib("public_key/include/public_key.hrl").
5830

5931
-define('TLS_v1.3', 'tlsv1.3').
@@ -67,13 +39,7 @@
6739

6840
prop_tls_cipher_suite_rfc_name() ->
6941
?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, tls_version(), {cipher_suite(Version), Version}),
70-
case ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) of
71-
CipherSuite ->
72-
true;
73-
_ ->
74-
false
75-
end
76-
).
42+
ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) == CipherSuite).
7743

7844
prop_tls_cipher_suite_openssl_name() ->
7945
?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, tls_version(), {cipher_suite(Version), Version}),
@@ -91,17 +57,14 @@ prop_tls_cipher_suite_openssl_name() ->
9157
).
9258

9359
prop_tls_anon_cipher_suite_rfc_name() ->
94-
?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}),
95-
case ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) of
96-
CipherSuite ->
97-
true;
98-
_ ->
99-
false
100-
end
101-
).
60+
?FORALL({CipherSuite, _TLSVersion},
61+
?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}),
62+
ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) == CipherSuite
63+
).
10264

10365
prop_tls_anon_cipher_suite_openssl_name() ->
104-
?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}),
66+
?FORALL({CipherSuite, _TLSVersion},
67+
?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}),
10568
case ssl:str_to_suite(ssl:suite_to_openssl_str(CipherSuite)) of
10669
CipherSuite ->
10770
lists:member(ssl:suite_to_openssl_str(CipherSuite), openssl_legacy_names());
@@ -112,8 +75,7 @@ prop_tls_anon_cipher_suite_openssl_name() ->
11275

11376
prop_tls_signature_algs() ->
11477
?FORALL(SigAlg, ?LET(SigAlg, sig_alg(), SigAlg),
115-
true = lists:member(ssl_cipher:signature_algorithm_to_scheme(SigAlg), sig_schemes())
116-
).
78+
lists:member(ssl_cipher:signature_algorithm_to_scheme(SigAlg), sig_schemes())).
11779

11880
%%--------------------------------------------------------------------
11981
%% Generators -----------------------------------------------

lib/ssl/test/property_test/ssl_eqc_ecc.erl

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,37 +25,9 @@
2525

2626
%%-export([prop_tls_orded_path/1]).
2727
-compile(export_all).
28-
29-
-proptest(eqc).
30-
-proptest([triq,proper]).
31-
32-
-ifndef(EQC).
33-
-ifndef(PROPER).
34-
-ifndef(TRIQ).
35-
-define(EQC,true).
36-
-endif.
37-
-endif.
38-
-endif.
39-
40-
-ifdef(EQC).
41-
-include_lib("eqc/include/eqc.hrl").
42-
-define(MOD_eqc,eqc).
43-
44-
-else.
45-
-ifdef(PROPER).
46-
-include_lib("proper/include/proper.hrl").
47-
-define(MOD_eqc,proper).
48-
49-
-else.
50-
-ifdef(TRIQ).
51-
-define(MOD_eqc,triq).
52-
-include_lib("triq/include/triq.hrl").
53-
54-
-endif.
55-
-endif.
56-
-endif.
57-
28+
-include_lib("common_test/include/ct_property_test.hrl").
5829
-include_lib("public_key/include/public_key.hrl").
30+
5931
%%--------------------------------------------------------------------
6032
%% Properties --------------------------------------------------------
6133
%%--------------------------------------------------------------------

0 commit comments

Comments
 (0)