diff options
Diffstat (limited to 'lib/asn1/test/asn1_SUITE.erl.src')
-rw-r--r-- | lib/asn1/test/asn1_SUITE.erl.src | 2347 |
1 files changed, 0 insertions, 2347 deletions
diff --git a/lib/asn1/test/asn1_SUITE.erl.src b/lib/asn1/test/asn1_SUITE.erl.src deleted file mode 100644 index d05b7cac90..0000000000 --- a/lib/asn1/test/asn1_SUITE.erl.src +++ /dev/null @@ -1,2347 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2001-2012. 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% -%% -%% -%%% Purpose : Test suite for the ASN.1 application - --module(asn1_%BIN%SUITE). --define(PER, '%PER%'). --define(BER, '%BER%'). --define(ber_nif(Erule, Func), - case Erule of - ber_bin_v2 -> Func; - _ -> ok - end). --define(per_optimize(Erule), - case Erule of - ber_bin_v2 -> [optimize]; - _ -> [] - end). --define(per_bit_opt(FuncCall), - case ?BER of - ber_bin_v2 -> FuncCall; - _ -> ok - end). --define(uper_bin(FuncCall), - case ?PER of - per -> FuncCall; - _ -> ok - end). - --compile(export_all). -%%-export([Function/Arity, ...]). - --include_lib("test_server/include/test_server.hrl"). - -%% records used by test-case default --record('Def1', {bool0, - bool1 = asn1_DEFAULT, - bool2 = asn1_DEFAULT, - bool3 = asn1_DEFAULT}). - -suite() -> [{ct_hooks, [ts_install_cth]}]. - -all() -> [{group, parallel}] ++ common() ++ particular(). - -groups() -> - [{compile, parallel([]), - [c_syntax, - % Uses 'String' - {group, [], [c_string_per, - c_string_ber]}, - c_implicit_before_choice]}, - - {ber, parallel([]), - [ber_choiceinseq, - % Uses 'SOpttest' - {group, [], [ber_optional, - ber_optional_keyed_list]}, - ber_other]}, - - {app_test, [], - [{asn1_app_test, all}]}, - - {appup_test, [], - [{asn1_appup_test, all}]}, - - {parallel, parallel([]), - [{group, compile}, - {group, ber}, - % Uses 'Prim' - {group, [], [testPrim, - rtUI]}, - % Uses 'P-Record', 'Constraints', 'MEDIA-GATEWAY-CONTROL'... - {group, [], [parse, - test_driver_load, - test_undecoded_rest, - test_inline, - specialized_decodes, - special_decode_performance, - testMegaco, - testConstraints, - testCompactBitString]}, - % Uses 'Def' - {group, [], [default_ber, - default_per, - default_per_opt]}, - per, - {group, [], [testPrimStrings, - testInvokeMod]}, - testChoPrim, - testChoExtension, - testChoOptional, - testChoOptionalImplicitTag, - testChoRecursive, - testChoTypeRefCho, - testChoTypeRefPrim, - testChoTypeRefSeq, - testChoTypeRefSet, - testDef, - testOpt, - testSeqDefault, - % Uses 'External' - {group, [], [testChoExternal, - testPrimExternal, - testSeqExtension, - testSeqExternal, - testSeqOfExternal, - testSeqTag, - testSetExternal, - testSetOfExternal, - testSetOfTag, - testSetTag]}, - testSeqOptional, - testSeqPrim, - testSeqTypeRefCho, - % Uses 'SeqTypeRefPrim' - {group, [], [testSeqTypeRefPrim, - testTypeValueNotation]}, - testSeqTypeRefSeq, - testSeqTypeRefSet, - % Uses 'SeqOf' - {group, [], [testSeqOf, - testSeqOfIndefinite]}, % Uses 'Mvrasn*' - testSeqOfCho, - testSetDefault, - testSetExtension, - testExtensionAdditionGroup, - testSeqOfTag, - testSetOptional, - testSetPrim, - testSetTypeRefCho, - testSetTypeRefPrim, - testSetTypeRefSeq, - testSetTypeRefSet, - testSetOf, - testSetOfCho, - testEnumExt, - value_test, - testSeq2738, - % Uses 'Constructed' - {group, [], [constructed, - ber_decode_error]}, - % Uses 'MULTIMEDIA-SYSTEM-CONTROL' - {group, [], [h323test, - per_GeneralString]}, - % Uses 'SeqSetIndefinite' - {group, [], [testSeqIndefinite, - testSetIndefinite]}, - testChoiceIndefinite, - per_open_type, - testInfObjectClass, - testParameterizedInfObj, - testMergeCompile, - testobj, - testDeepTConstr, - testExport, - testImport, - % Uses 'ParamBasic' - {group, [], [testParamBasic, - testDER]}, - testMvrasn6, - testContextSwitchingTypes, - testOpenTypeImplicitTag, - duplicate_tags, - testROSE, - testINSTANCE_OF, - testTCAP, - test_ParamTypeInfObj, - test_WS_ParamClass, - test_Defed_ObjectIdentifier, - testSelectionType, - testSSLspecs, - testNortel, - % Uses 'PKCS7' - {group, [], [test_modified_x420, - testX420]}, - testTcapsystem, - testNBAPsystem, - test_compile_options, - testDoubleEllipses, - test_x691, - ticket_6143, - testExtensionAdditionGroup, - test_OTP_9688]} - ]. - -parallel(Options) -> - case erlang:system_info(smp_support) andalso - erlang:system_info(schedulers) > 1 of - true -> [parallel|Options]; - false -> Options - end. - -init_per_suite(Config) -> - Config. - -end_per_suite(_Config) -> - ok. - -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. - -init_per_testcase(Func, Config) -> - PrivDir = ?config(priv_dir, Config), - true = code:add_patha(PrivDir), - - CaseDir = filename:join([PrivDir, ?MODULE, Func]), - ok = filelib:ensure_dir(filename:join([CaseDir, dummy_file])), - true = code:add_patha(CaseDir), - - Dog = case Func of - testX420 -> test_server:timetrap({minutes, 60}); - _ -> test_server:timetrap({minutes, 30}) - end, - [{case_dir, CaseDir}, {watchdog, Dog}|Config]. - -end_per_testcase(_Func, Config) -> - Dog = ?config(watchdog, Config), - % TODO: Clean up code path? - test_server:timetrap_cancel(Dog). - - -testPrim(suite) -> []; -testPrim(Config) -> - Files = ["Prim", "Real"], - - asn1_test_lib:compile_all(Files, Config, [?BER]), - testPrim_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile_all(Files, Config, [?BER, nif])), - ?ber_nif(?BER, testPrim_cases(?BER)), - - asn1_test_lib:compile_all(Files, Config, [?PER]), - testPrim_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile_all(Files, Config, [?PER, optimize])), - ?per_bit_opt(testPrim_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile_all(Files, Config, [uper_bin])), - ?uper_bin(testPrim_cases(uper_bin)), - - asn1_test_lib:compile_all(Files, Config, [?PER, optimize]), - testPrim_cases(?PER). - -testPrim_cases(Rules) -> - testPrim:bool(Rules), - testPrim:int(Rules), - testPrim:enum(Rules), - testPrim:obj_id(Rules), - testPrim:rel_oid(Rules), - testPrim:null(Rules), - testPrim:real(Rules). - - -testCompactBitString(suite) -> []; -testCompactBitString(Config) -> - testCompactBitString:compile(Config, [?BER, compact_bit_string]), - testCompactBitString:compact_bit_string(?BER), - - ?ber_nif(?BER, testCompactBitString:compile(Config, [?BER, compact_bit_string, nif])), - ?ber_nif(?BER, testCompactBitString:compact_bit_string(?BER)), - - testCompactBitString:compile(Config, [?PER, compact_bit_string]), - testCompactBitString:compact_bit_string(?PER), - testCompactBitString:bit_string_unnamed(?PER), - - ?per_bit_opt(testCompactBitString:compile(Config, [?PER, compact_bit_string, optimize])), - ?per_bit_opt(testCompactBitString:compact_bit_string(?PER)), - ?per_bit_opt(testCompactBitString:bit_string_unnamed(?PER)), - ?per_bit_opt(testCompactBitString:ticket_7734(?PER)), - - ?uper_bin(testCompactBitString:compile(Config, [uper_bin, compact_bit_string])), - ?uper_bin(testCompactBitString:compact_bit_string(uper_bin)), - ?uper_bin(testCompactBitString:bit_string_unnamed(uper_bin)), - - testCompactBitString:compile(Config, [?PER, optimize, compact_bit_string]), - testCompactBitString:compact_bit_string(?PER), - testCompactBitString:bit_string_unnamed(?PER), - - testCompactBitString:otp_4869(?PER). - - -testPrimStrings(suite) -> []; -testPrimStrings(Config) -> - - testPrimStrings:compile(Config, ?BER, []), - testPrimStrings_cases(?BER), - testPrimStrings:more_strings(?BER), %% these are not implemented in per yet - ?ber_nif(?BER, testPrimStrings:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testPrimStrings_cases(?BER)), - ?ber_nif(?BER, testPrimStrings:more_strings(?BER)), - - testPrimStrings:compile(Config, ?PER, []), - testPrimStrings_cases(?PER), - - ?per_bit_opt(testPrimStrings:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testPrimStrings_cases(?PER)), - - ?uper_bin(testPrimStrings:compile(Config, uper_bin, [])), - ?uper_bin(testPrimStrings_cases(uper_bin)), - - testPrimStrings:compile(Config, ?PER, [optimize]), - testPrimStrings_cases(?PER). - -testPrimStrings_cases(Rules) -> - testPrimStrings:bit_string(Rules), - testPrimStrings:bit_string_unnamed(Rules), - testPrimStrings:octet_string(Rules), - testPrimStrings:numeric_string(Rules), - testPrimStrings:other_strings(Rules), - testPrimStrings:universal_string(Rules), - testPrimStrings:bmp_string(Rules), - testPrimStrings:times(Rules), - testPrimStrings:utf8_string(Rules). - - - -testPrimExternal(suite) -> []; -testPrimExternal(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - asn1_test_lib:compile("PrimExternal", Config, [?BER]), - testPrimExternal:external(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("PrimExternal", Config, [?BER, nif])), - ?ber_nif(?BER, testPrimExternal:external(?BER)), - - asn1_test_lib:compile("External", Config, [?PER]), - asn1_test_lib:compile("PrimExternal", Config, [?PER]), - testPrimExternal:external(?PER), - - ?per_bit_opt(asn1_test_lib:compile("External", Config, [?PER, optimize])), - ?per_bit_opt(asn1_test_lib:compile("PrimExternal", Config, [?PER, optimize])), - ?per_bit_opt(testPrimExternal:external(?PER)), - - ?uper_bin(asn1_test_lib:compile("External", Config, [uper_bin])), - ?uper_bin(asn1_test_lib:compile("PrimExternal", Config, [uper_bin])), - ?uper_bin(testPrimExternal:external(uper_bin)), - - asn1_test_lib:compile("External", Config, [?PER, optimize]), - asn1_test_lib:compile("PrimExternal", Config, [?PER, optimize]), - testPrimExternal:external(?PER). - - -testChoPrim(suite) -> []; -testChoPrim(Config) -> - asn1_test_lib:compile("ChoPrim", Config, [?BER]), - testChoPrim_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("ChoPrim", Config, [?BER, nif])), - ?ber_nif(?BER, testChoPrim_cases(?BER)), - - asn1_test_lib:compile("ChoPrim", Config, [?PER]), - testChoPrim_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("ChoPrim", Config, [?PER, optimize])), - ?per_bit_opt(testChoPrim_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("ChoPrim", Config, [uper_bin])), - ?uper_bin(testChoPrim_cases(uper_bin)), - - asn1_test_lib:compile("ChoPrim", Config, [?PER, optimize]), - testChoPrim_cases(?PER). - -testChoPrim_cases(Rules) -> - testChoPrim:bool(Rules), - testChoPrim:int(Rules). - - - -testChoExtension(suite) -> []; -testChoExtension(Config) -> - asn1_test_lib:compile("ChoExtension", Config, [?BER]), - testChoExtension_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("ChoExtension", Config, [?BER, nif])), - ?ber_nif(?BER, testChoExtension_cases(?BER)), - - asn1_test_lib:compile("ChoExtension", Config, [?PER]), - testChoExtension_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("ChoExtension", Config, [?PER, optimize])), - ?per_bit_opt(testChoExtension_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("ChoExtension", Config, [uper_bin])), - ?uper_bin(testChoExtension_cases(uper_bin)), - - asn1_test_lib:compile("ChoExtension", Config, [?PER, optimize]), - testChoExtension_cases(?PER). - -testChoExtension_cases(Rules) -> - testChoExtension:extension(Rules). - - - -testChoExternal(suite) -> []; -testChoExternal(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - asn1_test_lib:compile("ChoExternal", Config, [?BER]), - testChoExternal:external(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("ChoExternal", Config, [?BER, nif])), - ?ber_nif(?BER, testChoExternal:external(?BER)), - - asn1_test_lib:compile("External", Config, [?PER]), - asn1_test_lib:compile("ChoExternal", Config, [?PER]), - testChoExternal:external(?PER), - - ?per_bit_opt(asn1_test_lib:compile("External", Config, [?PER, optimize])), - ?per_bit_opt(asn1_test_lib:compile("ChoExternal", Config, [?PER, optimize])), - ?per_bit_opt(testChoExternal:external(?PER)), - - ?uper_bin(asn1_test_lib:compile("External", Config, [uper_bin])), - ?uper_bin(asn1_test_lib:compile("ChoExternal", Config, [uper_bin])), - ?uper_bin(testChoExternal:external(uper_bin)), - - asn1_test_lib:compile("External", Config, [?PER, optimize]), - asn1_test_lib:compile("ChoExternal", Config, [?PER, optimize]), - testChoExternal:external(?PER). - - -testChoOptional(suite) -> []; -testChoOptional(Config) -> - - testChoOptional:compile(Config, ?BER, []), - testChoOptional_cases(?BER), - - ?ber_nif(?BER, testChoOptional:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testChoOptional_cases(?BER)), - - testChoOptional:compile(Config, ?PER, []), - testChoOptional_cases(?PER), - - ?per_bit_opt(testChoOptional:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testChoOptional_cases(?PER)), - - ?uper_bin(testChoOptional:compile(Config, uper_bin, [])), - ?uper_bin(testChoOptional_cases(uper_bin)), - - testChoOptional:compile(Config, ?PER, [optimize]), - testChoOptional_cases(?PER). - -testChoOptional_cases(Rules) -> - testChoOptional:optional(Rules). - -testChoOptionalImplicitTag(suite) -> []; -testChoOptionalImplicitTag(Config) -> - %% Only meaningful for ?BER - testChoOptionalImplicitTag:compile(Config, ?BER), - testChoOptionalImplicitTag:optional(?BER). - - -testChoRecursive(suite) -> []; -testChoRecursive(Config) -> - - testChoRecursive:compile(Config, ?BER, []), - testChoRecursive_cases(?BER), - - ?ber_nif(?BER, testChoRecursive:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testChoRecursive_cases(?BER)), - - testChoRecursive:compile(Config, ?PER, []), - testChoRecursive_cases(?PER), - - ?per_bit_opt(testChoRecursive:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testChoRecursive_cases(?PER)), - - ?uper_bin(testChoRecursive:compile(Config, uper_bin, [])), - ?uper_bin(testChoRecursive_cases(uper_bin)), - - testChoRecursive:compile(Config, ?PER, [optimize]), - testChoRecursive_cases(?PER). - -testChoRecursive_cases(Rules) -> - testChoRecursive:recursive(Rules). - - - -testChoTypeRefCho(suite) -> []; -testChoTypeRefCho(Config) -> - - testChoTypeRefCho:compile(Config, ?BER, []), - testChoTypeRefCho_cases(?BER), - - ?ber_nif(?BER, testChoTypeRefCho:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testChoTypeRefCho_cases(?BER)), - - testChoTypeRefCho:compile(Config, ?PER, []), - testChoTypeRefCho_cases(?PER), - - ?per_bit_opt(testChoTypeRefCho:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testChoTypeRefCho_cases(?PER)), - - ?uper_bin(testChoTypeRefCho:compile(Config, uper_bin, [])), - ?uper_bin(testChoTypeRefCho_cases(uper_bin)), - - testChoTypeRefCho:compile(Config, ?PER, [optimize]), - testChoTypeRefCho_cases(?PER). - -testChoTypeRefCho_cases(Rules) -> - testChoTypeRefCho:choice(Rules). - - - -testChoTypeRefPrim(suite) -> []; -testChoTypeRefPrim(Config) -> - - testChoTypeRefPrim:compile(Config, ?BER, []), - testChoTypeRefPrim_cases(?BER), - - ?ber_nif(?BER, testChoTypeRefPrim:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testChoTypeRefPrim_cases(?BER)), - - testChoTypeRefPrim:compile(Config, ?PER, []), - testChoTypeRefPrim_cases(?PER), - - ?per_bit_opt(testChoTypeRefPrim:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testChoTypeRefPrim_cases(?PER)), - - ?uper_bin(testChoTypeRefPrim:compile(Config, uper_bin, [])), - ?uper_bin(testChoTypeRefPrim_cases(uper_bin)), - - testChoTypeRefPrim:compile(Config, ?PER, [optimize]), - testChoTypeRefPrim_cases(?PER). - -testChoTypeRefPrim_cases(Rules) -> - testChoTypeRefPrim:prim(Rules). - - - -testChoTypeRefSeq(suite) -> []; -testChoTypeRefSeq(Config) -> - - testChoTypeRefSeq:compile(Config, ?BER, []), - testChoTypeRefSeq_cases(?BER), - - ?ber_nif(?BER, testChoTypeRefSeq:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testChoTypeRefSeq_cases(?BER)), - - testChoTypeRefSeq:compile(Config, ?PER, []), - testChoTypeRefSeq_cases(?PER), - - ?per_bit_opt(testChoTypeRefSeq:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testChoTypeRefSeq_cases(?PER)), - - ?uper_bin(testChoTypeRefSeq:compile(Config, uper_bin, [])), - ?uper_bin(testChoTypeRefSeq_cases(uper_bin)), - - testChoTypeRefSeq:compile(Config, ?PER, [optimize]), - testChoTypeRefSeq_cases(?PER). - -testChoTypeRefSeq_cases(Rules) -> - testChoTypeRefSeq:seq(Rules). - - - -testChoTypeRefSet(suite) -> []; -testChoTypeRefSet(Config) -> - - testChoTypeRefSet:compile(Config, ?BER, []), - testChoTypeRefSet_cases(?BER), - - ?ber_nif(?BER, testChoTypeRefSet:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testChoTypeRefSet_cases(?BER)), - - testChoTypeRefSet:compile(Config, ?PER, []), - testChoTypeRefSet_cases(?PER), - - ?per_bit_opt(testChoTypeRefSet:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testChoTypeRefSet_cases(?PER)), - - ?uper_bin(testChoTypeRefSet:compile(Config, uper_bin, [])), - ?uper_bin(testChoTypeRefSet_cases(uper_bin)), - - testChoTypeRefSet:compile(Config, ?PER, [optimize]), - testChoTypeRefSet_cases(?PER). - -testChoTypeRefSet_cases(Rules) -> - testChoTypeRefSet:set(Rules). - - - -testDef(suite) -> []; -testDef(Config) -> - - testDef:compile(Config, ?BER, []), - testDef_cases(?BER), - - ?ber_nif(?BER, testDef:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testDef_cases(?BER)), - - testDef:compile(Config, ?PER, []), - testDef_cases(?PER), - - ?per_bit_opt(testDef:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testDef_cases(?PER)), - - ?uper_bin(testDef:compile(Config, uper_bin, [])), - ?uper_bin(testDef_cases(uper_bin)), - - testDef:compile(Config, ?PER, [optimize]), - testDef_cases(?PER). - -testDef_cases(Rules) -> - testDef:main(Rules). - - - -testOpt(suite) -> []; -testOpt(Config) -> - - testOpt:compile(Config, ?BER), - testOpt_cases(?BER), - - testOpt:compile(Config, ?PER), - testOpt_cases(?PER). - -testOpt_cases(Rules) -> - testOpt:main(Rules). - - -testEnumExt(suite) -> []; -testEnumExt(Config) -> - - asn1_test_lib:compile("EnumExt", Config, [?BER]), - testEnumExt:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("EnumExt", Config, [?BER, nif])), - ?ber_nif(?BER, testEnumExt:main(?BER)), - - asn1_test_lib:compile("EnumExt", Config, [?PER]), - testEnumExt:main(?PER), - - ?per_bit_opt(asn1_test_lib:compile("EnumExt", Config, [?PER, optimize])), - ?per_bit_opt(testEnumExt:main(?PER)), - - ?uper_bin(asn1_test_lib:compile("EnumExt", Config, [uper_bin])), - ?uper_bin(testEnumExt:main(uper_bin)), - - asn1_test_lib:compile("EnumExt", Config, [?PER, optimize]), - testEnumExt:main(?PER). - -testSeqDefault(doc) -> ["Test of OTP-2523 ENUMERATED with extensionmark."]; -testSeqDefault(suite) -> []; -testSeqDefault(Config) -> - asn1_test_lib:compile("SeqDefault", Config, [?BER]), - testSeqDefault_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SeqDefault", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqDefault_cases(?BER)), - - asn1_test_lib:compile("SeqDefault", Config, [?PER]), - testSeqDefault_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SeqDefault", Config, [?PER, optimize])), - ?per_bit_opt(testSeqDefault_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SeqDefault", Config, [uper_bin])), - ?uper_bin(testSeqDefault_cases(uper_bin)), - - asn1_test_lib:compile("SeqDefault", Config, [?PER, optimize]), - testSeqDefault_cases(?PER). - -testSeqDefault_cases(Rules) -> - testSeqDefault:main(Rules). - - - -testSeqExtension(suite) -> []; -testSeqExtension(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - asn1_test_lib:compile("SeqExtension", Config, [?BER]), - testSeqExtension_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("SeqExtension", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqExtension_cases(?BER)). - -testSeqExtension_cases(Rules) -> - testSeqExtension:main(Rules). - - - -testSeqExternal(suite) -> []; -testSeqExternal(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - asn1_test_lib:compile("SeqExternal", Config, [?BER]), - testSeqExternal_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("SeqExternal", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqExternal_cases(?BER)). - -testSeqExternal_cases(Rules) -> - testSeqExternal:main(Rules). - - -testSeqOptional(suite) -> []; -testSeqOptional(Config) -> - - testSeqOptional:compile(Config, ?BER, []), - testSeqOptional_cases(?BER), - - ?ber_nif(?BER, testSeqOptional:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqOptional_cases(?BER)), - - testSeqOptional:compile(Config, ?PER, []), - testSeqOptional_cases(?PER), - - ?per_bit_opt(testSeqOptional:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSeqOptional_cases(?PER)), - - ?uper_bin(testSeqOptional:compile(Config, uper_bin, [])), - ?uper_bin(testSeqOptional_cases(uper_bin)), - - testSeqOptional:compile(Config, ?PER, [optimize]), - testSeqOptional_cases(?PER). - -testSeqOptional_cases(Rules) -> - testSeqOptional:main(Rules). - - - -testSeqPrim(suite) -> []; -testSeqPrim(Config) -> - - testSeqPrim:compile(Config, ?BER, []), - testSeqPrim_cases(?BER), - - ?ber_nif(?BER, testSeqPrim:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqPrim_cases(?BER)), - - testSeqPrim:compile(Config, ?PER, []), - testSeqPrim_cases(?PER), - - ?per_bit_opt(testSeqPrim:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSeqPrim_cases(?PER)), - - ?uper_bin(testSeqPrim:compile(Config, uper_bin, [])), - ?uper_bin(testSeqPrim_cases(uper_bin)), - - testSeqPrim:compile(Config, ?PER, [optimize]), - testSeqPrim_cases(?PER). - -testSeqPrim_cases(Rules) -> - testSeqPrim:main(Rules). - - -testSeq2738(doc) -> ["Test of OTP-2738 Detect corrupt optional component."]; -testSeq2738(suite) -> []; -testSeq2738(Config) -> - asn1_test_lib:compile("Seq2738", Config, [?BER]), - testSeq2738_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("Seq2738", Config, [?BER, nif])), - ?ber_nif(?BER, testSeq2738_cases(?BER)), - - asn1_test_lib:compile("Seq2738", Config, [?PER]), - testSeq2738_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("Seq2738", Config, [?PER, optimize])), - ?per_bit_opt(testSeq2738_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("Seq2738", Config, [uper_bin])), - ?uper_bin(testSeq2738_cases(uper_bin)), - - asn1_test_lib:compile("Seq2738", Config, [?PER, optimize]), - testSeq2738_cases(?PER). - -testSeq2738_cases(Rules) -> - testSeq2738:main(Rules). - - -testSeqTag(suite) -> []; -testSeqTag(Config) -> - asn1_test_lib:compile_all(["External", "SeqTag"], Config, [?BER]), - testSeqTag_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile_all(["External", "SeqTag"], Config, [?BER, nif])), - ?ber_nif(?BER, testSeqTag_cases(?BER)), - - asn1_test_lib:compile_all(["External", "SeqTag"], Config, [?PER]), - testSeqTag_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile_all(["External", "SeqTag"], Config, [?PER, optimize])), - ?per_bit_opt(testSeqTag_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile_all(["External", "SeqTag"], Config, [uper_bin])), - ?uper_bin(testSeqTag_cases(uper_bin)), - - asn1_test_lib:compile_all(["External", "SeqTag"], Config, [?PER, optimize]), - testSeqTag_cases(?PER). - -testSeqTag_cases(Rules) -> - testSeqTag:main(Rules). - - - - -testSeqTypeRefCho(suite) -> []; -testSeqTypeRefCho(Config) -> - - testSeqTypeRefCho:compile(Config, ?BER, []), - testSeqTypeRefCho_cases(?BER), - - ?ber_nif(?BER, testSeqTypeRefCho:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqTypeRefCho_cases(?BER)), - - testSeqTypeRefCho:compile(Config, ?PER, []), - testSeqTypeRefCho_cases(?PER), - - ?per_bit_opt(testSeqTypeRefCho:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSeqTypeRefCho_cases(?PER)), - - ?uper_bin(testSeqTypeRefCho:compile(Config, uper_bin, [])), - ?uper_bin(testSeqTypeRefCho_cases(uper_bin)), - - testSeqTypeRefCho:compile(Config, ?PER, [optimize]), - testSeqTypeRefCho_cases(?PER). - -testSeqTypeRefCho_cases(Rules) -> - testSeqTypeRefCho:main(Rules). - - - -testSeqTypeRefPrim(suite) -> []; -testSeqTypeRefPrim(Config) -> - asn1_test_lib:compile("SeqTypeRefPrim", Config, [?BER]), - testSeqTypeRefPrim_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SeqTypeRefPrim", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqTypeRefPrim_cases(?BER)), - - asn1_test_lib:compile("SeqTypeRefPrim", Config, [?PER]), - testSeqTypeRefPrim_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SeqTypeRefPrim", Config, [?PER, optimize])), - ?per_bit_opt(testSeqTypeRefPrim_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SeqTypeRefPrim", Config, [uper_bin])), - ?uper_bin(testSeqTypeRefPrim_cases(uper_bin)), - - asn1_test_lib:compile("SeqTypeRefPrim", Config, [?PER, optimize]), - testSeqTypeRefPrim_cases(?PER). - -testSeqTypeRefPrim_cases(Rules) -> - testSeqTypeRefPrim:main(Rules). - - - -testSeqTypeRefSeq(suite) -> []; -testSeqTypeRefSeq(Config) -> - asn1_test_lib:compile("SeqTypeRefSeq", Config, [?BER]), - testSeqTypeRefSeq_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SeqTypeRefSeq", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqTypeRefSeq_cases(?BER)), - - asn1_test_lib:compile("SeqTypeRefSeq", Config, [?PER]), - testSeqTypeRefSeq_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SeqTypeRefSeq", Config, [?PER, optimize])), - ?per_bit_opt(testSeqTypeRefSeq_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SeqTypeRefSeq", Config, [uper_bin])), - ?uper_bin(testSeqTypeRefSeq_cases(uper_bin)), - - asn1_test_lib:compile("SeqTypeRefSeq", Config, [?PER, optimize]), - testSeqTypeRefSeq_cases(?PER). - -testSeqTypeRefSeq_cases(Rules) -> - testSeqTypeRefSeq:main(Rules). - - - -testSeqTypeRefSet(suite) -> []; -testSeqTypeRefSet(Config) -> - asn1_test_lib:compile("SeqTypeRefSet", Config, [?BER]), - testSeqTypeRefSet_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SeqTypeRefSet", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqTypeRefSet_cases(?BER)), - - asn1_test_lib:compile("SeqTypeRefSet", Config, [?PER]), - testSeqTypeRefSet_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SeqTypeRefSet", Config, [?PER, optimize])), - ?per_bit_opt(testSeqTypeRefSet_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SeqTypeRefSet", Config, [uper_bin])), - ?uper_bin(testSeqTypeRefSet_cases(uper_bin)), - - asn1_test_lib:compile("SeqTypeRefSet", Config, [?PER, optimize]), - testSeqTypeRefSet_cases(?PER). - -testSeqTypeRefSet_cases(Rules) -> - testSeqTypeRefSet:main(Rules). - - - - -testSeqOf(suite) -> []; -testSeqOf(Config) -> - testSeqOf:compile(Config, ?BER, []), - testSeqOf_cases(?BER), - - ?ber_nif(?BER, testSeqOf:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqOf_cases(?BER)), - - testSeqOf:compile(Config, ?PER, []), - testSeqOf_cases(?PER), - - ?per_bit_opt(testSeqOf:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSeqOf_cases(?PER)), - - ?uper_bin(testSeqOf:compile(Config, uper_bin, [])), - ?uper_bin(testSeqOf_cases(uper_bin)), - - testSeqOf:compile(Config, ?PER, [optimize]), - testSeqOf_cases(?PER). - -testSeqOf_cases(Rules) -> - testSeqOf:main(Rules). - - - - -testSeqOfCho(suite) -> []; -testSeqOfCho(Config) -> - testSeqOfCho:compile(Config, ?BER, []), - testSeqOfCho_cases(?BER), - - ?ber_nif(?BER, testSeqOfCho:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqOfCho_cases(?BER)), - - testSeqOfCho:compile(Config, ?PER, []), - testSeqOfCho_cases(?PER), - - ?per_bit_opt(testSeqOfCho:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSeqOfCho_cases(?PER)), - - ?uper_bin(testSeqOfCho:compile(Config, uper_bin, [])), - ?uper_bin(testSeqOfCho_cases(uper_bin)), - - testSeqOfCho:compile(Config, ?PER, [optimize]), - testSeqOfCho_cases(?PER). - -testSeqOfIndefinite(suite) -> []; -testSeqOfIndefinite(Config) -> - %% Mvrasn (11-21)-4 - testSeqOfIndefinite:compile(Config, ?BER, []), - testSeqOfIndefinite:main(), - - ?ber_nif(?BER, testSeqOfIndefinite:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqOfIndefinite:main()). - -testSeqOfCho_cases(Rules) -> - testSeqOfCho:main(Rules). - - -testSeqOfExternal(suite) -> []; -testSeqOfExternal(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - testSeqOfExternal:compile(Config, ?BER, []), - testSeqOfExternal_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqOfExternal:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqOfExternal_cases(?BER)), - - asn1_test_lib:compile("External", Config, [?PER]), - testSeqOfExternal:compile(Config, ?PER, []), - testSeqOfExternal_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("External", Config, [?PER, optimize])), - ?per_bit_opt(testSeqOfExternal:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSeqOfExternal_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("External", Config, [uper_bin])), - ?uper_bin(testSeqOfExternal:compile(Config, uper_bin, [])), - ?uper_bin(testSeqOfExternal_cases(uper_bin)), - - asn1_test_lib:compile("External", Config, [?PER, optimize]), - testSeqOfExternal:compile(Config, ?PER, [optimize]), - testSeqOfExternal_cases(?PER). - -testSeqOfExternal_cases(Rules) -> - testSeqOfExternal:main(Rules). - - - -testSeqOfTag(suite) -> []; -testSeqOfTag(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - testSeqOfTag:compile(Config, ?BER, []), - testSeqOfTag_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqOfTag:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSeqOfTag_cases(?BER)), - - asn1_test_lib:compile("External", Config, [?PER]), - testSeqOfTag:compile(Config, ?PER, []), - testSeqOfTag_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("External", Config, [?PER, optimize])), - ?per_bit_opt(testSeqOfTag:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSeqOfTag_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("External", Config, [uper_bin])), - ?uper_bin(testSeqOfTag:compile(Config, uper_bin, [])), - ?uper_bin(testSeqOfTag_cases(uper_bin)), - - asn1_test_lib:compile("External", Config, [?PER, optimize]), - testSeqOfTag:compile(Config, ?PER, [optimize]), - testSeqOfTag_cases(?PER). - -testSeqOfTag_cases(Rules) -> - testSeqOfTag:main(Rules). - - - - -testSetDefault(suite) -> []; -testSetDefault(Config) -> - asn1_test_lib:compile("SetDefault", Config, [?BER]), - testSetDefault_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SetDefault", Config, [?BER, nif])), - ?ber_nif(?BER, testSetDefault_cases(?BER)), - - asn1_test_lib:compile("SetDefault", Config, [?PER]), - testSetDefault_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SetDefault", Config, [?PER, optimize])), - ?per_bit_opt(testSetDefault_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SetDefault", Config, [uper_bin])), - ?uper_bin(testSetDefault_cases(uper_bin)), - - asn1_test_lib:compile("SetDefault", Config, [?PER, optimize]), - testSetDefault_cases(?PER). - -testSetDefault_cases(Rules) -> - testSetDefault:main(Rules). - - -testParamBasic(suite) -> []; -testParamBasic(Config) -> - testParamBasic:compile(Config, ?BER, []), - testParamBasic_cases(?BER), - - ?ber_nif(?BER, testParamBasic:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testParamBasic_cases(?BER)), - - testParamBasic:compile(Config, ?PER, []), - testParamBasic_cases(?PER), - - ?per_bit_opt(testParamBasic:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testParamBasic_cases(?PER)), - - ?uper_bin(testParamBasic:compile(Config, uper_bin, [])), - ?uper_bin(testParamBasic_cases(uper_bin)), - - testParamBasic:compile(Config, ?PER, [optimize]), - testParamBasic_cases(?PER). - - -testParamBasic_cases(Rules) -> - testParamBasic:main(Rules). - -testSetExtension(suite) -> []; -testSetExtension(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - asn1_test_lib:compile("SetExtension", Config, [?BER]), - testSetExtension_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("SetExtension", Config, [?BER, nif])), - ?ber_nif(?BER, testSetExtension_cases(?BER)). - -testSetExtension_cases(Rules) -> - testSetExtension:main(Rules). - - -testSetExternal(suite) -> []; -testSetExternal(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - testSetExternal:compile(Config, ?BER, []), - testSetExternal_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, testSetExternal:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSetExternal_cases(?BER)). - -testSetExternal_cases(Rules) -> - testSetExternal:main(Rules). - - -testSetOptional(suite) -> []; -testSetOptional(Config) -> - testSetOptional:compile(Config, ?BER, []), - testSetOptional_cases(?BER), - - ?ber_nif(?BER, testSetOptional:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSetOptional_cases(?BER)), - - testSetOptional:compile(Config, ?PER, []), - testSetOptional_cases(?PER), - - ?per_bit_opt(testSetOptional:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSetOptional_cases(?PER)), - - ?uper_bin(testSetOptional:compile(Config, uper_bin, [])), - ?uper_bin(testSetOptional_cases(uper_bin)), - - testSetOptional:compile(Config, ?PER, [optimize]), - testSetOptional_cases(?PER). - -testSetOptional_cases(Rules) -> - ok = testSetOptional:ticket_7533(Rules), - ok = testSetOptional:main(Rules). - - - - -testSetPrim(suite) -> []; -testSetPrim(Config) -> - testSetPrim:compile(Config, ?BER, []), - testSetPrim_cases(?BER), - - ?ber_nif(?BER, testSetPrim:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSetPrim_cases(?BER)), - - testSetPrim:compile(Config, ?PER, []), - testSetPrim_cases(?PER), - - ?per_bit_opt(testSetPrim:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSetPrim_cases(?PER)), - - ?uper_bin(testSetPrim:compile(Config, uper_bin, [])), - ?uper_bin(testSetPrim_cases(uper_bin)), - - testSetPrim:compile(Config, ?PER, [optimize]), - testSetPrim_cases(?PER). - -testSetPrim_cases(Rules) -> - testSetPrim:main(Rules). - - - -testSetTag(suite) -> []; -testSetTag(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - testSetTag:compile(Config, ?BER, []), - testSetTag_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, testSetTag:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testSetTag_cases(?BER)), - - asn1_test_lib:compile("External", Config, [?PER]), - testSetTag:compile(Config, ?PER, []), - testSetTag_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("External", Config, [?PER, optimize])), - ?per_bit_opt(testSetTag:compile(Config, ?PER, [optimize])), - ?per_bit_opt(testSetTag_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("External", Config, [uper_bin])), - ?uper_bin(testSetTag:compile(Config, uper_bin, [])), - ?uper_bin(testSetTag_cases(uper_bin)), - - asn1_test_lib:compile("External", Config, [?PER, optimize]), - testSetTag:compile(Config, ?PER, [optimize]), - testSetTag_cases(?PER). - -testSetTag_cases(Rules) -> - testSetTag:main(Rules). - - - -testSetTypeRefCho(suite) -> []; -testSetTypeRefCho(Config) -> - asn1_test_lib:compile("SetTypeRefCho", Config, [?BER]), - testSetTypeRefCho_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SetTypeRefCho", Config, [?BER, nif])), - ?ber_nif(?BER, testSetTypeRefCho_cases(?BER)), - - asn1_test_lib:compile("SetTypeRefCho", Config, [?PER]), - testSetTypeRefCho_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SetTypeRefCho", Config, [?PER, optimize])), - ?per_bit_opt(testSetTypeRefCho_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SetTypeRefCho", Config, [uper_bin])), - ?uper_bin(testSetTypeRefCho_cases(uper_bin)), - - asn1_test_lib:compile("SetTypeRefCho", Config, [?PER, optimize]), - testSetTypeRefCho_cases(?PER). - -testSetTypeRefCho_cases(Rules) -> - testSetTypeRefCho:main(Rules). - - - -testSetTypeRefPrim(suite) -> []; -testSetTypeRefPrim(Config) -> - asn1_test_lib:compile("SetTypeRefPrim", Config, [?BER]), - testSetTypeRefPrim_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SetTypeRefPrim", Config, [?BER, nif])), - ?ber_nif(?BER, testSetTypeRefPrim_cases(?BER)), - - asn1_test_lib:compile("SetTypeRefPrim", Config, [?PER]), - testSetTypeRefPrim_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SetTypeRefPrim", Config, [?PER, optimize])), - ?per_bit_opt(testSetTypeRefPrim_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SetTypeRefPrim", Config, [uper_bin])), - ?uper_bin(testSetTypeRefPrim_cases(uper_bin)), - - asn1_test_lib:compile("SetTypeRefPrim", Config, [?PER, optimize]), - testSetTypeRefPrim_cases(?PER). - -testSetTypeRefPrim_cases(Rules) -> - testSetTypeRefPrim:main(Rules). - - - -testSetTypeRefSeq(suite) -> []; -testSetTypeRefSeq(Config) -> - asn1_test_lib:compile("SetTypeRefSeq", Config, [?BER]), - testSetTypeRefSeq_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SetTypeRefSeq", Config, [?BER, nif])), - ?ber_nif(?BER, testSetTypeRefSeq_cases(?BER)), - - asn1_test_lib:compile("SetTypeRefSeq", Config, [?PER]), - testSetTypeRefSeq_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SetTypeRefSeq", Config, [?PER, optimize])), - ?per_bit_opt(testSetTypeRefSeq_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SetTypeRefSeq", Config, [uper_bin])), - ?uper_bin(testSetTypeRefSeq_cases(uper_bin)), - - asn1_test_lib:compile("SetTypeRefSeq", Config, [?PER, optimize]), - testSetTypeRefSeq_cases(?PER). - -testSetTypeRefSeq_cases(Rules) -> - testSetTypeRefSeq:main(Rules). - - - -testSetTypeRefSet(suite) -> []; -testSetTypeRefSet(Config) -> - asn1_test_lib:compile("SetTypeRefSet", Config, [?BER]), - testSetTypeRefSet_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SetTypeRefSet", Config, [?BER, nif])), - ?ber_nif(?BER, testSetTypeRefSet_cases(?BER)), - - asn1_test_lib:compile("SetTypeRefSet", Config, [?PER]), - testSetTypeRefSet_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SetTypeRefSet", Config, [?PER, optimize])), - ?per_bit_opt(testSetTypeRefSet_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SetTypeRefSet", Config, [uper_bin])), - ?uper_bin(testSetTypeRefSet_cases(uper_bin)), - - asn1_test_lib:compile("SetTypeRefSet", Config, [?PER, optimize]), - testSetTypeRefSet_cases(?PER). - -testSetTypeRefSet_cases(Rules) -> - testSetTypeRefSet:main(Rules). - - - -testSetOf(suite) -> []; -testSetOf(Config) -> - asn1_test_lib:compile("SetOf", Config, [?BER]), - testSetOf_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SetOf", Config, [?BER, nif])), - ?ber_nif(?BER, testSetOf_cases(?BER)), - - asn1_test_lib:compile("SetOf", Config, [?PER]), - testSetOf_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SetOf", Config, [?PER, optimize])), - ?per_bit_opt(testSetOf_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SetOf", Config, [uper_bin])), - ?uper_bin(testSetOf_cases(uper_bin)), - - asn1_test_lib:compile("SetOf", Config, [?PER, optimize]), - testSetOf_cases(?PER). - -testSetOf_cases(Rules) -> - testSetOf:main(Rules). - - - -testSetOfCho(suite) -> []; -testSetOfCho(Config) -> - asn1_test_lib:compile("SetOfCho", Config, [?BER]), - testSetOfCho_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SetOfCho", Config, [?BER, nif])), - ?ber_nif(?BER, testSetOfCho_cases(?BER)), - - asn1_test_lib:compile("SetOfCho", Config, [?PER]), - testSetOfCho_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("SetOfCho", Config, [?PER, optimize])), - ?per_bit_opt(testSetOfCho_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("SetOfCho", Config, [uper_bin])), - ?uper_bin(testSetOfCho_cases(uper_bin)), - - asn1_test_lib:compile("SetOfCho", Config, [?PER, optimize]), - testSetOfCho_cases(?PER). - -testSetOfCho_cases(Rules) -> - testSetOfCho:main(Rules). - - -testSetOfExternal(suite) -> []; -testSetOfExternal(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - asn1_test_lib:compile("SetOfExternal", Config, [?BER]), - testSetOfExternal_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("SetOfExternal", Config, [?BER, nif])), - ?ber_nif(?BER, testSetOfExternal_cases(?BER)), - - asn1_test_lib:compile("External", Config, [?PER]), - asn1_test_lib:compile("SetOfExternal", Config, [?PER]), - testSetOfExternal_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("External", Config, [?PER, optimize])), - ?per_bit_opt(asn1_test_lib:compile("SetOfExternal", Config, [?PER, optimize])), - ?per_bit_opt(testSetOfExternal_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("External", Config, [uper_bin])), - ?uper_bin(asn1_test_lib:compile("SetOfExternal", Config, [uper_bin])), - ?uper_bin(testSetOfExternal_cases(uper_bin)), - - asn1_test_lib:compile("External", Config, [?PER, optimize]), - asn1_test_lib:compile("SetOfExternal", Config, [?PER, optimize]), - testSetOfExternal_cases(?PER). - -testSetOfExternal_cases(Rules) -> - testSetOfExternal:main(Rules). - - - - -testSetOfTag(suite) -> []; -testSetOfTag(Config) -> - asn1_test_lib:compile("External", Config, [?BER]), - asn1_test_lib:compile("SetOfTag", Config, [?BER]), - testSetOfTag_cases(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("External", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("SetOfTag", Config, [?BER, nif])), - ?ber_nif(?BER, testSetOfTag_cases(?BER)), - - asn1_test_lib:compile("External", Config, [?PER]), - asn1_test_lib:compile("SetOfTag", Config, [?PER]), - testSetOfTag_cases(?PER), - - ?per_bit_opt(asn1_test_lib:compile("External", Config, [?PER, optimize])), - ?per_bit_opt(asn1_test_lib:compile("SetOfTag", Config, [?PER, optimize])), - ?per_bit_opt(testSetOfTag_cases(?PER)), - - ?uper_bin(asn1_test_lib:compile("External", Config, [uper_bin])), - ?uper_bin(asn1_test_lib:compile("SetOfTag", Config, [uper_bin])), - ?uper_bin(testSetOfTag_cases(uper_bin)), - - asn1_test_lib:compile("External", Config, [?PER, optimize]), - asn1_test_lib:compile("SetOfTag", Config, [?PER, optimize]), - testSetOfTag_cases(?PER). - -testSetOfTag_cases(Rules) -> - testSetOfTag:main(Rules). - - -sequence(suite) -> [{sequence, all}]. - -c_syntax(suite) -> []; -c_syntax(Config) -> - DataDir% asn1_test_lib:compile("External", Config, ?PER), -% testPrimExternal:compile(Config, ?PER), -% testPrimExternal_cases(?PER). - = ?config(data_dir, Config), - _TempDir = ?config(priv_dir, Config), - {error, _R1} = asn1ct:compile(filename:join(DataDir, "Syntax")), - {error, _R2} = asn1ct:compile(filename:join(DataDir, "BadTypeEnding")), - {error, _R3} = asn1ct:compile(filename:join(DataDir, - "BadValueAssignment1")), - {error, _R4} = asn1ct:compile(filename:join(DataDir, - "BadValueAssignment2")), - {error, _R5} = asn1ct:compile(filename:join(DataDir, - "BadValueSet")), - {error, _R6} = asn1ct:compile(filename:join(DataDir, - "ChoiceBadExtension")), - {error, _R7} = asn1ct:compile(filename:join(DataDir, - "EnumerationBadExtension")), - {error, _R8} = asn1ct:compile(filename:join(DataDir, - "Example")), - {error, _R9} = asn1ct:compile(filename:join(DataDir, - "Export1")), - {error, _R10} = asn1ct:compile(filename:join(DataDir, - "MissingEnd")), - {error, _R11} = asn1ct:compile(filename:join(DataDir, - "SequenceBadComma")), - {error, _R12} = asn1ct:compile(filename:join(DataDir, - "SequenceBadComponentName")), - {error, _R13} = asn1ct:compile(filename:join(DataDir, - "SequenceBadComponentType")), - {error, _R14} = asn1ct:compile(filename:join(DataDir, - "SeqBadComma")). - - -c_string_per(suite) -> []; -c_string_per(Config) -> - asn1_test_lib:compile("String", Config, [?PER]). - -c_string_ber(suite) -> []; -c_string_ber(Config) -> - asn1_test_lib:compile("String", Config, [?BER]). - - -c_implicit_before_choice(suite) -> []; -c_implicit_before_choice(Config) -> - DataDir = ?config(data_dir, Config), - TempDir = ?config(priv_dir, Config), - {error, _R2} = asn1ct:compile(filename:join(DataDir, "CCSNARG3"), - [?BER, {outdir, TempDir}]). - -parse(suite) -> []; -parse(Config) -> - M1 = test_modules(), - ok = parse1(M1, Config). - -parse1([M|T], Config) -> - asn1_test_lib:compile(M, Config, [abs]), - parse1(T, Config); -parse1([], _) -> - ok. - -per(suite) -> []; -per(Config) -> - CaseDir = ?config(case_dir, Config), - ok = per1(per_modules(), Config, CaseDir), - ?per_bit_opt(per1_bit_opt(per_modules(), Config, CaseDir)). - - -per1([M|T], Config, CaseDir) -> - asn1_test_lib:compile(M, Config, [?PER]), - ok = asn1ct:test(list_to_atom(M), [{i, CaseDir}]), - per1(T, Config, CaseDir); -per1([], _, _) -> - ok. - -per1_bit_opt([M|T], Config, CaseDir) -> - asn1_test_lib:compile(M, Config, [?PER, optimize]), - ok = asn1ct:test(list_to_atom(M), [{i, CaseDir}]), - per1_bit_opt(T, Config, CaseDir); -per1_bit_opt([], _, _) -> - ok. - -ber_choiceinseq(suite) ->[]; -ber_choiceinseq(Config) -> - asn1_test_lib:compile("ChoiceInSeq", Config, [?BER]). - -ber_optional(suite) ->[]; -ber_optional(Config) -> - asn1_test_lib:compile("SOpttest", Config, [?BER]), - - V = {'S', {'A', 10, asn1_NOVALUE, asn1_NOVALUE}, - {'B', asn1_NOVALUE, asn1_NOVALUE, asn1_NOVALUE}, - {'C', asn1_NOVALUE, 111, asn1_NOVALUE}}, - {ok, B} = asn1_wrapper:encode('SOpttest', 'S', V), - Bytes = lists:flatten(B), - V2 = asn1_wrapper:decode('SOpttest', 'S', Bytes), - V = element(2, V2). - -ber_optional_keyed_list(suite) ->[]; -ber_optional_keyed_list(Config) -> - case ?BER of - ber_bin_v2 -> - ok; - _ -> - asn1_test_lib:compile("SOpttest", Config, [?BER, keyed_list]), - Vrecord = {'S', {'A', 10, asn1_NOVALUE, asn1_NOVALUE}, - {'B', asn1_NOVALUE, asn1_NOVALUE, asn1_NOVALUE}, - {'C', asn1_NOVALUE, 111, asn1_NOVALUE}}, - V = [{a, [{scriptKey, 10}]}, - {b, []}, - {c, [{callingPartysCategory, 111}]}], - {ok, B} = asn1_wrapper:encode('SOpttest', 'S', V), - Bytes = lists:flatten(B), - V2 = asn1_wrapper:decode('SOpttest', 'S', Bytes), - Vrecord = element(2, V2) - end. - -ber_other(suite) ->[]; -ber_other(Config) -> - CaseDir = ?config(case_dir, Config), - ok = ber1(ber_modules(), Config, CaseDir). - - -ber1([M|T], Config, CaseDir) -> - asn1_test_lib:compile(M, Config, [?BER]), - ok = asn1ct:test(list_to_atom(M), [{i, CaseDir}]), - ber1(T, Config, CaseDir); -ber1([], _, _) -> - ok. - -default_per(suite) ->[]; -default_per(Config) -> - default1(Config, [?PER]). - -default_per_opt(suite) -> []; -default_per_opt(Config) -> - ?per_bit_opt(default1(Config, [?PER, optimize])), - default1(Config, [?PER, optimize]). - -default_ber(suite) ->[]; -default_ber(Config) -> - default1(Config, [?BER]). - -default1(Config, Options) -> - asn1_test_lib:compile("Def", Config, Options), - - {ok, Bytes1} = asn1_wrapper:encode('Def', 'Def1', #'Def1'{bool0 = true, - bool1 = true, - bool2 = true, - bool3 = true}), - {ok, {'Def1', true, true, true, true}} = - asn1_wrapper:decode('Def', 'Def1', lists:flatten(Bytes1)), - - {ok, Bytes2} = asn1_wrapper:encode('Def', 'Def1', #'Def1'{bool0 = true}), - {ok, {'Def1', true, false, false, false}} = - asn1_wrapper:decode('Def', 'Def1', lists:flatten(Bytes2)), - - {ok, Bytes3} = asn1_wrapper:encode('Def', 'Def1', #'Def1'{bool0 = true, - bool2 = false}), - {ok, {'Def1', true, false, false, false}} = - asn1_wrapper:decode('Def', 'Def1', lists:flatten(Bytes3)). - - -value_test(suite) ->[]; -value_test(Config) -> - asn1_test_lib:compile("ObjIdValues", Config, [?BER]), - {ok, _} = asn1_wrapper:encode('ObjIdValues', 'ObjIdType', 'ObjIdValues':'mobileDomainId'()), - asn1_test_lib:compile("ObjIdValues", Config, [?PER]), - {ok, _} = asn1_wrapper:encode('ObjIdValues', 'ObjIdType', 'ObjIdValues':'mobileDomainId'()), - ok = test_bad_values:tests(Config), - ok. - - -constructed(suite) -> - []; -constructed(Config) -> - asn1_test_lib:compile("Constructed", Config, [?BER]), - {ok, B} = asn1_wrapper:encode('Constructed', 'S', {'S', false}), - [40, 3, 1, 1, 0] = lists:flatten(B), - {ok, B1} = asn1_wrapper:encode('Constructed', 'S2', {'S2', false}), - [40, 5, 48, 3, 1, 1, 0] = lists:flatten(B1), - {ok, B2} = asn1_wrapper:encode('Constructed', 'I', 10), - [136, 1, 10] = lists:flatten(B2), - ok. - -ber_decode_error(suite) -> []; -ber_decode_error(Config) -> - asn1_test_lib:compile("Constructed", Config, [?BER]), - ok = ber_decode_error:run([]), - - ?ber_nif(?BER, asn1_test_lib:compile("Constructed", Config, [?BER, nif])), - ok = ?ber_nif(?BER, ber_decode_error:run([nif])), - ok. - -h323test(suite) -> - []; -h323test(Config) -> - Files = ["H235-SECURITY-MESSAGES", - "H323-MESSAGES", - "MULTIMEDIA-SYSTEM-CONTROL"], - asn1_test_lib:compile_all(Files, Config, [?PER]), - ok = h323test:run(?PER), - ?per_bit_opt(asn1_test_lib:compile_all(Files, Config, [?PER, optimize])), - ?per_bit_opt(h323test:run(?PER)), - ?uper_bin(asn1_test_lib:compile_all(Files, Config, [uper_bin])), - ?uper_bin(h323test:run(uper_bin)), - ok = asn1_test_lib:compile_all(Files, Config, [?PER, optimize]), - ok = h323test:run(?PER), - ok. - -per_GeneralString(suite) -> - []; -per_GeneralString(Config) -> - asn1_test_lib:compile("MULTIMEDIA-SYSTEM-CONTROL", Config, [?PER]), - UI = [109, 64, 1, 57], - {ok, _V} = asn1_wrapper:decode('MULTIMEDIA-SYSTEM-CONTROL', - 'MultimediaSystemControlMessage', UI). - -per_open_type(suite) -> - []; -per_open_type(Config) -> - asn1_test_lib:compile("OpenType", Config, [?PER]), - - Stype = {'Stype', 10, true}, - {ok, Bytes} = asn1_wrapper:encode('OpenType', 'Ot', Stype), - {ok, Stype} = asn1_wrapper:decode('OpenType', 'Ot', Bytes), - - ?per_bit_opt(asn1_test_lib:compile("OpenType", Config, [?PER, optimize])), - ?per_bit_opt({ok, Bytes}=asn1_wrapper:encode('OpenType', 'Ot', Stype)), - ?per_bit_opt({ok, Stype}=asn1_wrapper:decode('OpenType', 'Ot', Bytes)), - - ?uper_bin(asn1_test_lib:compile("OpenType", Config, [uper_bin])), - ?uper_bin({ok, Bytes}=asn1_wrapper:encode('OpenType', 'Ot', Stype)), - ?uper_bin({ok, Stype}=asn1_wrapper:decode('OpenType', 'Ot', Bytes)), - - asn1_test_lib:compile("OpenType", Config, [?PER, optimize]), - {ok, Bytes} = asn1_wrapper:encode('OpenType', 'Ot', Stype), - {ok, Stype} = asn1_wrapper:decode('OpenType', 'Ot', Bytes). - -testConstraints(suite) -> - []; -testConstraints(Config) -> - asn1_test_lib:compile("Constraints", Config, [?BER]), - testConstraints:int_constraints(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("Constraints", Config, [?BER, nif])), - ?ber_nif(?BER, testConstraints:int_constraints(?BER)), - - asn1_test_lib:compile("Constraints", Config, [?PER]), - testConstraints:int_constraints(?PER), - testConstraints:refed_NNL_name(?PER), - - ?per_bit_opt(asn1_test_lib:compile("Constraints", Config, [?PER, optimize])), - ?per_bit_opt(testConstraints:int_constraints(?PER)), - ?per_bit_opt(testConstraints:refed_NNL_name(?PER)), - - ?uper_bin(asn1_test_lib:compile("Constraints", Config, [uper_bin])), - ?uper_bin(testConstraints:int_constraints(uper_bin)), - ?uper_bin(testConstraints:refed_NNL_name(uper_bin)), - - asn1_test_lib:compile("Constraints", Config, [?PER, optimize]), - testConstraints:int_constraints(?PER), - testConstraints:refed_NNL_name(?PER). - -testSeqIndefinite(suite) -> []; -testSeqIndefinite(Config) -> - asn1_test_lib:compile("SeqSetIndefinite", Config, [?BER]), - testSeqIndefinite:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SeqSetIndefinite", Config, [?BER, nif])), - ?ber_nif(?BER, testSeqIndefinite:main(?BER)). - -testSetIndefinite(suite) -> []; -testSetIndefinite(Config) -> - asn1_test_lib:compile("SeqSetIndefinite", Config, [?BER]), - testSetIndefinite:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("SeqSetIndefinite", Config, [?BER, nif])), - ?ber_nif(?BER, testSetIndefinite:main(?BER)). - -testChoiceIndefinite(suite) -> []; -testChoiceIndefinite(Config) -> - testChoiceIndefinite:compile(Config, ?BER, []), - testChoiceIndefinite:main(?BER), - - ?ber_nif(?BER, testChoiceIndefinite:compile(Config, ?BER, [nif])), - ?ber_nif(?BER, testChoiceIndefinite:main(?BER)). - -testInfObjectClass(suite) -> - []; -testInfObjectClass(Config) -> - Files = ["ErrorClass", "InfClass"], - InfObjFiles = ["RANAPextract1", "InfObj", "MAP-ExtensionDataTypes", - "Objects", "INAPv2extract"], - RANAPFiles = ["RANAP-CommonDataTypes", "RANAP-Constants", - "RANAP-Containers", "RANAP-IEs", "RANAP-PDU-Contents", - "RANAP-PDU-Descriptions"], - asn1_test_lib:compile_all(Files, Config, [?PER]), - testInfObjectClass:main(?PER), - asn1_test_lib:compile_all(InfObjFiles, Config, [?PER]), - testInfObj:main(?PER), - - ?uper_bin(asn1_test_lib:compile_all(Files, Config, [uper_bin])), - ?uper_bin(testInfObjectClass:main(uper_bin)), - ?uper_bin(asn1_test_lib:compile_all(InfObjFiles, Config, [uper_bin])), - ?uper_bin(testInfObj:main(uper_bin)), - - asn1_test_lib:compile_all(Files, Config, [?PER, optimize]), - testInfObjectClass:main(?PER), - asn1_test_lib:compile_all(InfObjFiles, Config, [?PER, optimize]), - testInfObj:main(?PER), - - asn1_test_lib:compile_all(Files, Config, [?BER]), - testInfObjectClass:main(?BER), - asn1_test_lib:compile_all(InfObjFiles, Config, [?BER]), - testInfObj:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile_all(Files, Config, [?BER, nif])), - ?ber_nif(?BER, testInfObjectClass:main(?BER)), - ?ber_nif(?BER, asn1_test_lib:compile_all(InfObjFiles, Config, [?BER, nif])), - ?ber_nif(?BER, testInfObj:main(?BER)), - - asn1_test_lib:compile_all(RANAPFiles, Config, [?PER]), - - ?uper_bin(asn1_test_lib:compile_all(RANAPFiles, Config, [uper_bin])), - - asn1_test_lib:compile_all(RANAPFiles, Config, [?PER, optimize]), - - asn1_test_lib:compile_all(RANAPFiles, Config, [?BER]). - -testParameterizedInfObj(suite) -> - []; -testParameterizedInfObj(Config) -> - asn1_test_lib:compile("Param", Config, [?PER]), - testParameterizedInfObj:main(?PER), - - % TODO: Remove all ?per_bit_opt(...) which has an equiv without macro - ?per_bit_opt(asn1_test_lib:compile("Param", Config, [?PER, optimize])), - ?per_bit_opt(testParameterizedInfObj:main(?PER)), - - ?uper_bin(asn1_test_lib:compile("Param", Config, [uper_bin])), - ?uper_bin(testParameterizedInfObj:main(uper_bin)), - - asn1_test_lib:compile("Param", Config, [?PER, optimize]), - testParameterizedInfObj:main(?PER), - - asn1_test_lib:compile("Param", Config, [?BER]), - testParameterizedInfObj:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("Param", Config, [?BER, nif])), - ?ber_nif(?BER, testParameterizedInfObj:main(?BER)). - -testMergeCompile(suite) -> - []; -testMergeCompile(Config) -> - Files = ["MS.set.asn", "RANAPSET.set.asn1", "Mvrasn4.set.asn", - "Mvrasn6.set.asn"], - asn1_test_lib:compile_all(Files, Config, [?PER]), - testMergeCompile:main(?PER), - testMergeCompile:mvrasn(?PER), - - ?per_bit_opt(asn1_test_lib:compile_all(Files, Config, [?PER, optimize])), - ?per_bit_opt(testMergeCompile:main(?PER)), - ?per_bit_opt(testMergeCompile:mvrasn(?PER)), - - ?uper_bin(asn1_test_lib:compile_all(Files, Config, [uper_bin])), - ?uper_bin(testMergeCompile:main(uper_bin)), - ?uper_bin(testMergeCompile:mvrasn(uper_bin)), - - asn1_test_lib:compile_all(Files, Config, [?BER]), - testMergeCompile:main(?BER), - testMergeCompile:mvrasn(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile_all(Files, Config, [?BER, nif])), - ?ber_nif(?BER, testMergeCompile:main(?BER)), - ?ber_nif(?BER, testMergeCompile:mvrasn(?BER)). - -testobj(suite) -> - []; -testobj(Config) -> - ok = testRANAP:compile(Config, [?PER]), - ok = testRANAP:testobj(?PER), - ok = testParameterizedInfObj:ranap(?PER), - - ?per_bit_opt(ok = testRANAP:compile(Config, [?PER, optimize])), - ?per_bit_opt(ok = testRANAP:testobj(?PER)), - ?per_bit_opt(ok = testParameterizedInfObj:ranap(?PER)), - - ?uper_bin(ok = testRANAP:compile(Config, [uper_bin])), - ?uper_bin(ok = testRANAP:testobj(uper_bin)), - ?uper_bin(ok = testParameterizedInfObj:ranap(uper_bin)), - - ok = testRANAP:compile(Config, [?PER, optimize]), - ok = testRANAP:testobj(?PER), - ok = testParameterizedInfObj:ranap(?PER), - - ok = testRANAP:compile(Config, [?BER]), - ok = testRANAP:testobj(?BER), - ok = testParameterizedInfObj:ranap(?BER), - - ?ber_nif(?BER, testRANAP:compile(Config, [?BER, nif])), - ?ber_nif(?BER, testRANAP:testobj(?BER)), - ?ber_nif(?BER, testParameterizedInfObj:ranap(?BER)). - - -testDeepTConstr(suite) -> - []; -testDeepTConstr(Config) -> - asn1_test_lib:compile("TConstrChoice", Config, [?PER]), - asn1_test_lib:compile("TConstr", Config, [?PER]), - testDeepTConstr:main(?PER), - - ?per_bit_opt(asn1_test_lib:compile("TConstrChoice", Config, [?PER, optimize])), - ?per_bit_opt(asn1_test_lib:compile("TConstr", Config, [?PER, optimize])), - ?per_bit_opt(testDeepTConstr:main(?PER)), - - ?uper_bin(asn1_test_lib:compile("TConstrChoice", Config, [uper_bin])), - ?uper_bin(asn1_test_lib:compile("TConstr", Config, [uper_bin])), - ?uper_bin(testDeepTConstr:main(uper_bin)), - - asn1_test_lib:compile("TConstrChoice", Config, [?PER, optimize]), - asn1_test_lib:compile("TConstr", Config, [?PER, optimize]), - testDeepTConstr:main(?PER), - - asn1_test_lib:compile("TConstrChoice", Config, [?BER]), - asn1_test_lib:compile("TConstr", Config, [?BER]), - testDeepTConstr:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("TConstrChoice", Config, [?BER, nif])), - ?ber_nif(?BER, asn1_test_lib:compile("TConstr", Config, [?BER, nif])), - ?ber_nif(?BER, testDeepTConstr:main(?BER)). - -testInvokeMod(suite) -> - []; -testInvokeMod(Config) -> - asn1_test_lib:compile("PrimStrings", Config, []), - {ok, _Result1} = 'PrimStrings':encode('Bs1', [1, 0, 1, 0]), - asn1_test_lib:compile("PrimStrings", Config, [?PER]), - {ok, _Result2} = 'PrimStrings':encode('Bs1', [1, 0, 1, 0]). - -testExport(suite) -> - []; -testExport(Config) -> - DataDir = ?config(data_dir, Config), - CaseDir = ?config(case_dir, Config), - {error, {asn1, _Reason}} = - asn1ct:compile(filename:join(DataDir, "IllegalExport"), - [{outdir, CaseDir}]). - -testImport(suite) -> - []; -testImport(Config) -> - DataDir = ?config(data_dir, Config), - CaseDir = ?config(priv_dir, Config), - {error, _} = asn1ct:compile(filename:join(DataDir, "ImportsFrom"), - [?BER, {outdir, CaseDir}]). - -testMegaco(suite) -> - []; -testMegaco(Config) -> - {ok, ModuleName1, ModuleName2} = testMegaco:compile(Config, ?BER, []), - ok = testMegaco:main(ModuleName1, Config), - ok = testMegaco:main(ModuleName2, Config), - - case ?BER of - ber_bin_v2 -> - {ok, ModuleName3, ModuleName4} = testMegaco:compile(Config, ?BER, [nif]), - ok = testMegaco:main(ModuleName3, Config), - ok = testMegaco:main(ModuleName4, Config); - _-> - ok - end, - - {ok, ModuleName5, ModuleName6} = testMegaco:compile(Config, ?PER, []), - ok = testMegaco:main(ModuleName5, Config), - ok = testMegaco:main(ModuleName6, Config), - - ?per_bit_opt({ok, ModuleName5, ModuleName6} = testMegaco:compile(Config, ?PER, [optimize])), - ?per_bit_opt(ok = testMegaco:main(ModuleName5, Config)), - ?per_bit_opt(ok = testMegaco:main(ModuleName6, Config)), - - ?uper_bin({ok, ModuleName5, ModuleName6} = testMegaco:compile(Config, uper_bin, [])), - ?uper_bin(ok = testMegaco:main(ModuleName5, Config)), - ?uper_bin(ok = testMegaco:main(ModuleName6, Config)), - - {ok, ModuleName7, ModuleName8} = testMegaco:compile(Config, ?PER, [optimize]), - ok = testMegaco:main(ModuleName7, Config), - ok = testMegaco:main(ModuleName8, Config). - - -testMvrasn6(suite) -> []; -testMvrasn6(Config) -> - asn1_test_lib:compile("Mvrasn-21-4", Config, [?BER]), - asn1_test_lib:compile("Mvrasn-20-6", Config, [?BER]), - asn1_test_lib:compile("Mvrasn-19-6", Config, [?BER]), - asn1_test_lib:compile("Mvrasn-15-6", Config, [?BER]), - asn1_test_lib:compile("Mvrasn-18-6", Config, [?BER]), - asn1_test_lib:compile("Mvrasn-14-6", Config, [?BER]), - asn1_test_lib:compile("Mvrasn-11-6", Config, [?BER]). - -testContextSwitchingTypes(suite) -> []; -testContextSwitchingTypes(Config) -> - asn1_test_lib:compile("ContextSwitchingTypes", Config, [?BER]), - testContextSwitchingTypes:test(Config), - - ?ber_nif(?BER, asn1_test_lib:compile("ContextSwitchingTypes", Config, [?BER, nif])), - ?ber_nif(?BER, testContextSwitchingTypes:test(Config)), - - asn1_test_lib:compile("ContextSwitchingTypes", Config, [?PER]), - testContextSwitchingTypes:test(Config), - - ?per_bit_opt(asn1_test_lib:compile("ContextSwitchingTypes", Config, [?PER, optimize])), - ?per_bit_opt(testContextSwitchingTypes:test(Config)), - - ?uper_bin(asn1_test_lib:compile("ContextSwitchingTypes", Config, [uper_bin])), - ?uper_bin(testContextSwitchingTypes:test(Config)), - - asn1_test_lib:compile("ContextSwitchingTypes", Config, [?PER, optimize]), - testContextSwitchingTypes:test(Config). - -testTypeValueNotation(suite) -> []; -testTypeValueNotation(Config) -> - Files = ["SeqTypeRefPrim", - "ValueTest"], % OTP-6695 - case ?BER of - Ber when Ber == ber; Ber == ber_bin -> - asn1_test_lib:compile_all(Files, Config, [?BER]), - testTypeValueNotation:main(?BER, dummy); - _ -> - ok - end, - - ?ber_nif(?BER, asn1_test_lib:compile_all(Files, Config, [?BER, nif])), - ?ber_nif(?BER, testTypeValueNotation:main(?BER, optimize)), - - case ?BER of - Ber2 when Ber2 == ber; Ber2 == ber_bin -> - asn1_test_lib:compile_all(Files, Config, [?PER]), - testTypeValueNotation:main(?PER, dummy); - _ -> - ok - end, - - ?per_bit_opt(asn1_test_lib:compile_all(Files, Config, [?PER, optimize])), - ?per_bit_opt(testTypeValueNotation:main(?PER, optimize)), - - ?uper_bin(asn1_test_lib:compile_all(Files, Config, [uper_bin])), - ?uper_bin(testTypeValueNotation:main(uper_bin, optimize)), - case ?BER of - Ber3 when Ber3 == ber; Ber3 == ber_bin -> - asn1_test_lib:compile_all(Files, Config, [?PER, optimize]), - testTypeValueNotation:main(?PER, optimize); - _ -> - ok - end. - -testOpenTypeImplicitTag(suite) -> []; -testOpenTypeImplicitTag(Config) -> - asn1_test_lib:compile("OpenTypeImplicitTag", Config, [?BER]), - testOpenTypeImplicitTag:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("OpenTypeImplicitTag", Config, [?BER, nif])), - ?ber_nif(?BER, testOpenTypeImplicitTag:main(?BER)), - - asn1_test_lib:compile("OpenTypeImplicitTag", Config, [?PER]), - testOpenTypeImplicitTag:main(?PER), - - ?per_bit_opt(asn1_test_lib:compile("OpenTypeImplicitTag", Config, [?PER, optimize])), - ?per_bit_opt(testOpenTypeImplicitTag:main(?PER)), - - ?uper_bin(asn1_test_lib:compile("OpenTypeImplicitTag", Config, [uper_bin])), - ?uper_bin(testOpenTypeImplicitTag:main(uper_bin)), - - asn1_test_lib:compile("OpenTypeImplicitTag", Config, [?PER, optimize]), - testOpenTypeImplicitTag:main(?PER). - -duplicate_tags(suite) -> []; -duplicate_tags(Config) -> - DataDir = ?config(data_dir, Config), - CaseDir = ?config(case_dir, Config), - {error, {asn1, [{error, {type, _, _, 'SeqOpt1Imp', {asn1, {duplicates_of_the_tags, _}}}}]}} = - asn1ct:compile(filename:join(DataDir, "SeqOptional2"), - [abs, {outdir, CaseDir}]). - -rtUI(suite) -> []; -rtUI(Config) -> - asn1_test_lib:compile("Prim", Config, [?BER]), - {ok, _} = asn1rt:info('Prim'), - asn1_test_lib:compile("Prim", Config, [?PER]), - {ok, _} = asn1rt:info('Prim'). - -testROSE(suite) -> []; -testROSE(Config) -> - asn1_test_lib:compile("Remote-Operations-Merged.set.asn1", Config, [?BER]), - asn1_test_lib:compile("Remote-Operations-Merged.set.asn1", Config, [?PER]), - ?per_bit_opt(asn1_test_lib:compile("Remote-Operations-Merged.set.asn1", Config, [?PER, optimize])), - ?uper_bin(asn1_test_lib:compile("Remote-Operations-Merged.set.asn1", Config, [uper_bin])), - asn1_test_lib:compile("Remote-Operations-Merged.set.asn1", Config, [?PER, optimize]). - -testINSTANCE_OF(suite) -> []; -testINSTANCE_OF(Config) -> - asn1_test_lib:compile("INSTANCEOF.asn1", Config, [?BER]), - testINSTANCE_OF:main(?BER), - - ?ber_nif(?BER, asn1_test_lib:compile("INSTANCEOF.asn1", Config, [?BER, nif])), - ?ber_nif(?BER, testINSTANCE_OF:main(?BER)), - - asn1_test_lib:compile("INSTANCEOF.asn1", Config, [?PER]), - testINSTANCE_OF:main(?PER), - - ?per_bit_opt(asn1_test_lib:compile("INSTANCEOF.asn1", Config, [?PER, optimize])), - ?per_bit_opt(testINSTANCE_OF:main(?PER)), - - ?uper_bin(asn1_test_lib:compile("INSTANCEOF.asn1", Config, [uper_bin])), - ?uper_bin(testINSTANCE_OF:main(uper_bin)), - - asn1_test_lib:compile("INSTANCEOF.asn1", Config, [?PER, optimize]), - testINSTANCE_OF:main(?PER). - -testTCAP(suite) -> []; -testTCAP(Config) -> - testTCAP:compile(Config, [?BER]), - testTCAP:test(?BER, Config), - - ?ber_nif(?BER, testTCAP:compile(Config, [?BER, nif])), - ?ber_nif(?BER, testTCAP:test(?BER, Config)), - - ?ber_nif(?BER, testTCAP:compile_asn1config(Config, [?BER, asn1config])), - ?ber_nif(?BER, testTCAP:test_asn1config()). - -testDER(suite) ->[]; -testDER(Config) -> - asn1_test_lib:compile("DERSpec", Config, [?BER, der]), - testDER:test(), - - ?ber_nif(?BER, asn1_test_lib:compile("DERSpec", Config, [?BER, der, nif])), - ?ber_nif(?BER, testDER:test()), - - asn1_test_lib:compile("ParamBasic", Config, [?BER, der]), - testParamBasic_cases(der), - - asn1_test_lib:compile("Default", Config, [?BER, der]), - testSeqSetDefaultVal_cases(?BER). - -testSeqSetDefaultVal_cases(?BER) -> - testSeqSetDefaultVal:main(?BER). - - -specialized_decodes(suite) -> []; -specialized_decodes(Config) -> - case ?BER of - ber_bin_v2 -> - asn1_test_lib:compile_all(["PartialDecSeq.asn", - "PartialDecSeq2.asn", - "PartialDecSeq3.asn", - "PartialDecMyHTTP.asn", - "MEDIA-GATEWAY-CONTROL.asn", - "P-Record"], - Config, [?BER, optimize, asn1config]), - test_partial_incomplete_decode:test(Config), - test_selective_decode:test(); - Rule -> - {skip, lists:concat(["not implemented yet for version: ", Rule])} - end. - -special_decode_performance(suite) ->[]; -special_decode_performance(Config) -> - Files = ["MEDIA-GATEWAY-CONTROL", "PartialDecSeq"], - ?ber_nif(?BER, asn1_test_lib:compile_all(Files, Config, - [?BER, optimize, asn1config])), - ?ber_nif(?BER, test_special_decode_performance:go(all)). - - -test_driver_load(suite) -> []; -test_driver_load(Config) -> - case ?PER of - per_bin -> - asn1_test_lib:compile("P-Record", Config, [?PER, optimize]), - test_driver_load:test(5); - _ -> - ok - end. - -test_ParamTypeInfObj(suite) -> []; -test_ParamTypeInfObj(Config) -> - asn1_test_lib:compile("IN-CS-1-Datatypes", Config, [ber_bin]). - -test_WS_ParamClass(suite) -> []; -test_WS_ParamClass(Config) -> - asn1_test_lib:compile("InformationFramework", Config, [ber_bin]). - -test_Defed_ObjectIdentifier(suite) -> []; -test_Defed_ObjectIdentifier(Config) -> - asn1_test_lib:compile("UsefulDefinitions", Config, [ber_bin]). - -testSelectionType(suite) -> []; -testSelectionType(Config) -> - asn1_test_lib:compile("SelectionType", Config, [?BER]), - {ok, _} = testSelectionTypes:test(), - asn1_test_lib:compile("SelectionType", Config, [?PER]), - {ok, _} = testSelectionTypes:test(). - -testSSLspecs(suite) -> []; -testSSLspecs(Config) -> - ok = testSSLspecs:compile(Config, - [?BER, optimize, compact_bit_string, der]), - testSSLspecs:run(?BER), - - case code:which(asn1ct) of - cover_compiled -> - ok; - _ -> - ok = testSSLspecs:compile_inline(Config, ?BER), - ok = testSSLspecs:run_inline(?BER) - end. - -testNortel(suite) -> []; -testNortel(Config) -> - asn1_test_lib:compile("Nortel", Config, [?BER]), - asn1_test_lib:compile("Nortel", Config, [?BER, optimize]), - asn1_test_lib:compile("Nortel", Config, [?BER, optimize, nif]), - asn1_test_lib:compile("Nortel", Config, [?PER]), - ?per_bit_opt(asn1_test_lib:compile("Nortel", Config, [?PER, optimize])), - ?uper_bin(asn1_test_lib:compile("Nortel", Config, [uper_bin])), - asn1_test_lib:compile("Nortel", Config, [?PER, optimize]). - -test_undecoded_rest(suite) -> []; -test_undecoded_rest(Config) -> - - asn1_test_lib:compile("P-Record", Config, [?BER]), - ok = test_undecoded_rest:test([], Config), - - asn1_test_lib:compile("P-Record", Config, [?BER, undec_rest]), - ok = test_undecoded_rest:test(undec_rest, Config), - - asn1_test_lib:compile("P-Record", Config, [?PER]), - ok = test_undecoded_rest:test([], Config), - - ?per_bit_opt(asn1_test_lib:compile("P-Record", Config, [?PER, optimize, undec_rest])), - ?per_bit_opt(ok = test_undecoded_rest:test(undec_rest, Config)), - - ?uper_bin(asn1_test_lib:compile("P-Record", Config, [uper_bin, undec_rest])), - ?uper_bin(ok = test_undecoded_rest:test(undec_rest, Config)), - - asn1_test_lib:compile("P-Record", Config, [?PER, undec_rest]), - ok = test_undecoded_rest:test(undec_rest, Config). - -test_inline(suite) -> []; -test_inline(Config) -> - case code:which(asn1ct) of - cover_compiled -> - {skip, "Not runnable when cover compiled"}; - _ -> - ok=test_inline:compile(Config, []), - test_inline:main(Config, ?BER), - test_inline:inline1(Config, ?BER, []), - test_inline:performance2() - end. - -%test_inline_prf(suite) -> []; -%test_inline_prf(Config) -> -% test_inline:performance(Config). - -testTcapsystem(suite) -> []; -testTcapsystem(Config) -> - testTcapsystem:compile(Config, [?BER]). - -testNBAPsystem(suite) -> []; -testNBAPsystem(Config) -> - ok=testNBAPsystem:compile(Config, [?PER|?per_optimize(?BER)]), - ok=testNBAPsystem:test(?PER, Config). - -test_compile_options(suite) -> []; -test_compile_options(Config) -> - case code:which(asn1ct) of - cover_compiled -> - {skip, "Not runnable when cover compiled"}; - _ -> - ok = test_compile_options:wrong_path(Config), - ok = test_compile_options:path(Config), - ok = test_compile_options:noobj(Config), - ok = test_compile_options:record_name_prefix(Config), - ok = test_compile_options:verbose(Config), - ok = test_compile_options:warnings_as_errors(Config) - end. - -testDoubleEllipses(suite) -> []; -testDoubleEllipses(Config) -> - asn1_test_lib:compile("DoubleEllipses", Config, [?BER]), - testDoubleEllipses:main(?BER), - ?ber_nif(?BER, asn1_test_lib:compile("DoubleEllipses", Config, [?BER, nif])), - ?ber_nif(?BER, testDoubleEllipses:main(?BER)), - ?per_bit_opt(asn1_test_lib:compile("DoubleEllipses", Config, [?PER, optimize])), - ?per_bit_opt(testDoubleEllipses:main(?PER)), - ?uper_bin(asn1_test_lib:compile("DoubleEllipses", Config, [uper_bin])), - ?uper_bin(testDoubleEllipses:main(uper_bin)), - asn1_test_lib:compile("DoubleEllipses", Config, [?PER|?per_optimize(?BER)]), - testDoubleEllipses:main(?PER). - -test_modified_x420(suite) -> []; -test_modified_x420(Config) -> - test_modified_x420:compile(Config), - test_modified_x420:test_io(Config). - -testX420(suite) -> []; -testX420(Config) -> - testX420:compile(?BER, [der], Config), - ok = testX420:ticket7759(?BER, Config), - testX420:compile(?PER, [], Config). - -test_x691(suite) -> []; -test_x691(Config) -> - case ?PER of - per -> - ok = test_x691:compile(Config, [uper_bin]), - true = test_x691:cases(uper_bin, unaligned), - ok = test_x691:compile(Config, [?PER]), - true = test_x691:cases(?PER, aligned), - ok = asn1_test_lib:ticket_7708(Config, []), - ok = asn1_test_lib:ticket_7763(Config); - _ -> - ok = test_x691:compile(Config, [?PER|?per_optimize(?BER)]), - true = test_x691:cases(?PER, aligned) - end. - -ticket_6143(suite) -> []; -ticket_6143(Config) -> - ok = test_compile_options:ticket_6143(Config). - -testExtensionAdditionGroup(suite) -> []; -testExtensionAdditionGroup(Config) -> - DataDir = ?config(data_dir, Config), - PrivDir = ?config(priv_dir, Config), - Path = code:get_path(), - DoIt = fun(Erule) -> - ok = asn1ct:compile(filename:join(DataDir, "Extension-Addition-Group"), Erule ++ [{outdir, PrivDir}]), - {ok, _M} = compile:file(filename:join(DataDir, "extensionAdditionGroup"), [{i, PrivDir}, {outdir, PrivDir}, debug_info]), - ok = extensionAdditionGroup:run(Erule), - ok = extensionAdditionGroup:run2(Erule), - ok = asn1ct:compile(filename:join(DataDir, "EUTRA-RRC-Definitions"), Erule ++ [{record_name_prefix, "RRC-"}, {outdir, PrivDir}]), - ok = extensionAdditionGroup:run3(Erule) - end, - [DoIt(Rule)|| Rule <- [[per_bin], [per_bin, optimize], [uper_bin]]], - %% FIXME problems with automatic tags [ber_bin], [ber_bin, optimize] - code:set_path(Path). - - - -% parse_modules() -> -% ["ImportsFrom"]. - -per_modules() -> - [X || X <- test_modules()]. -ber_modules() -> - [X || X <- test_modules(), - X =/= "CommonDataTypes", - X =/= "DS-EquipmentUser-CommonFunctionOrig-TransmissionPath", - X =/= "H323-MESSAGES", - X =/= "H235-SECURITY-MESSAGES", - X =/= "MULTIMEDIA-SYSTEM-CONTROL"]. -test_modules() -> - _Modules = [ - "BitStr", - "CAP", - "CommonDataTypes", - "Constraints", - "ContextSwitchingTypes", - "DS-EquipmentUser-CommonFunctionOrig-TransmissionPath", - "Enum", - "From", - "H235-SECURITY-MESSAGES", - "H323-MESSAGES", - %%"MULTIMEDIA-SYSTEM-CONTROL", recursive type , problem for asn1ct:value - "Import", - "Int", - "MAP-commonDataTypes", -% ambigous tags "MAP-insertSubscriberData-def", - "Null", - "Octetstr", - "One", - "P-Record", - "P", -% "PDUs", - "Person", - "PrimStrings", - "Real", - "XSeq", - "XSeqOf", - "XSet", - "XSetOf", - "String", - "SwCDR", -% "Syntax", - "Time" -% ANY "Tst", -% "Two", -% errors that should be detected "UndefType" -] ++ - [ - "SeqSetLib", % must be compiled before Seq and Set - "Seq", - "Set", - "SetOf", - "SeqOf", - "Prim", - "Cho", - "Def", - "Opt", - "ELDAPv3", - "LDAP" - ]. - -test_OTP_9688(Config) -> - Asn1Mod = "OTP-9688.asn1", - %%DataDir = ?config(data_dir,Config), - PrivDir = ?config(priv_dir,Config), - Data = " -OTP-9688 DEFINITIONS ::= BEGIN - - foo INTEGER ::= 1 - bar INTEGER ::= 42 - - Baz ::= INTEGER {x-y-z1(foo), x-y-z2(bar)} - Qux ::= SEQUENCE {flerpInfo SEQUENCE {x INTEGER (-10 | -9 | (0..4))} OPTIONAL} - -END -", - File = filename:join(PrivDir,Asn1Mod), - ok = file:write_file(File, Data), - %% Does it compile with changes to asn1ct_check and asn1ct_gen_per_rt2ct? - %% (see ticket) - ok = asn1ct:compile(File, [{outdir, PrivDir}]). |