| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- #!/usr/bin/env node --expose_gc
 
- var weak = require('weak');
 
- var test = require('tap').test
 
- var LRU = require('../')
 
- var l = new LRU({ max: 10 })
 
- var refs = 0
 
- function X() {
 
-   refs ++
 
-   weak(this, deref)
 
- }
 
- function deref() {
 
-   refs --
 
- }
 
- test('no leaks', function (t) {
 
-   // fill up the cache
 
-   for (var i = 0; i < 100; i++) {
 
-     l.set(i, new X);
 
-     // throw some gets in there, too.
 
-     if (i % 2 === 0)
 
-       l.get(i / 2)
 
-   }
 
-   gc()
 
-   var start = process.memoryUsage()
 
-   // capture the memory
 
-   var startRefs = refs
 
-   // do it again, but more
 
-   for (var i = 0; i < 10000; i++) {
 
-     l.set(i, new X);
 
-     // throw some gets in there, too.
 
-     if (i % 2 === 0)
 
-       l.get(i / 2)
 
-   }
 
-   gc()
 
-   var end = process.memoryUsage()
 
-   t.equal(refs, startRefs, 'no leaky refs')
 
-   console.error('start: %j\n' +
 
-                 'end:   %j', start, end);
 
-   t.pass();
 
-   t.end();
 
- })
 
 
  |