spec/util_table_spec.lua
author Kim Alvefur <zash@zash.se>
Sat, 23 Mar 2024 20:48:19 +0100
changeset 13465 c673ff1075bd
parent 12946 54756e3a54b9
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:
9730
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
local u_table = require "util.table";
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
describe("util.table", function ()
9731
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9730
diff changeset
     3
	describe("create()", function ()
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9730
diff changeset
     4
		it("works", function ()
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9730
diff changeset
     5
			-- Can't test the allocated sizes of the table, so what you gonna do?
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9730
diff changeset
     6
			assert.is.table(u_table.create(1,1));
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9730
diff changeset
     7
		end);
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9730
diff changeset
     8
	end);
9a35ae935390 util.table: Add test for create()
Kim Alvefur <zash@zash.se>
parents: 9730
diff changeset
     9
9730
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
	describe("pack()", function ()
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
		it("works", function ()
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
			assert.same({ "lorem", "ipsum", "dolor", "sit", "amet", n = 5 }, u_table.pack("lorem", "ipsum", "dolor", "sit", "amet"));
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
		end);
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
	end);
12408
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    15
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    16
	describe("move()", function ()
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    17
		it("works", function ()
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    18
			local t1 = { "apple", "banana", "carrot" };
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    19
			local t2 = { "cat", "donkey", "elephant" };
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    20
			local t3 = {};
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    21
			u_table.move(t1, 1, 3, 1, t3);
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    22
			u_table.move(t2, 1, 3, 3, t3);
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    23
			assert.same({ "apple", "banana", "cat", "donkey", "elephant" }, t3);
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    24
		end);
12946
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    25
		it("supports overlapping regions", function ()
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    26
			do
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    27
				local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" };
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    28
				u_table.move(t1, 1, 3, 3);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    29
				assert.same({ "apple", "banana", "apple", "banana", "carrot", "fig", "grapefruit" }, t1);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    30
			end
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    31
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    32
			do
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    33
				local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" };
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    34
				u_table.move(t1, 1, 3, 2);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    35
				assert.same({ "apple", "apple", "banana", "carrot", "endive", "fig", "grapefruit" }, t1);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    36
			end
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    37
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    38
			do
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    39
				local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" };
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    40
				u_table.move(t1, 3, 5, 2);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    41
				assert.same({ "apple", "carrot", "date", "endive", "endive", "fig", "grapefruit" }, t1);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    42
			end
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    43
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    44
			do
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    45
				local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" };
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    46
				u_table.move(t1, 3, 5, 6);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    47
				assert.same({ "apple", "banana", "carrot", "date", "endive", "carrot", "date", "endive" }, t1);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    48
			end
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    49
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    50
			do
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    51
				local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" };
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    52
				u_table.move(t1, 3, 1, 3);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    53
				assert.same({ "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" }, t1);
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    54
			end
54756e3a54b9 util.table: Expand table.move() tests (thanks mutation testing)
Matthew Wild <mwild1@gmail.com>
parents: 12408
diff changeset
    55
		end);
12408
082f38e9de64 util.table: tests: Tests for table.move()
Matthew Wild <mwild1@gmail.com>
parents: 9731
diff changeset
    56
	end);
9730
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    57
end);
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    58
a726668b3c48 util.table: Add test for pack()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    59