File

spec/util_paths_spec.lua @ 13554:902d25cd0557

mod_s2s: Limit size of outgoing stanza queue This queue is used to buffer stanzas while waiting for an outgoing s2s connection to be established. Limit it to prevent excessive memory usage. Default chosen to approximate how many average stanzas fits in the server_epoll default max_send_buffer_size of 32 MiB Returns a custom error instead of the default core.stanza_router "Communication with remote domains is not enabled" from is sent back, which does not describe what is happening here. Closes #1106
author Kim Alvefur <zash@zash.se>
date Sat, 09 Nov 2024 16:47:14 +0100
parent 11182:bab8d01e139a
line wrap: on
line source

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)