aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/testConstraints.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2013-11-20 12:35:42 +0100
committerBjörn Gustavsson <[email protected]>2013-11-20 12:35:42 +0100
commitcf9d62c7c902b06dc589382a0a853b87b0a1ce20 (patch)
treec93af3219cc2332775debb29d5a56cceee0292dc /lib/asn1/test/testConstraints.erl
parent81a497cc1fd21cdd4f545c3ed7c64705ca5fc65c (diff)
parent719f789cebec004b350153e1f001303d6713f4a6 (diff)
downloadotp-cf9d62c7c902b06dc589382a0a853b87b0a1ce20.tar.gz
otp-cf9d62c7c902b06dc589382a0a853b87b0a1ce20.tar.bz2
otp-cf9d62c7c902b06dc589382a0a853b87b0a1ce20.zip
Merge branch 'bjorn/asn1/fix-union-bug/OTP-11411' into maint
* bjorn/asn1/fix-union-bug/OTP-11411: Fix complicated union of INTEGER constraints
Diffstat (limited to 'lib/asn1/test/testConstraints.erl')
-rw-r--r--lib/asn1/test/testConstraints.erl18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/asn1/test/testConstraints.erl b/lib/asn1/test/testConstraints.erl
index 34fbbcf6cc..23322f5e88 100644
--- a/lib/asn1/test/testConstraints.erl
+++ b/lib/asn1/test/testConstraints.erl
@@ -218,6 +218,15 @@ int_constraints(Rules) ->
roundtrip('ShorterExt', "abcde"),
roundtrip('ShorterExt', "abcdef"),
+ %%==========================================================
+ %% Unions of INTEGER constraints
+ %%==========================================================
+ seq_roundtrip(Rules, 'SeqOverlapping', 'SeqNonOverlapping', 7580),
+ seq_roundtrip(Rules, 'SeqOverlapping', 'SeqNonOverlapping', 9600),
+ seq_roundtrip(Rules, 'SeqOverlapping', 'SeqNonOverlapping', 18050),
+ seq_roundtrip(Rules, 'SeqOverlapping', 'SeqNonOverlapping', 19000),
+ seq_roundtrip(Rules, 'SeqOverlapping', 'SeqNonOverlapping', 26900),
+
ok.
%% PER: Ensure that if the lower bound is Lb, Lb+16#80 is encoded
@@ -297,3 +306,12 @@ range_error(Per, Type, Value) when Per =:= per; Per =:= uper ->
%% on encode.
{error,_} = 'Constraints':encode(Type, Value),
ok.
+
+seq_roundtrip(Rules, Seq1, Seq2, Val) ->
+ Enc = roundtrip(Seq1, {Seq1,Val}),
+ case Rules of
+ ber ->
+ roundtrip(Seq2, {Seq2,Val});
+ _ ->
+ roundtrip_enc(Seq2, {Seq2,Val}, Enc)
+ end.