binary-data
Version:
Declarative binary data encoder / decoder.
1 lines • 12.4 kB
Source Map (JSON)
{"version":3,"sources":["buffer-list.js"],"names":["BufferList","require","test","bl","buf1","Buffer","from","buf2","append","expect","length","toEqual","src","consume","offset","src1","src2","slice","get","indexOf","toBe","toThrow","buf"],"mappings":"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","file":"buffer-list.js","sourcesContent":["'use strict';\n\nconst BufferList = require('internal/buffer-list');\n\ntest('append(Buffer)', () => {\n const bl = new BufferList();\n const buf1 = Buffer.from([1, 2, 3, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 9]);\n\n bl.append(buf1);\n expect(bl.length).toEqual(buf1.length);\n\n bl.append([buf1, buf2]);\n expect(bl.length).toEqual(buf1.length * 2 + buf2.length);\n});\n\ntest('append(BufferList)', () => {\n const bl = new BufferList();\n const src = new BufferList();\n const buf1 = Buffer.from([1, 2, 3, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 9]);\n\n src.append([buf1, buf2]);\n\n bl.append(src);\n expect(bl.length).toEqual(buf1.length + buf2.length);\n\n bl.append(buf1);\n bl.append(src);\n expect(bl.length).toEqual(buf1.length * 3 + buf2.length * 2);\n});\n\ntest('consume(bytes)', () => {\n const bl = new BufferList();\n const buf1 = Buffer.from([1, 2, 3, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 9]);\n\n bl.append([buf1, buf2]);\n bl.consume(2);\n\n expect(bl.length).toEqual(buf1.length + buf2.length - 2);\n expect(bl.offset).toEqual(2);\n\n bl.consume(3);\n expect(bl.offset).toEqual(0);\n expect(bl.length).toEqual(buf2.length);\n});\n\ntest('append() after consume()', () => {\n const bl = new BufferList();\n const buf1 = Buffer.from([1, 2, 3, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 9]);\n\n bl.append(buf1);\n bl.consume(2);\n bl.append(buf2);\n\n expect(bl.offset).toEqual(0);\n expect(bl.length).toEqual(buf1.length + buf2.length - 2);\n});\n\ntest('append(BufferList) after consume()', () => {\n const bl = new BufferList();\n\n const src1 = new BufferList();\n src1.append(Buffer.from([1, 2, 3, 4, 5]));\n\n const src2 = new BufferList();\n src2.append(Buffer.from([6, 7, 8, 9]));\n\n bl.append(src1);\n bl.consume(2);\n bl.append(src2);\n\n expect(bl.offset).toEqual(0);\n expect(bl.slice()).toEqual(Buffer.from([3, 4, 5, 6, 7, 8, 9]));\n});\n\ntest('append consumed BufferList', () => {\n const bl = new BufferList();\n\n const src1 = new BufferList();\n src1.append(Buffer.from([1, 2, 3, 4, 5]));\n\n const src2 = new BufferList();\n src2.append(Buffer.from([6, 7, 8, 9]));\n src2.consume(2);\n\n bl.append(src1);\n bl.append(src2);\n\n expect(bl.offset).toEqual(0);\n expect(bl.slice()).toEqual(Buffer.from([1, 2, 3, 4, 5, 8, 9]));\n});\n\ntest('get(i)', () => {\n const bl = new BufferList();\n const buf1 = Buffer.from([1, 2, 3, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 9]);\n\n bl.append([buf1, buf2]);\n\n expect(bl.get(0)).toEqual(buf1[0]);\n expect(bl.get(bl.length - 1)).toEqual(buf2[3]);\n expect(bl.get(-1)).toEqual(buf2[3]);\n expect(bl.get(bl.length + 1)).toEqual(buf1[1]);\n\n bl.consume(2);\n\n expect(bl.get(0)).toEqual(buf1[2]);\n expect(bl.get(bl.length - 1)).toEqual(buf2[3]);\n expect(bl.get(-1)).toEqual(buf2[3]);\n expect(bl.get(bl.length + 1)).toEqual(buf1[3]);\n});\n\ntest('indexOf(i)', () => {\n const bl = new BufferList();\n const buf1 = Buffer.from([1, 2, 3, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 0]);\n\n bl.append([buf1, buf2]);\n\n expect(bl.indexOf(1)).toBe(0);\n expect(bl.indexOf(3)).toBe(2);\n expect(bl.indexOf(5)).toBe(4);\n expect(bl.indexOf(8)).toBe(7);\n expect(bl.indexOf(0)).toBe(8);\n\n bl.consume(2);\n expect(bl.indexOf(5)).toBe(2);\n expect(bl.indexOf(8)).toBe(5);\n expect(bl.indexOf(0)).toBe(6);\n\n expect(() => bl.indexOf(-1)).toThrow('Invalid argument 1');\n expect(() => bl.indexOf(300)).toThrow('Invalid argument 1');\n expect(() => bl.indexOf(null)).toThrow('Invalid argument 1');\n});\n\ntest('indexOf(i, offset)', () => {\n const bl = new BufferList();\n const buf1 = Buffer.from([1, 2, 3, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 9]);\n\n bl.append([buf1, buf2]);\n\n expect(bl.indexOf(3, 2)).toBe(2);\n expect(bl.indexOf(8, 2)).toBe(7);\n expect(bl.indexOf(8, 6)).toBe(7);\n expect(bl.indexOf(9, 2)).toBe(8);\n expect(bl.indexOf(9, 6)).toBe(8);\n\n bl.consume(2);\n expect(bl.indexOf(8, 2)).toBe(5);\n expect(bl.indexOf(8, 4)).toBe(5);\n});\n\ntest('indexOf(i, offset) multiple', () => {\n const bl = new BufferList();\n const buf1 = Buffer.from([1, 2, 0, 4, 5]);\n const buf2 = Buffer.from([6, 7, 8, 0]);\n\n bl.append([buf1, buf2]);\n\n expect(bl.indexOf(0, 2)).toBe(2);\n expect(bl.indexOf(0, 6)).toBe(8);\n\n bl.consume(2);\n expect(bl.indexOf(0, 0)).toBe(0);\n expect(bl.indexOf(0, 4)).toBe(6);\n});\n\ntest('indexOf() index - offset = -1', () => {\n const buf = Buffer.from([1, 2, 3, 4, 5, 6, 0, 7, 8, 9, 10, 64, 21, 0]);\n const bl = new BufferList();\n\n bl.append(buf);\n\n expect(bl.indexOf(0)).toBe(6);\n bl.consume(7);\n expect(bl.indexOf(0)).toBe(6);\n});\n"]}