File: testsuite.lua

package info (click to toggle)
wordgrinder 0.8-1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 2,100 kB
  • sloc: ansic: 3,880; makefile: 194; xml: 13; sh: 10
file content (138 lines) | stat: -rw-r--r-- 2,344 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
function AssertEquals(want, got)
	if (want ~= got) then
		error(
			string.format("Assertion failed: wanted %q; got %q\n",
				tostring(want), tostring(got)))
	end
end

function AssertNull(got)
	if got then
		error(
			string.format("Assertion failed: wanted null(ish); got %q\n",
				tostring(got)))
	end
end

function AssertNotNull(got)
	if not got then
		error(
			string.format("Assertion failed: wanted not null(ish); got %q\n",
				tostring(got)))
	end
end

function AssertTableEquals(want, got)
	local failed = false
	if (#want ~= #got) then
		failed = true
	else
		for k, v in ipairs(want) do
			if (want[k] ~= got[k]) then
				failed = true
				break
			end
		end
	end

	if failed then
		error(
			string.format("Assertion failed: wanted %s; got %s\n",
				TableToString(want), TableToString(got)))
	end
end

local function TableEquals(want, got)
	local wantkeys = {}
	for k, v in pairs(want) do
		wantkeys[k] = true
	end

	for k, v in pairs(got) do
		if not wantkeys[k] then
			return false
		else
			local wantv = want[k]
			if (type(v) ~= type(wantv)) then
				return false
			elseif (v ~= wantv) then
				if (type(v) ~= "table") then
					return false
				end

				if not TableEquals(wantv, v) then
					return false
				end
			end
			wantkeys[k] = nil
		end
	end

	if next(wantkeys) then
		return false
	end

	return true
end

function AssertTableAndPropertiesEquals(want, got)
	if not TableEquals(want, got) then
		error(
			string.format("Assertion failed: wanted %s; got %s\n",
				TableToString(want), TableToString(got)))
	end
end

function LoggingObject()
	local object = {}
	local result = {}
	setmetatable(object, {
		__index = function(self, k)
			local log = (result[k] or {})
			result[k] = log

			return function(...)
				table.insert(log, {...})
			end
		end
	})

	return object, result
end

function LoggingCallback()
	local log = {}

	local function cb(...)
		table.insert(log, {...})
	end

	return cb, log
end

local hidemessages =
{
	["Document upgraded"] = true
}

function AddAllowedMessage(m)
	hidemessages[m] = true
end

function ModalMessage(s1, s2)
	if not hidemessages[s1] then
		print(s1)
		print(s2)
	end
end

local oldSaveGlobalSettings = SaveGlobalSettings
function SaveGlobalSettings(f)
	if f then
		return oldSaveGlobalSettings(f)
	end
end

GlobalSettings.systemdictionary.filename = nil

return {}