summaryrefslogtreecommitdiffstats
path: root/tests/testsuite.at
Commit message (Collapse)AuthorAgeFilesLines
* ctrl: tighten CTRL input parsingNeels Hofmeyr2017-12-201-1/+1
| | | | | | | | | | | | | | | | Validate that incoming CTRL commands... - have decimal IDs, - return error on trailing characters, - have invalid characters in variable identifiers, - send detailed error messages as reply to the requestor. Adjust ctrl_test.{c,ok}, which best show the change in behavior. Message handling causes log messages on stderr; previously, stderr was empty. Add '[ignore]' in testsuite.at so that the nonempty stderr doesn't cause test failures. Change-Id: I96a9b6b6a3a5e0b80513aa9eaa727ae8c9c7d7a1
* Add tests for bitvec_write_field()Max2017-10-241-0/+6
| | | | | | | | | | | | This function is actively used by OsmoPCU but have not been covered by tests so far. The test code is based on Minh-Quang Nguyen <minh-quang.nguyen@nutaq.com> submission with some modifications. The test's FIXME will be addressed in follow-up patches. Change-Id: I2ee544256b8675bc62a42493aab66a8eeee54f90 Related: OS#1526
* add osmo_imsi_str_valid() and osmo_msisdn_str_valid()Neels Hofmeyr2017-10-051-0/+6
| | | | | | | | | Add GSM23003_IMSI_MIN_DIGITS definition. Add regression test gsm23003_test.c to test the two new functions. Will be used by OsmoHLR to validate VTY and CTRL input. Change-Id: I1e94f5b0717b947d2a7a7d36bacdf04a75cb3522
* VTY: implicit node exit by de-indenting, not parent lookupNeels Hofmeyr2017-09-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: This will break users' config files if they do not use consistent indenting. (see below for a definition of "consistent".) When reading VTY commands from a file, use indenting as means to implicitly exit child nodes. Do not look for commands in the parent node implicitly. The VTY so far implies 'exit' commands if a VTY line cannot be parsed on the current node, but succeeds on the parent node. That is the mechanism by which our VTY config files do not need 'exit' at the end of each child node. We've hit problems with this in the following scenarios, which will show improved user experience after this patch: *) When both a parent and its child node have commands with identical names: cs7 instace 0 point-code 1.2.3 sccp-address osmo-msc point-code 0.0.1 If I put the parent's command below the child, it is still interpreted in the context of the child node: cs7 instace 0 sccp-address osmo-msc point-code 0.0.1 point-code 1.2.3 Though the indenting lets me assume I am setting the cs7 instance's global PC to 1.2.3, I'm actually overwriting osmo-msc's PC with 1.2.3 and discarding the 0.0.1. *) When a software change moves a VTY command from a child to a parent. Say 'timezone' moved from 'bts' to 'network' level: network timezone 1 2 Say a user still has an old config file with 'timezone' on the child level: network bts 0 timezone 1 2 trx 0 The user would expect an error message that 'timezone' is invalid on the 'bts' level. Instead, the VTY finds the parent node's 'timezone', steps out of 'bts' to the 'network' level, and instead says that the 'trx' command does not exist. Format: Consistent means that two adjacent indenting lines have the exact same indenting characters for the common length: Weird mix if you ask me, but correct and consistent: ROOT <space>PARENT <space><tab><space>CHILD <space><tab><space><tab><tab>GRANDCHILD <space><tab><space><tab><tab>GRANDCHILD2 <space>SIBLING Inconsistent: ROOT <space>PARENT <tab><space>CHILD <space><space><tab>GRANDCHILD <space><tab><tab>GRANDCHILD2 <tab>SIBLING Also, when going back to a parent level, the exact same indenting must be used as before in that node: Incorrect: ROOT <tab>PARENT <tab><tab><tab>CHILD <tab><tab>SIBLING As not really intended side effect, it is also permitted to indent the entire file starting from the root level. We could guard against it but there's no harm: Correct and consistent: <tab>ROOT <tab><tab>PARENT <tab><tab><tab><tab>CHILD <tab><tab>SIBLING Implementation: Track parent nodes state: whenever a command enters a child node, push a parent node onto an llist to remember the exact indentation characters used for that level. As soon as the first line on a child node is parsed, remember this new indentation (which must have a longer strlen() than its parent level) to apply to all remaining child siblings and grandchildren. If the amount of spaces that indent a following VTY command are less than this expected indentation, call vty_go_parent() until it matches up. At any level, if the common length of indentation characters mismatch, abort parsing in error. Transitions to child node are spread across VTY implementations and are hard to change. But transitions to the parent node are all handled by vty_go_parent(). By popping a parent from the list of parents in vty_go_parent(), we can also detect that a command has changed the node without changing the parent, hence it must have stepped into a child node, and we can push a parent frame. The behavior on the interactive telnet VTY remains unchanged. Change-Id: I24cbb3f6de111f2d31110c3c484c066f1153aac9
* Add pseudo-random bit sequence generator to libosmcooreHarald Welte2017-07-101-0/+6
| | | | | | | These PRBS sequences are specified in ITU-T O.150. They are typically used as test data to be transmitted for BER (bit error rate) testing. Change-Id: I227b6a6e86a251460ecb816afa9a7439d5fb94d1
* Fix wrongful GSM FR codec SID frame detection in DTX.Jean-Francois Dionne2017-06-091-1/+0
| | | | | | | | Based on ETSI TS 101 318 section 5.1.2 the 95 bits SID code word is not detected correctly due to a wrongful offset in the bits location indexes. Change-Id: I45d98c6edf267f313883503a65385190ffbc65ca
* introduce proper test case for GSM FR detectionHarald Welte2017-06-091-0/+1
| | | | | | | our code is actually wrong, so let's skip the test until the fix is applied in a follow-up patch. Change-Id: I710c7871f959671deb3d18ab9062588f3056fd7c
* add sercomm unit testHarald Welte2017-05-171-0/+6
| | | | Change-Id: I9e2e7fcda28e7c6844d5faa09e02acf537cea44d
* introduce byteswap.h with osmo_{htonl,ntohl,htons,ntohs}Harald Welte2017-05-151-0/+6
| | | | | | | | We need to have an architecture-independend way of endian conversion / byte swapping functions which will also work on embedded (bare iron) builds. Let's introduce osmocom/core/bytesawp.h for this purpose. Change-Id: Ibc0cc1e36d4ed63a35cf8ceff3af0f26e5ac7a3d
* tests/conv: add GSM 05.03 specific testVadim Yanitskiy2017-04-301-0/+6
| | | | | | | | | | This change extends the convolutional code test coverage, adding the GSM 05.03 specific test vectors, generated by the conv_gen.py. Inspired by Tom's patch: http://lists.osmocom.org/pipermail/openbsc/2014-April/007364.html Change-Id: I76d1cd4032d2f74c5bb93bde4fab99aa655b7f1a
* Add SW Description (de)marshallingMax2017-04-281-0/+6
| | | | | | | | | | | | | | | | * data structure representing 3GPP TS 52.021 ยง9.4.62 SW Description * function to serialize it into msgb * function to deserialize it from buffer * functions to extract/estimate buffer size for SW Description * test harness (partially taken from OpenBSC) There are several similar functions to deal with SW Description in OpenBSC, there's also need to use similar functionality in OsmoBTS. Hence it's better to put the code into common library with proper tests and documentation. Change-Id: Ib63b6b5e83b8914864fc7edd789f8958cdc993cd Related: OS#1614
* add osmo-auc-gen_testNeels Hofmeyr2017-03-151-0/+7
| | | | | | | | | | | | | | | | | | Add test for osmo-auc-gen invocations to ensure stability across upcoming SQN increment scheme changes. The test comprises of a shell script that invokes the osmo-auc-gen binary with various milenage parameters, of which the stdout/stderr are verified. More osmo-auc-gen invocations could be added, but my main focus is on the SEQ changes. Instead of manually testing that it still works for each SQN patch, I want this test to do it for me. To make sure that osmo-auc-gen is build before the tests are launched, place 'utils' before 'tests' in the root Makefile.am. Related: OS#1968 Change-Id: Ib4af34201cd2e7d76037bcd31dd89ef18c1a9aec
* libosmocoding: migrate transcoding routines from OsmoBTSVadim Yanitskiy2017-03-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | There are some projects, such as GR-GSM and OsmocomBB, which would benefit from using one shared implementation of GSM 05.03 code. So, this commit introduces a new sub-library called libosmocoding, which (for now) provides GSM, GPRS and EDGE transcoding routines, migrated from OsmoBTS. The original GSM 05.03 code from OsmoBTS was relicensed under GPLv2-or-later with permission of copyright holders (Andreas Eversberg, Alexander Chemeris and Tom Tsou). The following data types are currently supported: - xCCH - PDTCH (CS 1-4 and MCS 1-9) - TCH/FR - TCH/HR - TCH/AFS - RCH/AHS - RACH - SCH Change-Id: I0c3256b87686d878e4e716d12393cad5924fdfa1
* Use value_string for ctrl_typeMax2017-03-011-0/+6
| | | | | | | | Use value_string for enum ctrl_type instead of custom code. Add corresponding unit tests. Related: OS#1615 Change-Id: Icd4e96dd9f00876cb70b43cfcf42ab4f10311b28
* gsup_test: also check stderrNeels Hofmeyr2017-02-221-1/+2
| | | | | | | | | Configure logging to be deterministic and add stderr checking to testuite.at. However, exclude the thousands of message modification log lines from the log to not have a huge test expectation file. Change-Id: I0dd7112967a64a168556b62e5ec15107b7608ffb
* Add minimal testing of socket.c helper functionsHarald Welte2017-02-081-0/+8
| | | | Change-Id: I2773b3859a206f96fb8fa095d50a653d9eeb8d79
* oap: add encode/decode unit testNeels Hofmeyr2016-12-111-0/+7
| | | | Change-Id: I0e14099e2fc18e333a73d38bda059d53a8ca9944
* wqueue: Reject messges if queue is considered fullHolger Hans Peter Freyther2016-12-091-0/+6
| | | | | | | | | | | | | | | | | | The write queue was always meant to not queue more than the max_length messages but the implementation never rejected a message. Begin to log and enforce the queue size limit, add a testcase to verify the code and initialize except_cb as part of a fix for that new test case. Real applications might now run into the queue limit and drop messages where they just queued them before. It is unfortunate but I still think it is good to implement the routine as it was intended. We need to review osmo_wqueue_enqueue once more to see that no msgb is leaked. Change-Id: I1e6aef30f3e73d4bcf2967bc49f0783aa65395ae
* build: make check: disable sim_test when built with --disable-pcscNeels Hofmeyr2016-11-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Numerous issues caused sim_test to be attempted even though libosmosim was not built: In configure.ac, the ENABLE_PCSC variable lacked an AC_SUBST() to be exported. Furthermore in configure.ac, no value 'yes'/'no' was assigned to the ENABLE_PCSC variable, only to the enable_pcsc value. In testsuite.at, encapsulating the sim_test in 'if ENABLE_PCSC' seems to have no effect, regardless (not even when using a variable that should be defined accurately). So fix with these steps, similarly to how we do it in openbsc: In AC_ARG_ENABLE, directly use 'ENABLE_PCSC' to assign 'yes'/'no'. Export the same using AC_SUBST(). Add tests/atlocal.in to translate ENABLE_PCSC to enable_sim_test (also add atlocal to AC_OUTPUT and distclean). Use enable_sim_test in testuite.at, as seen in openbsc: use AT_CHECK() to indicate skipping the test if enable_sim_test isn't 'yes'. Change-Id: I9e8740c7d2dfbd272e22fee85972ef3fda7184a8
* timer_test: set 8 as default steps, use the default in testsuite.atNeels Hofmeyr2016-09-221-1/+1
| | | | Change-Id: I5070578e9fe2bdacaad000eaafb8dc5f549d6f3e
* Add GEA3 & GEA4 ciphersMax2016-07-111-0/+6
| | | | | | | | | | | Corresponding test code include both official test vectors from the specs and data from over-the-air tests. This obsoletes libosmo-crypt-a53 as it was last missing piece unimplemented in libosmogsm. Change-Id: I939e4f6b91b4a7c591ef3761fe2d46ed1c2fb2d3 Related: OS#1582
* Add Finite State Machine abstraction codeHarald Welte2016-06-161-0/+7
| | | | | | | | | | This code is supposed to formalize some of the state machine handling in Osmocom code. Change-Id: I0b0965a912598c1f6b84042a99fea9d522642466 Reviewed-on: https://gerrit.osmocom.org/163 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* Add helper functions for AMR codecMax2016-05-311-1/+6
| | | | | | | | | | | | | | | | | | | * add functions to encode/decode various codec paramters from RTP payload with AMR frame according to RFC 4867 * those functions are extended version based on code from osmo-bts' amr.c by Andreas Eversberg * add corresponding enum types and strings for logging * add regression tests It's useful both to replace manual parsing in osmo-bts with fuctions covered by test suite and as a debugging helpers for issues related to AMR. Change-Id: Ia217679a07d3fbc970f435e20f6eac33d34bd597 Related: OS#1562 Reviewed-on: https://gerrit.osmocom.org/118 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* import gprs_gsup_message.[ch] from openbsc as gsup.[ch]Harald Welte2016-05-061-0/+6
| | | | | | | Move those routines from OpenBSC to libosmogsm, so they can be re-used from other programs. I think it was a mistake to add them only inside the openbsc repository in the first place. We need to pay more attention to this in the future.
* tlv: Import osmo_shift_* and osmo_match_shift_* from openbscHarald Welte2016-05-051-0/+6
| | | | | These routines have nothing to do with specifically the BSC, so import them to the TLV parser we keep in libosmogsm.
* sim: Add simplistic unit test for APDU class tablesHarald Welte2016-03-171-0/+6
|
* Add T4 bit map compression routinesMax2016-02-181-0/+6
| | | | | | | | | | | | | | | Add bit map encoder and decoder functions: decoder is fully functional while encoder is good enough for testing - no backtracking to find the best possible compression is implemented. If somebody is willing to implement MS side of EDGE than this has to be expanded. Add corresponding tests. N. B: the encoding is implemented according to ETSI TS 44.060 which is slightly different from T4 used for fax according to CCITT G31D (RFC 804). Ticket: OW#2407 Sponsored-by: On-Waves ehf Signed-off-by: Max <msuraev@sysmocom.de>
* msgb/test: Add functions to catch and check exceptionsJacob Erlbeck2016-01-151-1/+1
| | | | | | | | | | | | | | | | Currently the msgb error handling cannot be fully tested, since in many cases osmo_panic will be called. This will in turn call abort(). Using an osmo_panic_handler that just returns will not help, since many msgb functions rely on MSGB_ABORT to not return at all. This commit uses an alternative osmo_panic_raise handler that just calls longjmp to return to the test function. Since some of this activity is logged to stderr where the strings may contain variable parts like pointer addresses, stderr checking is disabled in testsuite.at. Sponsored-by: On-Waves ehf
* msgb/test: Add test for msgb message buffersJacob Erlbeck2016-01-151-0/+6
| | | | | | | | | | This tests several API functions of the msgb by checking the invariant and by dumping resulting message buffers as hex. Sponsored-by: On-Waves ehf Conflicts: tests/Makefile.am
* bitvec: Add get/set byte sequencesJacob Erlbeck2016-01-151-0/+6
| | | | | | | | | | | | | | | The new functions bitvec_get_bytes and bitvec_set_bytes copy byte sequences from bitvecs to uint8_t arrays and vice versa. While the bytes in the bitvecs do not need to be aligned, the uint8_t arrays always are. In case the bytes in the bitvec are aligned, the implementation uses memcpy. Note that the implementation like the other existing functions assume MSB first encoding. [hfreyther: Squash the comment fix into this commit as well] Sponsored-by: On-Waves ehf
* gsm: Add APN conversion functionsJacob Erlbeck2016-01-151-0/+6
| | | | | | | | | | | | These functions are currently part of openbsc but also needed by other projects. The function have been renamed as follows: gprs_apn_to_str -> osmo_apn_to_str gprs_str_to_apn -> osmo_apn_from_str Sponsored-by: On-Waves ehf
* stats: Add stat_item for value monitoringJacob Erlbeck2015-10-281-0/+6
| | | | | | | | | | | | | | This commit adds instrumentation function to gather measurement and statistical values similar to counter groups. Multiple values can be stored per item, which can be retrieved in FIFO order. Getting values from the item does not modify its state to allow for multiple independant backends (e.g. VTY and statd). When a new value is set, the oldest value gets silently overwritten. Lost values are skipped when getting values from the item. Sponsored-by: On-Waves ehf
* gprs/test: Add BSSGP testsJacob Erlbeck2014-10-231-0/+6
| | | | | | | | This patch adds a test suite for the BSSGP protocol. The first (and only) test checks the handling of BSSGP SUSPEND/RESUME. Sponsored-by: On-Waves ehf
* gsm: Add Kasumi cipher implementationSylvain Munaut2014-06-161-0/+6
| | | | | Submitted-by: Max <max.suraev@fairwaves.co> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* utils: Add a simple testcase for osmo_hexdumpHolger Hans Peter Freyther2014-01-021-0/+6
| | | | This code makes a simple dump and tests for the corner case
* Refactor COMP128v23 implementation and add test suitMax2013-12-071-0/+6
|
* tests/gb: Add test for GPRS NS protocolJacob Erlbeck2013-10-081-0/+6
| | | | | | This tests the connection establishment by directly calling gprs_ns_rcvmsg() and printing the resulting messages and the NS-VC list.
* tests: Move expensive tests to the end of the listJacob Erlbeck2013-08-131-13/+13
| | | | | This lets make check fail earlier (in average) to shorten the debugging cycle time.
* vty: Fix misusage of snprintf in vty/utils.cJacob Erlbeck2013-08-061-0/+6
| | | | | | | | | | | | | | | Compiled with ubuntu 1204 (precise), where -Wformat-security is enabled by -Wall. Test yields ok, but the current implementation doesn't properly support multi-character separators and end strings. So the test output is truncated. Addresses: utils.c: In function 'vty_cmd_string_from_valstr': utils.c:84:2: warning: format not a string literal and no format arguments [-Wformat-security] utils.c:84:2: warning: format not a string literal and no format arguments [-Wformat-security] utils.c:108:2: warning: format not a string literal and no format arguments [-Wformat-security] utils.c:108:2: warning: format not a string literal and no format arguments [-Wformat-security]
* tests: Verify that all tests exit with status=0.Holger Hans Peter Freyther2013-03-251-17/+17
|
* Added a ring buffer log target to store the last N log messages.Katerina Barone-Adesi2013-02-271-0/+13
| | | | | | | The log target can be used via log alarms and show alarms. Why? This feature was proposed/requested at http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget All messages use the same amount of space, prioritizing simplicity.
* Revert "Added a ring buffer log target to store the last N log messages."Holger Hans Peter Freyther2013-02-271-13/+0
| | | | | | | I noticed some more issues and it is the easiest to revert and include the fixed version. This reverts commit 73377229bb33ab79682ce4b126a63602d13304ad.
* Added a ring buffer log target to store the last N log messages.Katerina Barone-Adesi2013-02-271-0/+13
| | | | | | | The log target can be used via log alarms and show alarms. Why? This feature was proposed/requested at http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget All messages use the same amount of space, prioritizing simplicity.
* fr: Begin with a GRE/FrameRelay test due the recent regressionHolger Hans Peter Freyther2013-01-151-0/+8
| | | | | | | | | | | The framerelay code is seldomly used and the socket clean ups introduced a regression. Create a testcase that will work as a user not having the right capabilities to create raw sockets. We have to make sure that this test is working even when not ran as root. The easiest way to do this is to provide our own socket implementation. This is done with dlopen/dlsym to convert the raw socket request to an UDP one.
* logging: Move the logging test from OpenBSC into libosmocoreHolger Hans Peter Freyther2012-09-271-0/+7
| | | | | Add a testcase for the logging facility. The test is coming from the OpenBSC code.
* tests: Make the gb test work with srcdir != builddirHolger Hans Peter Freyther2012-09-111-1/+1
| | | | | | | * Disable color and printing the filename of the stderr log target, update the results * Add the .ok, .err and .sh files to the extra_dist * Execute the shell script from the source directory
* GPRS BSSGP test: integrate into autotestHarald Welte2012-09-071-0/+7
| | | | we use a smalle shell script to iterate over multiple tests
* GSM 04.08: Add support for parsing CSD related bearer capabilitiesHarald Welte2012-08-241-0/+6
| | | | Also adds a test case for both encoder and decoder of this IE
* tests: Introduce a very basic gsm0808 testHolger Hans Peter Freyther2012-01-221-0/+6
| | | | | | This tests verifies the content of the GSM 08.08 messages, it does not verify the remaining headroom (which the SCCP/IPA code relies on being plenty to prepend the header). More to come in the future.
* lapdm: Create a simple test case to transmit data between both endsHolger Hans Peter Freyther2011-12-111-0/+6
| | | | | | | This is testing the establishment of two ends (BTS, MS) one is in the polling mode as used by osmo-bts. Transfer data between the two ends. The sent data is not verified though. This should be followed up soon.