• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Flags: --expose-internals
2'use strict';
3
4require('../common');
5
6const assert = require('assert');
7const FixedQueue = require('internal/fixed_queue');
8
9{
10  const queue = new FixedQueue();
11  assert.strictEqual(queue.head, queue.tail);
12  assert(queue.isEmpty());
13  queue.push('a');
14  assert(!queue.isEmpty());
15  assert.strictEqual(queue.shift(), 'a');
16  assert.strictEqual(queue.shift(), null);
17}
18
19{
20  const queue = new FixedQueue();
21  for (let i = 0; i < 2047; i++)
22    queue.push('a');
23  assert(queue.head.isFull());
24  queue.push('a');
25  assert(!queue.head.isFull());
26
27  assert.notStrictEqual(queue.head, queue.tail);
28  for (let i = 0; i < 2047; i++)
29    assert.strictEqual(queue.shift(), 'a');
30  assert.strictEqual(queue.head, queue.tail);
31  assert(!queue.isEmpty());
32  assert.strictEqual(queue.shift(), 'a');
33  assert(queue.isEmpty());
34}
35