aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/testInfObj.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-01-12 12:25:52 +0100
committerBjörn Gustavsson <[email protected]>2015-01-12 12:25:52 +0100
commit8ee2d5f59f0e3ceee6895b5af41e563a29a22be2 (patch)
treee6a25247f76d72cefaacbce0d5affc1033e7adb0 /lib/asn1/test/testInfObj.erl
parent71b35f78c12f31ae33cf51fd948c22483c77ff7c (diff)
parent17ec629959088f0b213a5559ab2e793e9ec0f124 (diff)
downloadotp-8ee2d5f59f0e3ceee6895b5af41e563a29a22be2.tar.gz
otp-8ee2d5f59f0e3ceee6895b5af41e563a29a22be2.tar.bz2
otp-8ee2d5f59f0e3ceee6895b5af41e563a29a22be2.zip
Merge branch 'bjorn/asn1/rfc-5912/OTP-12395'
* bjorn/asn1/rfc-5912/OTP-12395: (79 commits) Remove the old unused yecc-based parser Improve error handling for illegal object definitions Reimplement storeindb/2 to avoid excessive process communication Remove useless fields in #state{} Remove vestiges of obsolete {TypeName,Value} notation Remove old error handling Modernize the remaining cases Further improve error handling for instatiation of parameterized types asn1ct_tok: Clean up Add a test case for EXTENSIBILITY IMPLIED asn1ct_parser2: Remove expensive lookahead_assignment/1 function asn1ct_parser2: Clean up error handling and reporting asn1ct, asn1ct_parser2: Refactor the upper levels of error handling asn1ct_parser2: Eliminate all uses of old-style 'catch' asn1ct_parser2: Clean up parse_or/3 and parse_or_tag/3 asn1ct_parser2: Correct extraction of line number from token asn1ct_parser2: Throw an {asn1_error,...} for *all* parse errors asn1ct_parser2: Simplify parse_Type/1 asn1ct_parser2: Remove unsuccessful parsing of ValueSetFromObjects Move checking of UNIQUE & DEFAULT error to asn1ct_check ...
Diffstat (limited to 'lib/asn1/test/testInfObj.erl')
-rw-r--r--lib/asn1/test/testInfObj.erl39
1 files changed, 38 insertions, 1 deletions
diff --git a/lib/asn1/test/testInfObj.erl b/lib/asn1/test/testInfObj.erl
index 37c134b1b9..3044d5cd2a 100644
--- a/lib/asn1/test/testInfObj.erl
+++ b/lib/asn1/test/testInfObj.erl
@@ -74,6 +74,12 @@ main(_Erule) ->
{'ConstructedPdu',7,[]}),
roundtrip('InfObj', 'ConstructedPdu',
{'ConstructedPdu',7,[64,1,19,17,35]}),
+ {'ConstructedPdu',8,[{_,-15,35},{_,533,-70}]} =
+ enc_dec('InfObj', 'ConstructedPdu',
+ {'ConstructedPdu',8,[{'_',-15,35},{'_',533,-70}]}),
+ {'ConstructedPdu',9,[{RecTag9,-15,35},{RecTag9,533,-70}]} =
+ enc_dec('InfObj', 'ConstructedPdu',
+ {'ConstructedPdu',9,[{'_',-15,35},{'_',533,-70}]}),
roundtrip('InfObj', 'ConstructedSet',
{'ConstructedSet',1,{'CONSTRUCTED-DEFAULT_Type',-2001,true}}),
@@ -96,6 +102,12 @@ main(_Erule) ->
{'ConstructedSet',7,[]}),
roundtrip('InfObj', 'ConstructedSet',
{'ConstructedSet',7,[64,1,19,17,35]}),
+ {'ConstructedSet',8,[{_,-15,35},{_,533,-70}]} =
+ enc_dec('InfObj', 'ConstructedSet',
+ {'ConstructedSet',8,[{'_',-15,35},{'_',533,-70}]}),
+ {'ConstructedSet',9,[{_,-15,35},{_,533,-70}]} =
+ enc_dec('InfObj', 'ConstructedSet',
+ {'ConstructedSet',9,[{'_',-15,35},{'_',533,-70}]}),
roundtrip('InfObj', 'Seq2',
{'Seq2',42,[true,false,false,true],
@@ -126,12 +138,37 @@ main(_Erule) ->
test_objset('OstSeq45', [4,5]),
test_objset('OstSeq12345', [1,2,3,4,5]),
+ test_objset('OstSeq12Except', [1,2]),
+ test_objset('OstSeq123Except', [1,2]),
+
test_objset('ExOstSeq12', [1,2]),
test_objset('ExOstSeq123', [1,2,3]),
- %%test_objset('ExOstSeq1234', [1,2,3,4]),
+ test_objset('ExOstSeq1234', [1,2,3,4]),
test_objset('ExOstSeq45', [4,5]),
test_objset('ExOstSeq12345', [1,2,3,4,5]),
+ test_objset('ExOstSeq12Except', [1,2]),
+ test_objset('ExOstSeq123Except', [1,2]),
+
+ roundtrip('InfObj', 'ExtClassSeq', {'ExtClassSeq', 4}),
+
+ {1,2,42} = 'InfObj':'value-1'(),
+ {1,2,42,25} = 'InfObj':'value-2'(),
+ {100,101} = 'InfObj':'value-3'(),
+ {1,2,100,101} = 'InfObj':'value-4'(),
+
+ roundtrip('InfObj', 'Rdn', {'Rdn',{2,5,4,41},"abc"}),
+
+ roundtrip('InfObj', 'TiAliasSeq',
+ {'TiAliasSeq',{'TiAliasSeq_prf',{2,1,2},'NULL'}}),
+
+ roundtrip('InfObj', 'ContentInfo',
+ {'ContentInfo',{2,7,8,9},"string"}),
+ {2,7,8,9} = 'InfObj':'id-content-type'(),
+
+ <<2#1011:4>> = 'InfObj':'tricky-bit-string'(),
+ <<16#CAFE:16>> = 'InfObj':'tricky-octet-string'(),
+
ok.
test_objset(Type, Keys) ->