%% %% %CopyrightBegin% %% %% Copyright Ericsson AB 2001-2013. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. %% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. %% %% %CopyrightEnd% %% %% -module(testSeqSetDefaultVal). -export([main/1]). -include("External.hrl"). -include_lib("test_server/include/test_server.hrl"). -record('SeqInts',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT, d = asn1_DEFAULT}). -record('SetInts',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT, d = asn1_DEFAULT}). -record('SeqBS',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT, d = asn1_DEFAULT}). -record('SetBS',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT, d = asn1_DEFAULT}). -record('SeqOS',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT}). -record('SetOS',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT}). -record('SeqOI',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT}). -record('SetOI',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT}). -record('SeqEnum',{a = asn1_DEFAULT, b = asn1_DEFAULT}). -record('SetEnum',{a = asn1_DEFAULT, b = asn1_DEFAULT}). -record('SeqIntBool',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT}). -record('SeqIntBool_a',{aa = asn1_DEFAULT, ab = asn1_DEFAULT}). -record('SetIntBool',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT}). -record('SetIntBool_a',{aa = asn1_DEFAULT, ab = asn1_DEFAULT}). -record('SeqStrings',{a = asn1_DEFAULT, b1 = asn1_DEFAULT, b2 = asn1_DEFAULT, b3 = asn1_DEFAULT, c = asn1_DEFAULT, d = asn1_DEFAULT}). -record('SetStrings',{a = asn1_DEFAULT, b1 = asn1_DEFAULT, b2 = asn1_DEFAULT, b3 = asn1_DEFAULT, c = asn1_DEFAULT, d = asn1_DEFAULT}). -record('S1',{a = asn1_DEFAULT, b = asn1_DEFAULT}). -record('S1_a',{aa = asn1_DEFAULT, ab = asn1_DEFAULT}). -record('S2',{a = asn1_DEFAULT, b=asn1_NOVALUE}). -record('S3',{a = asn1_DEFAULT, b = asn1_DEFAULT, c = asn1_DEFAULT, d = asn1_DEFAULT}). -record('S3set',{a = asn1_DEFAULT, b = asn1_DEFAULT}). -record('S4',{a = asn1_DEFAULT, b = asn1_DEFAULT}). -record('S4_b',{ba = asn1_DEFAULT, bb = asn1_DEFAULT}). main(_Rules) -> roundtrip(<<48,0>>, 'SeqInts', #'SeqInts'{a=asn1_DEFAULT,b=asn1_DEFAULT, c=asn1_DEFAULT,d=asn1_DEFAULT}, #'SeqInts'{a=1,b=-1,c=3,d=1}), roundtrip(<<48,0>>, 'SeqInts', #'SeqInts'{a=1,b=-1,c=three,d=1}, #'SeqInts'{a=1,b=-1,c=3,d=1}), roundtrip(<<49,0>>, 'SetInts', #'SetInts'{a=asn1_DEFAULT,b=asn1_DEFAULT, c=asn1_DEFAULT,d=asn1_DEFAULT}, #'SetInts'{a=1,b=-1,c=3,d=1}), roundtrip(<<49,0>>, 'SetInts', #'SetInts'{a=1,b=-1,c=three,d=1}, #'SetInts'{a=1,b=-1,c=3,d=1}), roundtrip(<<48,0>>, 'SeqBS', #'SeqBS'{a=2#1010110,b=16#A8A,c=[second],d=[1,0,0,1]}, #'SeqBS'{a=[1,0,1,0,1,1,0],b=16#A8A,c=[second],d=[1,0,0,1]}), roundtrip(<<48,0>>, 'SeqBS', #'SeqBS'{a=[1,0,1,0,1,1,0], b=[1,0,1,0,1,0,0,0,1,0,1,0], c={5,<<64>>}, d=2#1001}, #'SeqBS'{a=[1,0,1,0,1,1,0],b=16#A8A,c=[second],d=[1,0,0,1]}), roundtrip(<<48,3,131,1,0>>, 'SeqBS', #'SeqBS'{a=[1,0,1,0,1,1,0], b=[1,0,1,0,1,0,0,0,1,0,1,0], c={5,<<64>>}, d=0}, #'SeqBS'{a=[1,0,1,0,1,1,0], b=16#A8A, c=[second], d = <<>>}), roundtrip(<<49,0>>, 'SetBS', #'SetBS'{a=2#1010110,b=16#A8A,c=[second],d=[1,0,0,1]}, #'SetBS'{a=[1,0,1,0,1,1,0],b=16#A8A,c=[second],d=[1,0,0,1]}), roundtrip(<<49,0>>, 'SetBS', #'SetBS'{a=[1,0,1,0,1,1,0], b=[1,0,1,0,1,0,0,0,1,0,1,0], c={5,<<64>>}, d=9}, #'SetBS'{a=[1,0,1,0,1,1,0], b=16#A8A, c=[second], d=[1,0,0,1]}), roundtrip(<<49,3,131,1,0>>, 'SetBS', #'SetBS'{a=[1,0,1,0,1,1,0], b=[1,0,1,0,1,0,0,0,1,0,1,0], c={5,<<64>>}, d=0}, #'SetBS'{a=[1,0,1,0,1,1,0], b=16#A8A, c=[second], d = <<>>}), roundtrip(<<48,0>>, 'SeqOS', #'SeqOS'{a=[172],b=[16#A8,16#A0],c='NULL'}), roundtrip(<<48,0>>, 'SeqOS', #'SeqOS'{a=172,b=43168,c='NULL'}, #'SeqOS'{a=[172],b=[16#A8,16#A0],c='NULL'}), roundtrip(<<49,0>>, 'SetOS', #'SetOS'{a=[172],b=[16#A8,16#A0],c='NULL'}), roundtrip(<<49,0>>, 'SetOS', #'SetOS'{a=172,b=43168,c='NULL'}, #'SetOS'{a=[172],b=[16#A8,16#A0],c='NULL'}), roundtrip(<<48,0>>, 'SeqOI', #'SeqOI'{a={1,2,14,15}, b={iso,'member-body',250,3,4}, c={iso,standard,8571,2,250,4}}, #'SeqOI'{a={1,2,14,15}, b={1,2,250,3,4}, c={1,0,8571,2,250,4}}), roundtrip(<<49,0>>, 'SetOI', #'SetOI'{a={1,2,14,15}, b={iso,'member-body',250,3,4}, c={iso,standard,8571,2,250,4}}, #'SetOI'{a={1,2,14,15}, b={1,2,250,3,4}, c={1,0,8571,2,250,4}}), roundtrip(<<48,0>>, 'SeqEnum', #'SeqEnum'{a=b4,b=b2}), roundtrip(<<49,0>>, 'SetEnum', #'SetEnum'{a=b4,b=b2}), roundtrip(<<48,0>>, 'SeqIntBool', #'SeqIntBool'{a=#'SeqIntBool_a'{aa=12,ab=13}, b=#'S2'{a=14,b=true}, c=#'S2'{a=15,b=false}}), roundtrip(<<48,0>>, 'SeqIntBool', #'SeqIntBool'{a=asn1_DEFAULT,b=asn1_DEFAULT,c=asn1_DEFAULT}, #'SeqIntBool'{a=#'SeqIntBool_a'{aa=12,ab=13}, b=#'S2'{a=14,b=true}, c=#'S2'{a=15,b=false}}), roundtrip(<<49,0>>, 'SetIntBool', #'SetIntBool'{a=#'SetIntBool_a'{aa=12,ab=13}, b=#'S2'{a=14,b=true}, c=#'S2'{a=15,b=false}}), roundtrip(<<49,0>>, 'SetIntBool', #'SetIntBool'{a=asn1_DEFAULT,b=asn1_DEFAULT,c=asn1_DEFAULT}, #'SetIntBool'{a=#'SetIntBool_a'{aa=12,ab=13}, b=#'S2'{a=14,b=true}, c=#'S2'{a=15,b=false}}), roundtrip(<<48,0>>, 'SeqStrings', #'SeqStrings'{a="123456789",b1="abcdef", b2={0,13}, b3={"First line",{0,13},"Second line"}, c="Printable string", d={0,0,1,14}}, #'SeqStrings'{a="123456789",b1="abcdef", b2=[0,13], b3=["First line",[0,13],"Second line"], c="Printable string", d=[0,0,1,14]}), roundtrip(<<49,0>>, 'SetStrings', #'SetStrings'{a="123456789",b1="abcdef", b2={0,13}, b3={"First line",{0,13},"Second line"}, c="Printable string", d={0,0,1,14}}, #'SetStrings'{a="123456789",b1="abcdef", b2=[0,13], b3=["First line",[0,13],"Second line"], c="Printable string", d=[0,0,1,14]}), roundtrip(<<48,0>>, 'S1', #'S1'{a=#'S1_a'{aa=1,ab=#'S2'{a=2,b=true}}, b=#'S4'{a=#'S2'{a=2,b=true},b=#'S4_b'{ba=true,bb=5}}}), roundtrip(<<48,3,129,1,255>>, 'S2', #'S2'{a=1,b=true}), roundtrip(<<48,0>>, 'S3', #'S3'{a="\v\f\r", b=[{a,11},{b,true},{c,13}], c=[1,2,3,4], d=[#'S2'{a=20,b=true},#'S2'{a=30,b=false}]}), roundtrip(<<48,0>>, 'S3', #'S3'{a=[11,13,12], b=[{b,true},{a,11},{c,13}], c=[3,4,1,2], d=[#'S2'{a=30,b=false},#'S2'{a=20,b=true}]}, #'S3'{a=[11,12,13], b=[{a,11},{b,true},{c,13}], c=[1,2,3,4], d=[#'S2'{a=20,b=true},#'S2'{a=30,b=false}]}), roundtrip(<<48,0>>, 'S3', #'S3'{a=asn1_DEFAULT,b=asn1_DEFAULT, c=asn1_DEFAULT,d=asn1_DEFAULT}, #'S3'{a=[11,12,13], b=[{a,11},{b,true},{c,13}], c=[1,2,3,4], d=[#'S2'{a=20,b=true},#'S2'{a=30,b=false}]}), roundtrip(<<49,0>>, 'S3set', #'S3set'{a=[{c,#'S2'{a=3,b=true}},{b,17},{a,false}], b=[1,2,3,4]}), roundtrip(<<49,0>>, 'S3set', #'S3set'{a=[{b,17},{c,#'S2'{a=3,b=true}},{a,false}], b=[1,3,4,2]}, #'S3set'{a=[{c,#'S2'{a=3,b=true}},{b,17},{a,false}], b=[1,2,3,4]}), roundtrip(<<49,0>>, 'S3set', #'S3set'{a=asn1_DEFAULT,b=asn1_DEFAULT}, #'S3set'{a=[{c,#'S2'{a=3,b=true}},{b,17},{a,false}], b=[1,2,3,4]}), roundtrip(<<48,0>>, 'S4', #'S4'{a=#'S2'{a=1,b=asn1_NOVALUE},b=#'S4_b'{ba=true,bb=0}}, #'S4'{a=#'S2'{a=1,b=asn1_NOVALUE},b=#'S4_b'{ba=true,bb=0}}), ok. roundtrip(Encoded, Type, Value) -> roundtrip(Encoded, Type, Value, Value). roundtrip(Encoded, Type, Value, ExpectedValue) -> Encoded = asn1_test_lib:roundtrip_enc('Default', Type, Value, ExpectedValue), ok.