mod_smacks: Limit queue memory consumption using new util
This brings back the queue size limit that was once added, then removed
because destroying the session when reaching the limit was not great.
Instead, the queue wraps and overwrites the oldest unacked stanza on the
assumption that it will probably be acked anyway and thus does not need
to be delivered. If those discarded stanzas turn out to be needed on
resumption then the resumption fails.
local sep = package.config:match("(.)\n");
describe("util.paths", function ()
local paths = require "util.paths";
describe("#join()", function ()
it("returns single component as-is", function ()
assert.equal("foo", paths.join("foo"));
end);
it("joins paths", function ()
assert.equal("foo"..sep.."bar", paths.join("foo", "bar"))
end);
it("joins longer paths", function ()
assert.equal("foo"..sep.."bar"..sep.."baz", paths.join("foo", "bar", "baz"))
end);
it("joins even longer paths", function ()
assert.equal("foo"..sep.."bar"..sep.."baz"..sep.."moo", paths.join("foo", "bar", "baz", "moo"))
end);
end)
describe("#glob_to_pattern()", function ()
it("works", function ()
assert.equal("^thing.%..*$", paths.glob_to_pattern("thing?.*"))
end);
end)
describe("#resolve_relative_path()", function ()
it("returns absolute paths as-is", function ()
if sep == "/" then
assert.equal("/tmp/path", paths.resolve_relative_path("/run", "/tmp/path"));
elseif sep == "\\" then
assert.equal("C:\\Program Files", paths.resolve_relative_path("A:\\", "C:\\Program Files"));
end
end);
it("resolves relative paths", function ()
if sep == "/" then
assert.equal("/run/path", paths.resolve_relative_path("/run", "path"));
end
end);
end)
end)