aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1
AgeCommit message (Collapse)Author
2013-12-02Merge branch 'maint'Björn Gustavsson
* maint: PER/UPER: Handle a range in the extension part of the constraint
2013-12-02Merge branch 'bjorn/asn1/fix-integer-constraint/OTP-11504' into maintBjörn Gustavsson
* bjorn/asn1/fix-integer-constraint/OTP-11504: PER/UPER: Handle a range in the extension part of the constraint
2013-11-29PER/UPER: Handle a range in the extension part of the constraintBjörn Gustavsson
Constraints such as: INTEGER (1..10, ..., 11..20) would fail to compile. Make sure it is properly ignored.
2013-11-20Merge branch 'maint'Björn Gustavsson
* maint: Fix complicated union of INTEGER constraints
2013-11-20Merge branch 'bjorn/asn1/fix-union-bug/OTP-11411' into maintBjörn Gustavsson
* bjorn/asn1/fix-union-bug/OTP-11411: Fix complicated union of INTEGER constraints
2013-10-21Merge branch 'maint'Björn Gustavsson
* maint: PER/UPER: Correct encoding for single-value extensible constraints asn1ct_value: Handle named INTEGERs with constraints
2013-10-21Merge branch 'bjorn/asn1/fix-extensible-single-values/OTP-11415' into maintBjörn Gustavsson
* bjorn/asn1/fix-extensible-single-values/OTP-11415: PER/UPER: Correct encoding for single-value extensible constraints asn1ct_value: Handle named INTEGERs with constraints
2013-10-18Merge branch 'maint'Björn Gustavsson
* maint: Fix broken handling of default values for BIT STRINGs
2013-10-18Merge branch 'bjorn/asn1/fix-default-values/OTP-11319' into maintBjörn Gustavsson
* bjorn/asn1/fix-default-values/OTP-11319: Fix broken handling of default values for BIT STRINGs
2013-10-17Merge branch 'maint'Björn Gustavsson
* maint: Cope with .erlang files that print to stdout
2013-10-17Fix complicated union of INTEGER constraintsBjörn Gustavsson
A constraint that was an union of integer ranges: Type ::= INTEGER (lb1..ub1 | ... | lbN..ubN) would sometimes (depending on the values) not all always be properly combined to a single effective range, but would become: Type ::= INTEGER (lb2..ub2) (lb3..ub3) If that type was used in a SEQUENCE: S ::= SEQUENCE { v Type } the constraint would be simplified, taking the intersection of the ranges.
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).
2013-09-30Cope with .erlang files that print to stdoutBjörn Gustavsson
Don't redirect standard output when auto-generating the asn1ct_rtt.erl and asn1ct_eval*.erl source files, because anything printed form .erlang will end up in them, probably causing a compilation error.
2013-09-30PER/UPER: Correct encoding for single-value extensible constraintsBjörn Gustavsson
An extensible constraint which is a union of single values, such as: INTEGER (1|17, ...) would be incorrectly encoded.
2013-09-30asn1ct_value: Handle named INTEGERs with constraintsBjörn Gustavsson
The asn1ct:value/2 function would crash for name INTEGERs with constraints, such as INTEGER {a(2),b(3),z(17)} (2|3|17, ...).
2013-09-30Merge branch 'maint'Björn Gustavsson
* maint: Teach the ASN.1 compiler the no_ok_wrapper option Optimize the generated decode/2 function
2013-09-27Teach the ASN.1 compiler the no_ok_wrapper optionBjörn Gustavsson
Add the no_ok_wrapper option so that the generated M:encode/2 and M:decode/2 functions will not wrap a successful return value in an {ok,...} tuple. Errors will cause exceptions. Eliminating the wrapping tuple allows simpler nesting of calls.
2013-09-27Optimize the generated decode/2 functionBjörn Gustavsson
Use 'try' instead of 'catch', and don't match anything that cannot actually be returned from the generated encoding code.
2013-09-27Merge branch 'maint'Björn Gustavsson
* maint: (24 commits) No longer compile the X420 specs for plain BER Combine the testSeqIndefinite/1 and testSetIndefinite/1 test cases Remove asn1_wrapper Eliminate the use of asn1_wrapper Simplify tests of CHOICE with OPTIONAL asn1_test_lib: Add roundtrip functions and use them everywhere Makefile: Release Emakefile to ensure warnings are treated as errors Don't allow unused exported functions in test case helpers Move out specific tests from asn1_test_lib testMegaco: Remove unused exported function msg11/0 ASN.1 tests: Don't export functions that are only locally called Remove unused pem_performance.erl file asn1_SUITE: Reinstate test of sub-constraint ASN.1 tests: Remove unused choice_extension.erl Remove unused compile() functions asn1_test_lib: Remove unnecessary loading of a compiled ASN.1 spec Slightly clean up testX420 asn1_SUITE: Combine most tests that use External.asn1 asn1ct_gen: Clean up process dictionary after generating asn1ct_parser2: Clean the process dictionary after parsing ...
2013-09-18No longer compile the X420 specs for plain BERBjörn Gustavsson
We used to compile the X420 specs for both DER and PER, but 9ec0a0ba changed that to compile for DER and plain BER (probably accidentally). Since the X420 suite contains 99 source files and compilations takes more than 40 seconds on my computer for one backend, we only want to do compilations that are likely to find bugs. Compiling with the BER backend after having compiled for the DER backend is very unlikely to detect any bugs. Compiling for PER (as well as DER) is slightly more likely to expose bugs, but I don't think it is worth the extra running time for the test suite.
2013-09-18Combine the testSeqIndefinite/1 and testSetIndefinite/1 test casesBjörn Gustavsson
They use the same ASN.1 spec.
2013-09-18Remove asn1_wrapperBjörn Gustavsson
2013-09-18Eliminate the use of asn1_wrapperBjörn Gustavsson
The asn1_wrapper made some sense when encode functions could either produce a list or a binary, depending on the backend. Now encode functions always produce a binary. To improve readbility of the test suites, eliminate the asn1_wrapper functions by replacing them with calls to one of the roundtrip functions in asn1_test_lib. When it is not possible to use the roundtrip functions, call the module in question directly. While at it, also remove ?line macros that are near to the touched code and use asn1_test_lib:hex_to_bin/1 instead of home-brewn hex conversion routines.
2013-09-18Simplify tests of CHOICE with OPTIONALBjörn Gustavsson
Test ChoOptional and ChoOptionalImplicitTag with the same test code and data.
2013-09-18asn1_test_lib: Add roundtrip functions and use them everywhereBjörn Gustavsson
Even if the roundtrip functions are very simply, putting them here makes it possible to change its behavior in one place (e.g. if we are to change encode and decode not to wrap the result in a ok tuple in some future release).
2013-09-18Makefile: Release Emakefile to ensure warnings are treated as errorsBjörn Gustavsson
The generated Emakefile was not copied when releasing the test suites, which meant that the suites were compiled with default options (without the 'warnings_as_errors' option in the generated Emakefile). While at it, eliminate left-over dependecies.
2013-09-18Don't allow unused exported functions in test case helpersBjörn Gustavsson
To keep the test case clean, add an xref test case to ensure that there are no unused functions in the any of the test case helper modules. Eliminate 4 functions that were exported just so that timer:tc/3 could be used (use timer:tc/1 with a fun instead).
2013-09-18Move out specific tests from asn1_test_libBjörn Gustavsson
asn1_test_lib is supposed to be a general-purpose helper module for test cases. Move all specific test cases into asn1_SUITE.
2013-09-18testMegaco: Remove unused exported function msg11/0Björn Gustavsson
Also remove records, defines, and request/4 that were only used by msg11/0.
2013-09-18ASN.1 tests: Don't export functions that are only locally calledBjörn Gustavsson
2013-09-18Remove unused pem_performance.erl fileBjörn Gustavsson
The module tests the performance of the OTP-PUB-KEY module in the public_key application, so it is off-topic and should not be reinstated.
2013-09-18asn1_SUITE: Reinstate test of sub-constraintBjörn Gustavsson
A test of sub-constraints for PER/UPER was lost in commit 9ec0a0babace.
2013-09-18ASN.1 tests: Remove unused choice_extension.erlBjörn Gustavsson
The testChoExtension module tests the same thing (and more) as choice_extension.erl.
2013-09-18Remove unused compile() functionsBjörn Gustavsson
2013-09-18asn1_test_lib: Remove unnecessary loading of a compiled ASN.1 specBjörn Gustavsson
asn1ct:compile/2 calls c:c/2 to invoke the compiler and to load the compiled code. That means that there is no need load the module after having invoked the ASN.1 compiler. To make sure that we'll notice if that behavior changes in the future, extend the rtUI/1 test case to verify that the loaded module has the correct encoding rule (if asn1ct:compile/2 would fail to reload the module, the previous encoding rule would be returned). While at it, it also makes sense to test calling M:bit_string_format/0 to ensure that it continues working.
2013-09-18Slightly clean up testX420Björn Gustavsson
2013-09-18asn1_SUITE: Combine most tests that use External.asn1Björn Gustavsson
By combining most tests that use External.asn, we will only need to compile that spec once instead of 11 times. While combining the test cases, make sure to remove the redundant code in testPrimExternal/1 that tests primitive strings in exactly the same way as testPrimString/1. Removing the redundant code shaves off a few seconds of testing time. Keep testSeqExtension/1 as a separate test case, since it is a complicated test case that does hairy stuff to the source files.
2013-09-18asn1ct_gen: Clean up process dictionary after generatingBjörn Gustavsson
Cleanliness.
2013-09-18asn1ct_parser2: Clean the process dictionary after parsingBjörn Gustavsson
Apart from cleanliness, the test suite runs many tests cases in parallel, so it never hurts to reduce the memory pressure.
2013-09-18asn1_SUITE: Remove useless test case testInvokeMod/1Björn Gustavsson
It seems that the original purpose is to test encoding by directly calling the module (as opposed to calling indirectly using asn1rt). That is tested in many other test cases (such as testPrimStrings); thus this test case no longer serves any useful purpose.
2013-09-18asn_SUITE: Fold per_GeneralString/1 into h323testBjörn Gustavsson
The per_GeneralString/1 test case compiles MULTIMEDIA-SYSTEM-CONTROL and then does a single decoding. Save some compilation time by folding the test into the h323test/1 test case.
2013-09-18asn1_SUITE: Remove unused function case_dir/2Björn Gustavsson
2013-09-18asn1_SUITE: Remove useless test_driver_load/1 test caseBjörn Gustavsson
The PER back-end no longer use a driver (or even a NIF), and the test case would not fail if it didn't work because the spawned processed were not linked.
2013-09-17Merge tag 'OTP_R16B02'Magnus Lidén
The R16B02 release Conflicts: lib/sasl/vsn.mk
2013-09-16Prepare releaseOTP_R16B02Erlang/OTP
2013-09-09Merge branch 'maint'Björn-Egil Dahlberg
2013-09-09Merge branch 'kenneth/doc_to_dtd/OTP-11193' into maintBjörn-Egil Dahlberg
* kenneth/doc_to_dtd/OTP-11193: Corrections so that the documentation confirms to the DTD Minor correction of xml structure to conform to the DTD
2013-09-04Merge branch 'maint'Björn Gustavsson
* maint: (26 commits) genop.tab: Add documentation for many BEAM instructions asn1ct_constucted_per: Directly call asn1ct_gen_per Clean up handling of .asn1db files PER, UPER: Fix encoding/decoding of open types greater than 16K PER, UPER: Optimize table constraints PER, UPER: Optimize encoding using an intermediate format Refactor decoding of components of SEQUENCE OF / SET OF PER,UPER: Get rid of unused 'telltype' argument in decoding functions Optimize the generated encode/2 function UPER: Optimize complete/1 Clean up checking of objects Improve tests of deep table constraints BER: Handle multiple optional SEQUENCE fields with table constraints Test OPTIONAL and DEFAULT for open types PER/UPER: Fix encoding of an object set with multiple inlined constructs Remove broken support for multiple UNIQUE Extend the test for parameterized information objects asn1_SUITE: Remove off-topic (and slow) smp/1 test case SeqOf: Add more tricky SEQUENCE OF tests Clean up handling of extension addition groups ...
2013-09-03asn1ct_constucted_per: Directly call asn1ct_gen_perBjörn Gustavsson
2013-09-03Clean up handling of .asn1db filesBjörn Gustavsson
There is (differenct) code for reading .asn1db files both in asn1ct and asn1_db. Consolidate the reading into one routine in asn1db. Another problem is that the encoding rule that the .asn1db file was created for is not in the .asn1db, but only in the generated Erlang module. It is much easier and safer to put the encoding rule in the .asn1db file itself. We will also put the version number of the asn1 application into the file, to ensure that we don't use an old .asn1db file that could potentially be incompatible.