Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / lru-cache / test / memory-leak.js
1 #!/usr/bin/env node --expose_gc
2
3 var weak = require('weak');
4 var test = require('tap').test
5 var LRU = require('../')
6 var l = new LRU({ max: 10 })
7 var refs = 0
8 function X() {
9   refs ++
10   weak(this, deref)
11 }
12
13 function deref() {
14   refs --
15 }
16
17 test('no leaks', function (t) {
18   // fill up the cache
19   for (var i = 0; i < 100; i++) {
20     l.set(i, new X);
21     // throw some gets in there, too.
22     if (i % 2 === 0)
23       l.get(i / 2)
24   }
25
26   gc()
27
28   var start = process.memoryUsage()
29
30   // capture the memory
31   var startRefs = refs
32
33   // do it again, but more
34   for (var i = 0; i < 10000; i++) {
35     l.set(i, new X);
36     // throw some gets in there, too.
37     if (i % 2 === 0)
38       l.get(i / 2)
39   }
40
41   gc()
42
43   var end = process.memoryUsage()
44   t.equal(refs, startRefs, 'no leaky refs')
45
46   console.error('start: %j\n' +
47                 'end:   %j', start, end);
48   t.pass();
49   t.end();
50 })