util.dbuffer: Add efficient shortcuts for discard() in certain cases
If the buffer is already empty, nothing to do. If we're throwing away the
whole buffer, we can just empty it and avoid read_chunk() (which in turn
may collapse()). These shortcuts are much more efficient.
describe("util.bitcompat", function ()
-- bitcompat will pass through to an appropriate implementation. Our
-- goal here is to check that whatever implementation is in use passes
-- these basic sanity checks.
local bit = require "util.bitcompat";
it("bor works", function ()
assert.equal(0xF0FF, bit.bor(0xF000, 0x00F0, 0x000F));
end);
it("band works", function ()
assert.equal(0x0F, bit.band(0xFF, 0x1F, 0x0F));
end);
it("bxor works", function ()
assert.equal(0x13, bit.bxor(0x10, 0x0F, 0x0C));
end);
it("rshift works", function ()
assert.equal(0x0F, bit.rshift(0xFF, 4));
end);
it("lshift works", function ()
assert.equal(0xFF00, bit.lshift(0xFF, 8));
end);
end);