aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/testDefaultOctetString.erl
diff options
context:
space:
mode:
authorIngela Andin <[email protected]>2019-03-22 10:03:13 +0100
committerGitHub <[email protected]>2019-03-22 10:03:13 +0100
commitd096ca2c0cebec816fa2e0386b7e5f0d8cd62a88 (patch)
tree799810afaf085beec0cce2d20bcba8324e791efa /lib/asn1/test/testDefaultOctetString.erl
parent5b62f4db7e6238f784c8f485baaa7f8fc61cd56c (diff)
parent7b73f5119b6a7bdadb2255b05dbd3463ec24e16f (diff)
downloadotp-d096ca2c0cebec816fa2e0386b7e5f0d8cd62a88.tar.gz
otp-d096ca2c0cebec816fa2e0386b7e5f0d8cd62a88.tar.bz2
otp-d096ca2c0cebec816fa2e0386b7e5f0d8cd62a88.zip
Merge pull request #2159 from dotsimon/asn1_pedefs
ASN.1: fix various problems with value definitions OTP-15697
Diffstat (limited to 'lib/asn1/test/testDefaultOctetString.erl')
-rw-r--r--lib/asn1/test/testDefaultOctetString.erl34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/asn1/test/testDefaultOctetString.erl b/lib/asn1/test/testDefaultOctetString.erl
new file mode 100644
index 0000000000..82cd5810e5
--- /dev/null
+++ b/lib/asn1/test/testDefaultOctetString.erl
@@ -0,0 +1,34 @@
+-module(testDefaultOctetString).
+
+-export([dos/1]).
+
+-include_lib("common_test/include/ct.hrl").
+
+-record('Dos', {
+ opt = asn1_NOVALUE,
+ def = asn1_DEFAULT
+}).
+
+-define(def_DEFAULT, <<5>>).
+
+dos(Rules) ->
+ %% test roundtrip default
+ E1 = roundtrip(#'Dos'{}, #'Dos'{def = ?def_DEFAULT}),
+ %% test the value dos defined in the .asn file
+ E2 = roundtrip('DefaultOctetString':dos()),
+ %% sanity test a fully specified SEQUENCE
+ E3 = roundtrip(#'Dos'{opt = <<1,2,3>>, def = <<6>>}),
+ %% test def is/isn't encoded according to the value
+ if Rules == ber ->
+ <<48, 0>> = E1,
+ <<48, 4, 16#82, 2, 16#12, 16#34>> = E2,
+ <<48, 8, 16#82, 3, 1, 2, 3, 16#8A, 1, 6>> = E3;
+ true ->
+ ignore
+ end,
+ ok.
+
+roundtrip(Value) ->
+ roundtrip(Value, Value).
+roundtrip(Value, Exp) ->
+ asn1_test_lib:roundtrip('DefaultOctetString', 'Dos', Value, Exp).