Mercurial > prosody-hg
annotate spec/util_bitcompat_spec.lua @ 13903:4af7d00a2966
MUC: occupant: refactor to allow storing more than just presence for a session
Previously a "session" (i.e. a full JID joined to a MUC) was stored as simply
a mapping of full JIDs->presence, contained within occupant objects (an
occupant object groups all sessions behind a certain nick in the MUC).
To enable developing GC3 and other features, it would be helpful if we can
store additional metadata when a client joins a room, for example, whether it
has opted out of receiving presence stanzas (a GC3 feature).
This changes the internal data structure, which shouldn't be used outside this
module, it adds a new :get_session() method, and modifies the :each_session()
iterator to return the session as an additional result (which should be
backwards compatible with code that just consumes the existing two results).
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 11 Nov 2024 12:47:01 +0000 |
| parents | 9912baa541c0 |
| children |
| rev | line source |
|---|---|
|
12366
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 describe("util.bitcompat", function () |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 -- bitcompat will pass through to an appropriate implementation. Our |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 -- goal here is to check that whatever implementation is in use passes |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 -- these basic sanity checks. |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 local bit = require "util.bitcompat"; |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 it("bor works", function () |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 assert.equal(0xF0FF, bit.bor(0xF000, 0x00F0, 0x000F)); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 end); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 it("band works", function () |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 assert.equal(0x0F, bit.band(0xFF, 0x1F, 0x0F)); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 end); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 it("bxor works", function () |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 assert.equal(0x13, bit.bxor(0x10, 0x0F, 0x0C)); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 end); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 it("rshift works", function () |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 assert.equal(0x0F, bit.rshift(0xFF, 4)); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 end); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 it("lshift works", function () |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 assert.equal(0xFF00, bit.lshift(0xFF, 8)); |
|
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 end); |
|
13449
9912baa541c0
util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents:
12366
diff
changeset
|
27 |
|
9912baa541c0
util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents:
12366
diff
changeset
|
28 it("bnot works", function () |
|
9912baa541c0
util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents:
12366
diff
changeset
|
29 assert.equal(0x0000FF00, bit.band(0xFFFFFFFF, bit.bnot(0xFFFF00FF))); |
|
9912baa541c0
util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents:
12366
diff
changeset
|
30 end); |
|
12366
c640717e01ca
util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 end); |
