summaryrefslogtreecommitdiffstats
path: root/tests/utils/utils_test.c
Commit message (Collapse)AuthorAgeFilesLines
* utils_test: fix isqrt_test calculation rangeNeels Hofmeyr2018-07-201-1/+1
| | | | | | | | | | | | | | | | Multiplying the uint16_t x by itself seems to default to be calculated in int32_t range, while it obviously needs uint32_t. This causes sporadic sanitizer barfs: Testing integer square-root utils_test.c:445:18: runtime error: signed integer overflow: 60369 * 60369 cannot be represented in type 'int' The final result is still correct, because it is in fact interpreted as uint32_t. Cast to uint32_t to make sure the sanitizer doesn't complain. Related: OS#3407 Change-Id: I83c14e38deaa466d977ee43c9420534ed90f090d
* Add osmo_isqrt32() to compute 32bit integer square rootHarald Welte2018-06-061-0/+22
| | | | Change-Id: I2b96db6e037e72e92317fec874877e473a1cf909
* add osmo_quote_str(),osmo_quote_str_buf() and testNeels Hofmeyr2018-04-091-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rationale: with osmo_escape_str(), you get the escaped contents of the string, but not so graceful handling of NULL strings. The caller needs to quote it, and for NULL strings not quote it. osmo_quote_str() is like osmo_escape_str() but always quotes a non-NULL string, and for a NULL string returns a literal NULL, i.e. it should (tm) give the exact C representation of a string. That's useful in testing, to show exactly what char* situation we have, without jumping through hoops like if (str) printf("\"%s\"", osmo_escape_str(str, -1)); else printf("NULL"); Copy the unit test for osmo_escape_str() and adjust. To indicate that the double quotes are returned by osmo_quote_str(), use single quotes in the test printf()s. I considered allowing to pick the quoting characters by further arguments, but that complicates things: we'd need to escape the quoting characters. Just hardcode double quotes like C. Change-Id: I6f1b3709b32c23fc52f70ad9ecc9439c62b02a12
* tests: utils_test: Fix test failure when compiling with -O0Pau Espin Pedrol2018-02-081-0/+1
| | | | | | | | | It seems with default flags in_buf was being memzeroed by the compiler. When compiling with -O0, that's not the case anymore and printf prints after first 16 bytes, printing extra garbage which doesn't match the expected output. Change-Id: I736c1e4d625f647d3bb794fa717256e9dbf36e87
* utils: add osmo_escape_str()Neels Hofmeyr2017-12-181-0/+48
| | | | | | | | | | | | | To report invalid characters in identifiers, it is desirable to escape any weird characters. Otherwise we might print stray newlines or control characters in the log output. ctrl_test.c already uses a print_escaped() function, which will be replaced by osmo_escape_str() in a subsequent patch. control_cmd.c will use osmo_escape_str() to log invalid identifiers. Change-Id: Ic685eb63dead3967d01aaa4f1e9899e5461ca49a
* Add unit tests for bcd2char and char2bcd conversionHarald Welte2017-10-271-0/+43
| | | | | | | | Sounds stupid, but we actually didn't support hex nibbles in one of the two directions of the conversion, so let's make sure we test for this. Change-Id: I8445da54cc4f9b1cd64f286c2b238f4f7c87accb
* utils: add osmo_is_hexstr(), add unit testNeels Hofmeyr2017-10-091-0/+63
| | | | | | Will be used by OsmoHLR to validate VTY and CTRL input. Change-Id: Idf75946eb0a84e145adad13fc7c78bb7a267aa0a
* osmo_hexparse: allow whitespace in parsed string, add ws testNeels Hofmeyr2017-02-141-0/+25
| | | | | | | | This is particularly useful for hex dumps containing spaces found in a log (e.g. osmo-nitb authentication rand token), which can now be passed in quotes to osmo-auc-gen without having to edit the spaces away. Change-Id: Ib7af07f674a2d26c8569acdee98835fb3e626c45
* utils: add hexparse testNeels Hofmeyr2017-02-141-0/+98
| | | | Change-Id: Ic95ab00b57d54905a235109561c00419161cf4bc
* ipa: Properly parse LV stream of a ID_GET requestHolger Hans Peter Freyther2015-06-021-0/+61
| | | | | | | | For some reason the structure is closer to be a LV (length and value). The value is actually a tag but it is counted inside the length. Introduce an overload of the parse function to provide an offset for the length. This will be taken from the returned length.
* utils: Add a simple testcase for osmo_hexdumpHolger Hans Peter Freyther2014-01-021-0/+47
This code makes a simple dump and tests for the corner case