aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/asn1_SUITE.erl
AgeCommit message (Collapse)Author
2018-12-04Handle erroneous length during decode (BER only) without crashingKenneth Lundin
2018-08-03Merge branch 'maint-20' into maintRaimo Niskanen
* maint-20: Updated OTP version Prepare release Fix NIF stack recursion bug and enforce a limit Conflicts: OTP_VERSION lib/asn1/doc/src/notes.xml lib/asn1/vsn.mk otp_versions.table
2018-08-02Fix NIF stack recursion bug and enforce a limitRaimo Niskanen
Fix recursion bug when decoding Constructed value within another value - here the allowed buffer for the recursed decode shall only be the size of the enclosing value, not the whole buffer. Return ASN1_ERROR if BER decode recurses more than about 8 kWords.
2018-06-18Update copyright yearHenrik Nord
2018-04-16asn1: Eliminate use of erlang:get_stacktrace/0Björn Gustavsson
Also eliminate use of erlang:get_stacktrace/0 in code generated by the ASN.1 compiler.
2018-01-17asn1_SUITE: Fix failure in xref_export_all/1Björn Gustavsson
The variable 'S' was used twice. If the test case failed because there were unused functions in asn1_SUITE, there would be an ugly badmatch exception instead of the intended nice error message.
2017-09-12asn1: Fix test suite deprecated functionsLukas Larsson
2017-08-24Merge branch 'maint-20' into maintRaimo Niskanen
* 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
2017-08-16Fix broken handling of default values in extensions for PERBjörn Gustavsson
Default values have never worked in extension for PER. Note that for default values in the root part of SEQUENCE, giving a value equal to the DEFAULT value, will result in the same encoding as if asn1_DEFAULT was given. However, that behavior is not promised by the documentation. The documentation says that asn1_DEFAULT should be used for default values. For DEFAULT in extensions, only implement what the documentation promises and nothing more. ERIERL-60
2017-07-04Corrected behavior of option {n2n, EnumTypeName} whenKenneth Lundin
EnumTypeName contains a hypen like fore example Cause-Misc. This caused syntax errors when compiling the generated Erlang code.
2017-05-04Update copyright yearRaimo Niskanen
2017-03-14asn1_erl_nif.c: Correct handling of tags >= 16384Björn Gustavsson
Tags number above 16383 were not decoded correctly in ber_decode_tag(). We could fix the problem, but there does not seem to be any need. First, the only way that high tag numbers can be created is with manual tagging; after 1994 manual tagging is no longer recommended. Second, the ASN.1 playground (http://asn1-playground.oss.com) only supports tags up to 16383 (the same is presumably true for OSS Nokalva's other tools). Therefore, clean up the existing code and make it an explicit 'invalid_tag' error when tags above 13383 are encountered (instead of an implicit 'wrong_tag' error).
2017-02-13Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: ets_tough_SUITE: Add the gen_server behavior ets_tough_SUITE: Remove functions that are never called ets_SUITE: Eliminate internal exports used for spawn/apply lists_SUITE: Run the droplast/1 test case random_{iolist,unicode_list}: Remove unused functions stdlib test: Eliminate export_all from re_SUITE and friends asn1_SUITE: Make sure that there are no unused functions Simplify running of asn1 app tests asn1_SUITE: Remove unused functions
2017-02-10asn1_SUITE: Make sure that there are no unused functionsBjörn Gustavsson
Add xref_export_all/1 to make sure that all functions in the asn1_SUITE module are actually called (directly or indirectly).
2017-02-10Simplify running of asn1 app testsBjörn Gustavsson
Instead of initiating running of the app tests for asn1 from asn1_SUITE, put the tests in asn1_app_SUITE and let it take care of itself. While we are it, eliminate 'export_all' in the new module and use lists:keyfind/3 instead of lists:keysearch/3.
2017-02-10asn1_SUITE: Remove unused functionsBjörn Gustavsson
In 8a39672af4d9, the testX420/1 test case is no longer run. Remove the unused functions.
2017-02-06Teach the ASN.1 compiler the 'maps' optionBjörn Gustavsson
When the 'maps' option is given, the SEQUENCE and SET types are represented as maps instead of as records. Optional and default values must be not be given as asn1_NOVALUE or asn1_DEFAULT in a map passed to the M:encode/2 function; they must be omitted from the map. Similarly, when decoding missing values will be omitted from the map. No .hrl files will be generated when the 'maps' options is used. That means values in an ASN.1 module must be retrieved by calling the appropriate function in generated module. Since we one day hope to get rid of the options 'compact_bit_string', 'legacy_bit_string', and 'legacy_erlang_types', we will not allow them to be combined with the 'maps' option.
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-03-23asn1_SUITE: Remove temporary filesBjörn Gustavsson
Some test machines have quite small hard drives. Help them by remove temporary files in end_per_test_case/2.
2016-03-18Eliminate suite and doc clausesBjörn Gustavsson
2016-03-18Replace ?config() macro with proplists:get_value()Björn Gustavsson
2016-03-18Modernize timetrapsBjörn Gustavsson
2016-03-15update copyright-yearHenrik Nord
2016-03-07Merge branch 'maint'Björn Gustavsson
* maint: asn1_SUITE_value: Don't test the LDAP module
2016-03-03asn1_SUITE_value: Don't test the LDAP moduleBjörn Gustavsson
asn1ct:test(Mod) will generate sample values for data types in an ASN.1 modules. The following definition from LDAP can cause problems for asn1ct:test/1: Filter ::= CHOICE { and [0] SET SIZE (1..MAX) OF filter Filter, or [1] SET SIZE (1..MAX) OF filter Filter, not [2] Filter, equalityMatch [3] AttributeValueAssertion, substrings [4] SubstringFilter, greaterOrEqual [5] AttributeValueAssertion, lessOrEqual [6] AttributeValueAssertion, present [7] AttributeDescription, approxMatch [8] AttributeValueAssertion, extensibleMatch [9] MatchingRuleAssertion, ... } If we were unlucky (which we were on some computers), the construction of sample values would not terminate. Eliminate the problem for now by not testing the LDAP module. This workaround should be removed when we have added some limitation to the recursion in asn1ct_value when generating values.
2016-02-17Eliminate use of test_server.hrl and test_server_line.hrlBjörn Gustavsson
As a first step to removing the test_server application as as its own separate application, change the inclusion of test_server.hrl to an inclusion of ct.hrl and remove the inclusion of test_server_line.hrl.
2015-06-18Change license text to APLv2Bruce Yinhe
2015-01-12Add a test case for EXTENSIBILITY IMPLIEDBjörn Gustavsson
2015-01-12asn1ct_parser2: Clean up error handling and reportingBjörn Gustavsson
Errors were reported using a throw like this: throw({asn1_error,{get_line(hd(Tokens)),get(asn1_module), [got,get_token(hd(Tokens)),expected,typereference]}}). The attempt to tell the user what was expected was often mis-leading. It is time-consuming and non-trival to provide correct information of what is expected. Therefore, we will not even try. Instead we will spend more effort to report the token where the error was discovered. We will replace each throw with a function call: parse_error(Tokens). Also add the syntax_SUITE test suite to test error reporting and to cover all error reporting code. Remove the old c_syntax/1 test case. Also remove all out-commented code.
2015-01-12Modernize error handling for illicit tagsBjörn Gustavsson
2015-01-12Clean up error reporting for duplicate tagsDan Gudmundsson
Split the test case duplicate_tags/1 into two parts. Do the error checking test in error_SUITE. Keep the SeqOptional2 specification and compile it from the per/1 and ber_other/1 test cases (for coverage).
2015-01-12asn1: Rewrite error handling for EXPORT to new styleDan Gudmundsson
2015-01-12Strengthen the constraint_equivalence test caseBjörn Gustavsson
Instead of only compiling to the abstract format using 'abs', also compile to each of the back-ends.
2015-01-12Get rid of the test case for warnings_as_errorsBjörn Gustavsson
The warnings in the ASN.1 are being eliminated one by one and replaced with errors. Therefore, it is no longer possible to test warnings_as_errors. We will reimplement this test case in the future if we will introduce some new sensible warnings.
2015-01-12Add the other PKCS files to the rfcs test caseDan Gudmundsson
Changed the following from the original copies: PKCS-5 (renamed from PKCS-v21) PKCS-9 Import from CryptographicMessageSyntax-2009 instead of CryptographicMessageSyntax Since most of the files from the x420 directory are needed, copy all of them into the rfcs directory and remove the x420 directory and test case. Copy the test of OTP-7759 to the testRfcs test case.
2015-01-12Add the rfcs test caseBjörn Gustavsson
Add the ASN.1 specs from RFC-5911 and RFC-5912.
2015-01-12Fix object set duplication testBjörn Gustavsson
Wrong fields in the record where checked when sorting, which caused duplicate objects to exist in constructed object sets and later caused an error.
2015-01-12Refactor code involving calls to get_fieldname_element/3Björn Gustavsson
Refactor and clean up code. While at it, add error handling and test cases. (Also add test cases for the existing values in ValueTest.asn while we are it.) Add support for defining INTEGER constants by extracting fields from objects. Example: int-from-object INTEGER ::= object.&id When extracting values from objects in constraints, only one level of extraction would work. That is, the following would work: SomeName ::= INTEGER (object.&int) but not: SomeName ::= INTEGER (object.&obj.&int)
2015-01-12Add a new test case to test values in ValueTest.asn1Björn Gustavsson
We only tested that ValueTest.asn1 would compile, no that the values were correct.
2014-11-18Add test for IMPLICIT tagging when TagDefault is AUTOMATICSimon Cornish
2014-09-01Correct expansion of parameterized typesBjörn Gustavsson
Attempting to compile: SomeType{SOME-CLASS-NAME, SOME-CLASS-NAME:SomeSet} ::= ... SEQUENCE { something SOME-CLASS-NAME.&id({SomeSet}) } would crash the compiler, because the actual parameter for SOME-CLASS-NAME was not substituted into the governor for the SomeSet parameter. While we are at it, combine the functionality of is_class/2 and get_class_def/2 (eliminating is_class/2). Most callers call both function.
2014-06-05Test suites: Add support for running Dialyzer on generated codeBjörn Gustavsson
Running dialyzer on test suites is good for finding both bugs and useless dialyzer warnings. Add a mechanism in asn1_test_lib for turning on running of dialyzer on all generated code. Turned off by default, because it is slow and because there are still a few dialyzer warnings left.
2014-05-06Test DEFAULT more thoroughlyBjörn Gustavsson
We need to test DEFAULT values both with and without legacy_erlang_types.
2014-02-28Clean up reporting of errors in IMPORTSBjörn Gustavsson
2014-02-24Eliminate warnings for deprecated funtions in test suitesBjörn Gustavsson
Commit e5c71b7 deprecated several all functions in the asn1rt module. As a result, calls to those functions from test suites caused warnings, and as the warnings_as_errors option was active, two test files failed to compile.
2014-01-24Fix open typesBjörn Gustavsson
2014-01-24Fix OCTET STRINGBjörn Gustavsson
2014-01-24Fix BIT STRINGBjörn Gustavsson
2014-01-24asn1 test suite: Modernize testTimer_* and testTimer.erlBjörn Gustavsson
2013-10-01Fix broken handling of default values for BIT STRINGsBjörn Gustavsson
For DER/PER/UPER, a value equal to the DEFAULT is not supposed to be encoded. BIT STRINGs values can be represented as Erlang terms in four different ways: as an integer, as a list of zeroes and ones, as a {Unused,Binary} tuple, or as an Erlang bitstring. When encoding a BIT STRING, only certain representations of BIT STRINGs values were recognized. All representations must be recognized. When decoding a DEFAULT value for a BIT STRING, the actual value given in the decoding would be either an integer or a list of zeroes and one (depending on how the literal was written in the specification). We expect that the default value should be in the same representation as any other BIT STRING value (i.e. by default an Erlang bitstring, or a list if the 'legacy_bitstring' option has been given, or as compact bitstring if 'compact_bitstring' has been given).