4
%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
6
%% The contents of this file are subject to the Erlang Public License,
7
%% Version 1.1, (the "License"); you may not use this file except in
8
%% compliance with the License. You should have received a copy of the
9
%% Erlang Public License along with this software. If not, it can be
10
%% retrieved online at http://www.erlang.org/.
12
%% Software distributed under the License is distributed on an "AS IS"
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
%% the License for the specific language governing rights and limitations
20
-module(testChoExtension).
23
-export([extension/1]).
25
-include_lib("test_server/include/test_server.hrl").
28
compile(Config,Rules,Options) ->
30
?line DataDir = ?config(data_dir,Config),
31
?line OutDir = ?config(priv_dir,Config),
32
?line true = code:add_patha(?config(priv_dir,Config)),
33
?line ok = asn1ct:compile(DataDir ++ "ChoExtension",[Rules,{outdir,OutDir}] ++ Options).
39
?line {ok,Bytes1} = asn1_wrapper:encode('ChoExtension','ChoExt1',{'ChoExt1',{bool,true}}),
40
?line {ok,{bool,true}} =
41
asn1_wrapper:decode('ChoExtension','ChoExt1',lists:flatten(Bytes1)),
43
?line {ok,Bytes2} = asn1_wrapper:encode('ChoExtension','ChoExt1',{'ChoExt1',{int,33}}),
45
asn1_wrapper:decode('ChoExtension','ChoExt1',lists:flatten(Bytes2)),
47
%% A trick to encode with another compatible CHOICE type to test reception
48
%% extension alternative
50
?line {ok,Bytes2x} = asn1_wrapper:encode('ChoExtension','ChoExt1x',{str,"abc"}),
52
asn1_wrapper:decode('ChoExtension','ChoExt1',lists:flatten(Bytes2x)),
53
io:format("Choice extension alternative = ~p~n",[Val2x]),
55
?line {ok,Bytes3} = asn1_wrapper:encode('ChoExtension','ChoExt2',{'ChoExt2',{bool,true}}),
56
?line {ok,{bool,true}} =
57
asn1_wrapper:decode('ChoExtension','ChoExt2',lists:flatten(Bytes3)),
59
?line {ok,Bytes4} = asn1_wrapper:encode('ChoExtension','ChoExt2',{'ChoExt2',{int,33}}),
61
asn1_wrapper:decode('ChoExtension','ChoExt2',lists:flatten(Bytes4)),
63
?line {ok,Bytes5} = asn1_wrapper:encode('ChoExtension','ChoExt3',{'ChoExt3',{bool,true}}),
64
?line {ok,{bool,true}} =
65
asn1_wrapper:decode('ChoExtension','ChoExt3',lists:flatten(Bytes5)),
67
?line {ok,Bytes6} = asn1_wrapper:encode('ChoExtension','ChoExt3',{'ChoExt3',{int,33}}),
69
asn1_wrapper:decode('ChoExtension','ChoExt3',lists:flatten(Bytes6)),
72
?line {ok,Bytes7} = asn1_wrapper:encode('ChoExtension','ChoExt4',Val7),
73
?line {ok,Val7} = asn1_wrapper:decode('ChoExtension','ChoExt4',lists:flatten(Bytes7)),