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