File

spec/util_time_spec.lua @ 12795:87424cbedc55

util.hashring: Support associating arbitrary data with nodes In this API, a 'node' is always a simple text string. Sometimes the caller may have a more complex structure representing a node, but the hash ring is really only concerned with the node's name. This API change allows :add_nodes() to take a table of `node_name = value` pairs, as well as the simple array of node names previously accepted. The 'value' of the selected node is returned as a new second result from :get_node(). If no value is passed when a node is added, it defaults to `true` (as before, but this was never previously exposed).
author Matthew Wild <mwild1@gmail.com>
date Fri, 02 Dec 2022 20:32:36 +0000
parent 9193:aba99b6539f5
line wrap: on
line source

describe("util.time", function ()
	local time;
	setup(function ()
		time = require "util.time";
	end);
	describe("now()", function ()
		it("exists", function ()
			assert.is_function(time.now);
		end);
		it("returns a number", function ()
			assert.is_number(time.now());
		end);
	end);
	describe("monotonic()", function ()
		it("exists", function ()
			assert.is_function(time.monotonic);
		end);
		it("returns a number", function ()
			assert.is_number(time.monotonic());
		end);
		it("time goes in one direction", function ()
			local a = time.monotonic();
			local b	= time.monotonic();
			assert.truthy(a <= b);
		end);
	end);
end);