aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/testDefaultOctetString.erl
diff options
context:
space:
mode:
authorSimon Cornish <[email protected]>2019-02-22 16:20:12 -0800
committerSimon Cornish <[email protected]>2019-02-25 21:27:36 -0800
commitd3efb32359e59b2996cde916436ffa56aa2ffb19 (patch)
tree9c8bf1f169d47a165689b67ef3670866ce483ad8 /lib/asn1/test/testDefaultOctetString.erl
parent7e21a18877374cfaef1fe839a5cd78599eb2d9d6 (diff)
downloadotp-d3efb32359e59b2996cde916436ffa56aa2ffb19.tar.gz
otp-d3efb32359e59b2996cde916436ffa56aa2ffb19.tar.bz2
otp-d3efb32359e59b2996cde916436ffa56aa2ffb19.zip
Add test for DEFAULT used with OCTET STRING
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).