Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | util.human.io: Add parse_duration() method to parse a duration string | Matthew Wild | 2023-04-07 | 1 | -0/+18 |
| | | | | | Similar logic occurs throughout various modules in the codebase. We might even want a module:get_option_duration()?? | ||||
* | integration tests: Preserve unmocked time.monotonic() | Matthew Wild | 2023-04-06 | 1 | -6/+5 |
| | | | | | | | | | | With monotonic() frozen, timers may fail to trigger. This caused problems after the new util.startup changes that moved the server-started event to a timer. The timer wouldn't trigger, the event didn't fire, and prosody would fail to daemonize. All the tests that depend on specific time behaviour are depending on wall clock time, so only mocking util.time.now() and os.time() fixes those. | ||||
* | util.fsm: New utility lib for finite state machines | Matthew Wild | 2022-03-17 | 1 | -0/+250 |
| | |||||
* | util.jsonschema: Implement 'dependentSchemas' | Kim Alvefur | 2023-03-26 | 1 | -1/+1 |
| | | | | | If this object key exists then this schema must validate against the current object. Seems useful. | ||||
* | util.jsonschema: Implement 'dependentRequired' | Kim Alvefur | 2023-03-26 | 1 | -1/+0 |
| | | | | If this field exists, then these fields must also exist. | ||||
* | util.format: Update tests for serialization changes | Kim Alvefur | 2023-03-26 | 1 | -5/+5 |
| | |||||
* | scansion: Enable mod_debug_reset during tests | Matthew Wild | 2023-03-23 | 1 | -0/+3 |
| | |||||
* | scansion: vcard_temp: Ensure at least one connection is open throughout test | Matthew Wild | 2023-03-23 | 1 | -2/+2 |
| | | | | | | | I plan to introduce logic to "reset" the server between individual tests, which is currently triggered by the lack of any connections. This is the only test that has a point where no clients are connected, and it's not necessary, so I changed it to keep the connection open for the duration of the test. | ||||
* | scansion: Fix tests failing after addition of pubsub#itemreply config field | Matthew Wild | 2023-03-23 | 4 | -0/+51 |
| | | | | This is a newly added field, and we expect to see it in these places now. | ||||
* | scansion: Fix tests failing due to lack of 'publisher' | Matthew Wild | 2023-03-23 | 1 | -1/+1 |
| | | | | | publisher is no longer included by default in broadcasts, but configured via pubsub#itemreply instead. | ||||
* | scansion: Add tests for pubsub#itemreply in PEP | Matthew Wild | 2023-03-22 | 1 | -0/+205 |
| | |||||
* | scansion: PEP notifications no longer carry 'publisher' by default | Matthew Wild | 2023-03-22 | 1 | -3/+3 |
| | | | | | | | | | | | | | Previous behaviour: - publisher was always included in PEP notifications - publisher was never included in get_items requests New behaviour: - publisher is included in both notifications and retrieval if itemreply == publisher - publisher is not ever included if itemreply ~= publisher | ||||
* | storagemanager: Add keyval+ (combined keyval + map) store type | Matthew Wild | 2022-09-27 | 1 | -0/+130 |
| | | | | | | | | This combines the two most common store types, which modules often end up opening with both interfaces separately anyway. As well as combining them, I've taken the opportunity to improve some of the method names to make them clearer. | ||||
* | util.jsonschema: Disable some further new failing tests | Kim Alvefur | 2023-03-11 | 1 | -1/+4 |
| | | | | Absolute references, weird fractions, unevaluatedProperties??? | ||||
* | util.jsonschema: Ignore some new tests in test suite | Kim Alvefur | 2023-03-11 | 1 | -1/+4 |
| | | | | These seem to be using absolute URI references, Not Yet Implemented | ||||
* | util.table: Expand table.move() tests (thanks mutation testing) | Matthew Wild | 2023-03-17 | 1 | -0/+31 |
| | |||||
* | util.ip: Tests for truncate() | Matthew Wild | 2023-03-14 | 1 | -0/+22 |
| | |||||
* | Merge 0.12->trunk | Matthew Wild | 2023-02-17 | 1 | -3/+50 |
|\ | |||||
| * | net.http.parser: Fix off-by-one error in chunk parser | Matthew Wild | 2023-02-17 | 1 | -3/+50 |
| | | |||||
* | | Merge 0.12->trunk | Matthew Wild | 2023-02-09 | 1 | -3/+3 |
|\| | |||||
| * | net.http.parser: Improve handling of responses without content-length | Matthew Wild | 2023-02-09 | 1 | -3/+3 |
| | | | | | | | | | | | | This ensures that we support responses without a content-length header, and allow streaming them through the streaming handler interface. An example of such a response would be Server-Sent Events streams. | ||||
* | | spec: Suppress some harmless luacheck warnings in tests | Matthew Wild | 2023-01-13 | 2 | -0/+3 |
| | | |||||
* | | util.paseto: Add support for v3.local tokens | Matthew Wild | 2023-01-13 | 1 | -18/+191 |
| | | |||||
* | | util.crypto: Add support for AES-256-CTR | Matthew Wild | 2023-01-13 | 1 | -0/+17 |
| | | | | | | | | This is required by PASETO v3.local | ||||
* | | util.hashes: Add HKDF-HMAC-SHA256/HKDF-HMAC-SHA384 | Matthew Wild | 2023-01-13 | 1 | -0/+38 |
| | | | | | | | | These are needed for PASETO v3.local. | ||||
* | | util.datamapper: Simplify test schema | Kim Alvefur | 2022-12-20 | 1 | -12/+12 |
| | | | | | | | | | | Don't need the function, more compact to just reference the same reference table. | ||||
* | | util.hashring: Support associating arbitrary data with nodes | Matthew Wild | 2022-12-02 | 1 | -0/+7 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this API, a 'node' is always a simple text string. Sometimes the caller may have a more complex structure representing a node, but the hash ring is really only concerned with the node's name. This API change allows :add_nodes() to take a table of `node_name = value` pairs, as well as the simple array of node names previously accepted. The 'value' of the selected node is returned as a new second result from :get_node(). If no value is passed when a node is added, it defaults to `true` (as before, but this was never previously exposed). | ||||
* | | util.hashring: tests: don't randomize order - they are written in a ↵ | Matthew Wild | 2022-12-02 | 1 | -0/+1 |
| | | | | | | | | sequential style | ||||
* | | Merge 0.12->trunk | Matthew Wild | 2022-11-04 | 1 | -0/+8 |
|\| | |||||
| * | util.json: Accept empty arrays with whitespace (fixes #1782) | Matthew Wild | 2022-11-04 | 1 | -0/+8 |
| | | |||||
* | | util.smqueue: Improve tests | Kim Alvefur | 2022-10-19 | 1 | -0/+3 |
| | | | | | | | | Result of mutation testing. One mutant remaining. | ||||
* | | util.jsonpointer: Improve tests | Kim Alvefur | 2022-10-19 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | Result of mutation testing Remaining mutants are mostly relating to the math.type() fallback. Another case being that array[#array+1] == array[#array+2] and thus doesn't matter. | ||||
* | | util.cache: Add some missing test cases | Matthew Wild | 2022-10-13 | 1 | -0/+52 |
| | | | | | | | | Found via mutation testing. | ||||
* | | util.jid: Add test for invalid domain but valid UTF-8 (thanks jonas) | Matthew Wild | 2022-10-11 | 1 | -0/+1 |
| | | |||||
* | | util.jid: Add missing test cases | Matthew Wild | 2022-10-11 | 1 | -0/+40 |
| | | | | | | | | (98% mutant score, single remaining mutant is a string.sub equivalent) | ||||
* | | util.dbuffer: Add a bunch of missing test cases | Matthew Wild | 2022-10-11 | 1 | -2/+70 |
| | | | | | | | | Found via mutation testing. | ||||
* | | Merge 0.12->trunk | Kim Alvefur | 2022-10-09 | 1 | -7/+13 |
|\| | |||||
| * | util.jsonschema: Ignore test case for JavaScript specific detail | Kim Alvefur | 2022-10-09 | 1 | -0/+1 |
| | | | | | | | | Also touching on how arrays are indistinguishable from tables in Lua | ||||
| * | util.jsonschema: Ignore some further test cases for URI references | Kim Alvefur | 2022-10-09 | 1 | -0/+5 |
| | | | | | | | | Full-URI references are not implemented | ||||
| * | util.jsonschema: Sort test cases to skip | Kim Alvefur | 2022-10-09 | 1 | -7/+7 |
| | | | | | | | | Piped trough `sort -g` | ||||
* | | util.datetime: Add some missing test cases | Matthew Wild | 2022-10-08 | 1 | -0/+15 |
| | | | | | | | | You guessed it, mutation testing. | ||||
* | | util.roles: Fix tests to use autogenerated role id | Matthew Wild | 2022-10-08 | 1 | -1/+1 |
| | | |||||
* | | util.roles: Add some more missing test cases | Matthew Wild | 2022-10-08 | 1 | -0/+18 |
| | | | | | | | | Found via mutation testing. | ||||
* | | util.promise: Fix field name in failing test (introduced in 2639e0e1c378) | Matthew Wild | 2022-10-07 | 1 | -1/+1 |
| | | |||||
* | | util.promise: Add some missing test cases (found through mutation testing) | Matthew Wild | 2022-10-07 | 1 | -0/+25 |
| | | |||||
* | | util.promise: Remove some redundant checks, add tests confirming redundancy | Matthew Wild | 2022-10-07 | 1 | -0/+21 |
| | | | | | | | | | | | | | | | | | | This lines don't appear to do anything useful, and all tests pass when they are removed. Discovered via mutation testing. I added extra tests to exercise this code, because I wasn't certain that there were no side-effects caused by removal. Everything appears to be fine, thanks to the "pending" check at the start of promise_settle(). | ||||
* | | util.roles: Add tests | Matthew Wild | 2022-10-07 | 1 | -0/+116 |
| | | |||||
* | | util.iterators: join: Work even with only a single iterator in the chain | Matthew Wild | 2022-10-06 | 1 | -0/+8 |
| | | |||||
* | | util.crypto: Fix tests | Kim Alvefur | 2022-09-30 | 1 | -3/+3 |
| | | | | | | | | | | | | Found this number in a hat. Sleepy time. Good night. | ||||
* | | util.jwt: Add support for ES512 (+ tests) | Matthew Wild | 2022-09-29 | 2 | -3/+65 |
| | |