aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/testExtensionDefault.erl
diff options
context:
space:
mode:
authorRaimo Niskanen <[email protected]>2017-08-24 09:37:16 +0200
committerRaimo Niskanen <[email protected]>2017-08-24 09:37:16 +0200
commit710f9437498a8a9df62a6c7cecd6eb632561754b (patch)
tree00d7dc89d265b8e4607b22f78445dee811834876 /lib/asn1/test/testExtensionDefault.erl
parentd50bc5031eb0889c894bf20f5206cfc06162f30a (diff)
parent41878bba817fc2ec9e08529afe19c2655742dbd1 (diff)
downloadotp-710f9437498a8a9df62a6c7cecd6eb632561754b.tar.gz
otp-710f9437498a8a9df62a6c7cecd6eb632561754b.tar.bz2
otp-710f9437498a8a9df62a6c7cecd6eb632561754b.zip
Merge branch 'maint-20' into maint
* maint-20: Updated OTP version Prepare release Accept non-binary options as socket-options Bump version Fix broken handling of default values in extensions for PER compiler: Fix live regs update on allocate in validator Take fail labels into account when determining liveness in block ops Check for overflow when appending binaries, and error out with system_limit
Diffstat (limited to 'lib/asn1/test/testExtensionDefault.erl')
-rw-r--r--lib/asn1/test/testExtensionDefault.erl53
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/asn1/test/testExtensionDefault.erl b/lib/asn1/test/testExtensionDefault.erl
new file mode 100644
index 0000000000..cc50fa95b8
--- /dev/null
+++ b/lib/asn1/test/testExtensionDefault.erl
@@ -0,0 +1,53 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2017. All Rights Reserved.
+%%
+%% Licensed under the Apache License, Version 2.0 (the "License");
+%% you may not use this file except in compliance with the License.
+%% You may obtain a copy of the License at
+%%
+%% http://www.apache.org/licenses/LICENSE-2.0
+%%
+%% Unless required by applicable law or agreed to in writing, software
+%% distributed under the License is distributed on an "AS IS" BASIS,
+%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+%% See the License for the specific language governing permissions and
+%% limitations under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+-module(testExtensionDefault).
+
+-export([main/1]).
+
+main(_Erule) ->
+ roundtrip('Message', {'Message',1,low}), %Will be explicitly encoded.
+ roundtrip('Message', {'Message',1,high}),
+ roundtrip('Message', {'Message',1,asn1_DEFAULT}, {'Message',1,low}),
+
+ map_roundtrip('Message', #{id=>1,priority=>low}), %Will be explicitly encoded.
+ map_roundtrip('Message', #{id=>1,priority=>high}),
+ map_roundtrip('Message', #{id=>1}, #{id=>1,priority=>low}),
+ ok.
+
+roundtrip(Type, Value) ->
+ asn1_test_lib:roundtrip('ExtensionDefault', Type, Value).
+
+roundtrip(Type, Value, Expected) ->
+ %% asn1_test_lib:roundtrip/3 will invoke map_roundtrip/3, which will
+ %% not work in this case. Therefore, implement the roundtrip ourselves.
+ M = 'ExtensionDefault',
+ {ok,Enc} = M:encode(Type, Value),
+ {ok,Expected} = M:decode(Type, Enc),
+ ok.
+
+map_roundtrip(Type, Value) ->
+ map_roundtrip(Type, Value, Value).
+
+map_roundtrip(Type, Value, Expected) ->
+ M = 'maps_ExtensionDefault',
+ Enc = M:encode(Type, Value),
+ Expected = M:decode(Type, Enc),
+ ok.