Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 15:41:05 +0100] rev 12774
util.jid: Add test for invalid domain but valid UTF-8 (thanks jonas)
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 13:35:09 +0100] rev 12773
util.jid: Simplify boolean logic in conditionals
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 13:33:19 +0100] rev 12772
util.jid: Remove redundant check from split() (micro-optimization?)
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 13:31:47 +0100] rev 12771
util.jid: Add missing test cases
(98% mutant score, single remaining mutant is a string.sub equivalent)
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 13:12:26 +0100] rev 12770
.luacheckrc: Add test_mutants.sh.lua to the ignore list
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 11:53:48 +0100] rev 12769
tools: Add initial mutation testing script
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 11:38:32 +0100] rev 12768
util.dbuffer: Add a bunch of missing test cases
Found via mutation testing.
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 11:37:55 +0100] rev 12767
util.dbuffer: Add efficient shortcuts for discard() in certain cases
If the buffer is already empty, nothing to do. If we're throwing away the
whole buffer, we can just empty it and avoid read_chunk() (which in turn
may collapse()). These shortcuts are much more efficient.
Matthew Wild <mwild1@gmail.com> [Tue, 11 Oct 2022 11:34:47 +0100] rev 12766
util.dbuffer: Remove redundant code (read_chunk() cannot fail at this point)
Kim Alvefur <zash@zash.se> [Sun, 09 Oct 2022 15:50:25 +0200] rev 12765
Merge 0.12->trunk
Kim Alvefur <zash@zash.se> [Sun, 09 Oct 2022 15:42:25 +0200] rev 12764
util.jsonschema: Use same integer/float logic on Lua 5.2 and 5.3
Fixes test case type.json:0:1 covering treatment of 1.0 as an integer
according to the JSON definition
Kim Alvefur <zash@zash.se> [Sun, 09 Oct 2022 15:38:36 +0200] rev 12763
util.jsonschema: Fix Lua 5.2 integer compat
math.type() is unavailable before Lua 5.3 so this should use the compat
function added at the top
Kim Alvefur <zash@zash.se> [Sun, 09 Oct 2022 15:24:30 +0200] rev 12762
util.jsonschema: Ignore test case for JavaScript specific detail
Also touching on how arrays are indistinguishable from tables in Lua
Kim Alvefur <zash@zash.se> [Sun, 09 Oct 2022 15:24:26 +0200] rev 12761
util.jsonschema: Ignore some further test cases for URI references
Full-URI references are not implemented
Kim Alvefur <zash@zash.se> [Sun, 09 Oct 2022 14:58:07 +0200] rev 12760
util.jsonschema: Sort test cases to skip
Piped trough `sort -g`
Matthew Wild <mwild1@gmail.com> [Sat, 08 Oct 2022 23:55:22 +0100] rev 12759
util.datetime: Add some missing test cases
You guessed it, mutation testing.
Matthew Wild <mwild1@gmail.com> [Sat, 08 Oct 2022 20:39:14 +0100] rev 12758
util.roles: Fix tests to use autogenerated role id
Matthew Wild <mwild1@gmail.com> [Sat, 08 Oct 2022 20:33:01 +0100] rev 12757
util.roles: Add some more missing test cases
Found via mutation testing.
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 18:04:30 +0100] rev 12756
util.promise: Fix field name in failing test (introduced in 2639e0e1c378)
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:56:38 +0100] rev 12755
util.promise: Add some missing test cases (found through mutation testing)
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:45:23 +0100] rev 12754
util.promise: Remove line that was supposed to be removed in eb9814372c54
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:43:26 +0100] rev 12753
util.promise: Remove some redundant checks, add tests confirming redundancy
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().
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:01:35 +0100] rev 12752
util.roles: Add a :policies() method to iterate through available policies
We don't expose the policies directly, to force people to go through :may().
However, there are times when we really just need to know what policies a
role has inside it (e.g. for reporting or debugging purposes).
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 16:58:52 +0100] rev 12751
util.roles: Add tests
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 16:58:08 +0100] rev 12750
util.roles: Return nil if the role has no explicit policy (fixes inheritance)
Previously, if the first inherited role had no opinion, it returned false and
prevented further consultation of other inherited roles.
This bug was found thanks to the implementation of missing test cases
identified through mutation testing.
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 11:35:56 +0100] rev 12749
mod_smacks: Change boolean attribute from '1' to 'true' for compatibility
Conversations 2.10.10 and earlier expect this to be literally 'true' and don't
recognise '1'. This leads to it not attempting resumption with Prosody at all
since this change was introduced in 36ba170c4fd0.
Thanks to Zash for noticing, debugging and diagnosing this issue.
This issue is fixed in Conversations commit 052c58f3 (unreleased at the time
of writing).
Matthew Wild <mwild1@gmail.com> [Thu, 06 Oct 2022 18:34:40 +0100] rev 12748
util.iterators: join: Work even with only a single iterator in the chain
Matthew Wild <mwild1@gmail.com> [Thu, 06 Oct 2022 16:00:39 +0100] rev 12747
mod_tokenauth: Remove expired tokens from storage
Matthew Wild <mwild1@gmail.com> [Thu, 06 Oct 2022 15:59:07 +0100] rev 12746
mod_tokenauth: Invalidate tokens issued before most recent password change
This is a security improvement, to ensure that sessions authenticated using a
token (note: not currently possible in stock Prosody) are invalidated just
like password-authenticated sessions are.
Matthew Wild <mwild1@gmail.com> [Thu, 06 Oct 2022 11:12:57 +0100] rev 12745
prosodyctl: check turn: More clearly indicate the error is from TURN server