aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test
diff options
context:
space:
mode:
authorDan Gudmundsson <[email protected]>2014-10-28 12:52:12 +0100
committerBjörn Gustavsson <[email protected]>2015-01-12 11:40:26 +0100
commit1c79a4fd03cea47d20f5de00bbdaa8b8bd025ad0 (patch)
treeccba0cbed827aa3a9826e28e4bc41df7e6437d02 /lib/asn1/test
parent09bcfc03bd2e2b2eb31f15f2410ca3b5e8e76616 (diff)
downloadotp-1c79a4fd03cea47d20f5de00bbdaa8b8bd025ad0.tar.gz
otp-1c79a4fd03cea47d20f5de00bbdaa8b8bd025ad0.tar.bz2
otp-1c79a4fd03cea47d20f5de00bbdaa8b8bd025ad0.zip
Use recursive get_referenced_type to get classdef directly
To be sure that indirect references to classes are solved.
Diffstat (limited to 'lib/asn1/test')
-rw-r--r--lib/asn1/test/asn1_SUITE_data/ParamBasic.asn119
-rw-r--r--lib/asn1/test/testParamBasic.erl4
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1 b/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1
index 68fc782f33..8a69a6addd 100644
--- a/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1
+++ b/lib/asn1/test/asn1_SUITE_data/ParamBasic.asn1
@@ -42,4 +42,23 @@ SIGNATURE-ALGORITHM ::= CLASS {
KEY &id CONTAINING &Type
}
+--
+-- Test that indirect classes references are resolved.
+--
+
+AlgorithmIdentifier2 { ALGORITHM-IDENTIFIER:InfoObjectSet } ::= SEQUENCE {
+ algorithm ALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
+ parameters ALGORITHM-IDENTIFIER.&Type({InfoObjectSet} {@algorithm}) OPTIONAL
+}
+
+ALGORITHM-IDENTIFIER ::= TYPE-IDENTIFIER
+
+Seq ::= SEQUENCE {
+ c1 AlgorithmIdentifier2 {{ObjectSet-1}},
+ c2 AlgorithmIdentifier2 {{ObjectSet-2}}
+}
+
+ObjectSet-1 ALGORITHM-IDENTIFIER ::= { {INTEGER IDENTIFIED BY {2 1 1}}, ... }
+ObjectSet-2 ALGORITHM-IDENTIFIER ::= { ... }
+
END
diff --git a/lib/asn1/test/testParamBasic.erl b/lib/asn1/test/testParamBasic.erl
index 39f7947e8d..52c6426414 100644
--- a/lib/asn1/test/testParamBasic.erl
+++ b/lib/asn1/test/testParamBasic.erl
@@ -46,6 +46,10 @@ main(Rules) ->
roundtrip('AnAlgorithm', {'AnAlgorithm',1,42}),
roundtrip('AnAlgorithm', {'AnAlgorithm',2,true}),
roundtrip('AnAlgorithm', {'AnAlgorithm',2,false}),
+
+ roundtrip('Seq', {'Seq',
+ {'Seq_c1',{2,1,1},42},
+ {'Seq_c2',{2,1,1,1},asn1_NOVALUE}}),
ok.
roundtrip(Type, Value) ->