spec/util_bitcompat_spec.lua
author Kim Alvefur <zash@zash.se>
Sat, 23 Mar 2024 20:48:19 +0100
changeset 13465 c673ff1075bd
parent 13453 9912baa541c0
permissions -rw-r--r--
mod_posix: Move everything to util.startup This allows greater control over the order of events. Notably, the internal ordering between daemonization, initialization of libunbound and setup of signal handling is sensitive. libunbound starts a separate thread for processing DNS requests. If this thread is started before signal handling has been set up, it will not inherit the signal handlers and instead behave as it would have before signal handlers were set up, i.e. cause the whole process to immediately exit. libunbound is usually initialized on the first DNS request, usually triggered by an outgoing s2s connection attempt. If daemonization happens before signals have been set up, signals may not be processed at all.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12370
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);
13453
9912baa541c0 util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents: 12370
diff changeset
    27
9912baa541c0 util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents: 12370
diff changeset
    28
	it("bnot works", function ()
9912baa541c0 util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents: 12370
diff changeset
    29
		assert.equal(0x0000FF00, bit.band(0xFFFFFFFF, bit.bnot(0xFFFF00FF)));
9912baa541c0 util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents: 12370
diff changeset
    30
	end);
12370
c640717e01ca util.bitcompat: Add some simple tests
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    31
end);