[Pkg-javascript-commits] [node-abstract-leveldown] 03/08: Imported Upstream version 2.2.2

Andrew Kelley andrewrk-guest at moszumanska.debian.org
Fri May 15 22:04:40 UTC 2015


This is an automated email from the git hooks/post-receive script.

andrewrk-guest pushed a commit to branch master
in repository node-abstract-leveldown.

commit f2470bae9634560e2b5e9cd35ff969144c419a3c
Author: Andrew Kelley <superjoe30 at gmail.com>
Date:   Fri May 15 05:19:03 2015 +0000

    Imported Upstream version 2.2.2
---
 .travis.yml                       |  6 ++-
 README.md                         | 11 +++--
 abstract/approximate-size-test.js | 12 ++---
 abstract/batch-test.js            | 38 +++++++++++-----
 abstract/chained-batch-test.js    |  6 +--
 abstract/close-test.js            |  4 +-
 abstract/del-test.js              |  6 +--
 abstract/get-test.js              | 24 ++++++----
 abstract/iterator-test.js         | 68 ++++++++++++++---------------
 abstract/open-test.js             | 14 +++---
 abstract/put-get-del-test.js      |  8 ++--
 abstract/put-test.js              | 32 +++++++++++---
 abstract/ranges-test.js           | 72 +++++++++++++++---------------
 package.json                      | 21 ++++-----
 test.js                           | 92 +++++++++++++++++++--------------------
 testCommon.js                     |  4 +-
 16 files changed, 237 insertions(+), 181 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index fe3f4eb..4fd069e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,10 +1,14 @@
 language: node_js
+before_install: npm install npm -g
 node_js:
-  - 0.8
+  - "0.8"
   - "0.10"
+  - "0.12"
+  - "iojs"
 branches:
   only:
     - master
 notifications:
   email:
     - rod at vagg.org
+    - ralphtheninja at riseup.net
diff --git a/README.md b/README.md
index cae74f9..670d99d 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,11 @@
-# Abstract LevelDOWN [![Build Status](https://secure.travis-ci.org/rvagg/abstract-leveldown.png)](http://travis-ci.org/rvagg/abstract-leveldown)
+# Abstract LevelDOWN [![Build Status](https://secure.travis-ci.org/Level/abstract-leveldown.png)](http://travis-ci.org/Level/abstract-leveldown)
+
+<img alt="LevelDB Logo" height="100" src="http://leveldb.org/img/logo.svg">
 
 [![NPM](https://nodei.co/npm/abstract-leveldown.png?downloads=true&downloadRank=true)](https://nodei.co/npm/abstract-leveldown/)
 [![NPM](https://nodei.co/npm-dl/abstract-leveldown.png?months=6&height=3)](https://nodei.co/npm/abstract-leveldown/)
 
-An abstract prototype matching the **[LevelDOWN](https://github.com/rvagg/node-leveldown/)** API. Useful for extending **[LevelUP](https://github.com/rvagg/node-levelup)** functionality by providing a replacement to LevelDOWN.
+An abstract prototype matching the **[LevelDOWN](https://github.com/level/leveldown/)** API. Useful for extending **[LevelUP](https://github.com/level/levelup)** functionality by providing a replacement to LevelDOWN.
 
 As of version 0.7, LevelUP allows you to pass a `'db'` option when you create a new instance. This will override the default LevelDOWN store with a LevelDOWN API compatible object.
 
@@ -128,7 +130,7 @@ Abstract LevelDOWN is an **OPEN Open Source Project**. This means that:
 
 > Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
 
-See the [CONTRIBUTING.md](https://github.com/rvagg/node-levelup/blob/master/CONTRIBUTING.md) file for more details.
+See the [CONTRIBUTING.md](https://github.com/level/levelup/blob/master/CONTRIBUTING.md) file for more details.
 
 ### Contributors
 
@@ -148,12 +150,13 @@ Abstract LevelDOWN is only possible due to the excellent work of the following c
 <tr><th align="left">Matteo Collina</th><td><a href="https://github.com/mcollina">GitHub/mcollina</a></td><td><a href="https://twitter.com/matteocollina">Twitter/@matteocollina</a></td></tr>
 <tr><th align="left">Pedro Teixeira</th><td><a href="https://github.com/pgte">GitHub/pgte</a></td><td><a href="https://twitter.com/pgte">Twitter/@pgte</a></td></tr>
 <tr><th align="left">James Halliday</th><td><a href="https://github.com/substack">GitHub/substack</a></td><td><a href="https://twitter.com/substack">Twitter/@substack</a></td></tr>
+<tr><th align="left">Thomas Watson Steen</th><td><a href="https://github.com/watson">GitHub/watson</a></td><td><a href="https://twitter.com/wa7son">Twitter/@wa7son</a></td></tr>
 </tbody></table>
 
 <a name="license"></a>
 License & copyright
 -------------------
 
-Copyright (c) 2012-2014 Abstract LevelDOWN contributors (listed above).
+Copyright (c) 2012-2015 Abstract LevelDOWN contributors (listed above).
 
 Abstract LevelDOWN is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details.
diff --git a/abstract/approximate-size-test.js b/abstract/approximate-size-test.js
index b67d428..beb6369 100644
--- a/abstract/approximate-size-test.js
+++ b/abstract/approximate-size-test.js
@@ -75,20 +75,20 @@ module.exports.approximateSize = function (test) {
           return { type: 'put', key: 'foo' + i, value: data }
         })
       , function (err) {
-          t.notOk(err, 'no error')
+          t.error(err)
 
           // cycle open/close to ensure a pack to .sst
 
           db.close(function (err) {
-            t.notOk(err, 'no error')
+            t.error(err)
 
             db.open(function (err) {
-              t.notOk(err, 'no error')
+              t.error(err)
 
               db.approximateSize('!', '~', function (err, size) {
-                t.notOk(err, 'no error')
+                t.error(err)
 
-                t.type(size, 'number')
+                t.equal(typeof size, 'number')
                 t.ok(
                     size > 40000 // account for snappy compression
                                  // original would be ~100000
@@ -96,7 +96,7 @@ module.exports.approximateSize = function (test) {
                 )
 
                 db.close(function (err) {
-                  t.notOk(err, 'no error')
+                  t.error(err)
                   t.end()
                 })
               })
diff --git a/abstract/batch-test.js b/abstract/batch-test.js
index 085b794..a178dc1 100644
--- a/abstract/batch-test.js
+++ b/abstract/batch-test.js
@@ -18,14 +18,14 @@ module.exports.args = function (test) {
 
   test('test batch() with missing `value`', function (t) {
     db.batch([{ type: 'put', key: 'foo1' }], function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.end()
     })
   })
 
   test('test batch() with null `value`', function (t) {
     db.batch([{ type: 'put', key: 'foo1', value: null }], function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.end()
     })
   })
@@ -80,7 +80,7 @@ module.exports.args = function (test) {
 
   test('test batch() with null options', function (t) {
     db.batch([], null, function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.end()
     })
   })
@@ -89,17 +89,17 @@ module.exports.args = function (test) {
 module.exports.batch = function (test) {
   test('test batch() with empty array', function (t) {
     db.batch([], function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.end()
     })
   })
 
   test('test simple batch()', function (t) {
     db.batch([{ type: 'put', key: 'foo', value: 'bar' }], function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
 
       db.get('foo', function (err, value) {
-        t.notOk(err, 'no error')
+        t.error(err)
         var result
         if (isTypedArray(value)) {
           result = String.fromCharCode.apply(null, new Uint16Array(value))
@@ -120,7 +120,7 @@ module.exports.batch = function (test) {
       , { type: 'put', key: 'foobatch3', value: 'bar3' }
       , { type: 'del', key: 'foobatch2' }
     ], function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
 
       var r = 0
         , done = function () {
@@ -129,7 +129,7 @@ module.exports.batch = function (test) {
           }
 
       db.get('foobatch1', function (err, value) {
-        t.notOk(err, 'no error')
+        t.error(err)
         var result
         if (isTypedArray(value)) {
           result = String.fromCharCode.apply(null, new Uint16Array(value))
@@ -149,7 +149,7 @@ module.exports.batch = function (test) {
       })
 
       db.get('foobatch3', function (err, value) {
-        t.notOk(err, 'no error')
+        t.error(err)
         var result
         if (isTypedArray(value)) {
           result = String.fromCharCode.apply(null, new Uint16Array(value))
@@ -163,7 +163,24 @@ module.exports.batch = function (test) {
     })
   })
 }
-
+module.exports.atomic = function (test) {
+  test('test multiple batch()', function (t) {
+    t.plan(3)
+    db.batch([
+        { type: 'put', key: 'foobah1', value: 'bar1' }
+      , { type: 'put', value: 'bar2' }
+      , { type: 'put', key: 'foobah3', value: 'bar3' }
+    ], function (err) {
+      t.ok(err, 'should error')
+      db.get('foobah1', function (err) {
+        t.ok(err, 'should not be found')
+      })
+      db.get('foobah3', function (err) {
+        t.ok(err, 'should not be found')
+      })
+   })
+  })
+}
 module.exports.tearDown = function (test, testCommon) {
   test('tearDown', function (t) {
     db.close(testCommon.tearDown.bind(null, t))
@@ -174,5 +191,6 @@ module.exports.all = function (leveldown, test, testCommon) {
   module.exports.setUp(leveldown, test, testCommon)
   module.exports.args(test)
   module.exports.batch(test)
+  module.exports.atomic(test)
   module.exports.tearDown(test, testCommon)
 }
diff --git a/abstract/chained-batch-test.js b/abstract/chained-batch-test.js
index ab072af..d3a3223 100644
--- a/abstract/chained-batch-test.js
+++ b/abstract/chained-batch-test.js
@@ -163,7 +163,7 @@ module.exports.batch = function (test, testCommon) {
           , { type: 'put', key: 'three', value: '3' }
         ]
       , function (err) {
-          t.notOk(err, 'no error')
+          t.error(err)
 
           db.batch()
             .put('1', 'one')
@@ -175,11 +175,11 @@ module.exports.batch = function (test, testCommon) {
             .del('three')
             .put('foo', 'bar')
             .write(function (err) {
-              t.notOk(err, 'no error')
+              t.error(err)
               testCommon.collectEntries(
                   db.iterator({ keyAsBuffer: false, valueAsBuffer: false })
                 , function (err, data) {
-                    t.notOk(err, 'no error')
+                    t.error(err)
                     t.equal(data.length, 3, 'correct number of entries')
                     var expected = [
                         { key: 'foo', value: 'bar' }
diff --git a/abstract/close-test.js b/abstract/close-test.js
index 7492c49..68873b1 100644
--- a/abstract/close-test.js
+++ b/abstract/close-test.js
@@ -3,7 +3,7 @@ module.exports.close = function (leveldown, test, testCommon) {
     var db = leveldown(testCommon.location())
 
     db.open(function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.throws(
           db.close.bind(db)
         , { name: 'Error', message: 'close() requires a callback argument' }
@@ -16,7 +16,7 @@ module.exports.close = function (leveldown, test, testCommon) {
       )
 
       db.close(function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
         t.end()
       })
     })
diff --git a/abstract/del-test.js b/abstract/del-test.js
index 8a70e7d..c26b17f 100644
--- a/abstract/del-test.js
+++ b/abstract/del-test.js
@@ -42,9 +42,9 @@ module.exports.args = function (test) {
 module.exports.del = function (test) {
   test('test simple del()', function (t) {
     db.put('foo', 'bar', function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       db.del('foo', function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
         db.get('foo', function (err) {
           t.ok(err, 'entry propertly deleted')
           t.ok(typeof value == 'undefined', 'value is undefined')
@@ -57,7 +57,7 @@ module.exports.del = function (test) {
 
   test('test del on non-existent key', function (t) {
     db.del('blargh', function (err) {
-      t.notOk(err, 'should not error on delete')
+      t.error(err)
       t.end()
     })
   })
diff --git a/abstract/get-test.js b/abstract/get-test.js
index 2b865f0..df69c5d 100644
--- a/abstract/get-test.js
+++ b/abstract/get-test.js
@@ -42,9 +42,9 @@ module.exports.args = function (test) {
 module.exports.get = function (test) {
   test('test simple get()', function (t) {
     db.put('foo', 'bar', function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       db.get('foo', function (err, value) {
-        t.notOk(err, 'no error')
+        t.error(err)
         t.ok(typeof value !== 'string', 'should not be string by default')
 
         var result
@@ -52,13 +52,17 @@ module.exports.get = function (test) {
           result = String.fromCharCode.apply(null, new Uint16Array(value))
         } else {
           t.ok(typeof Buffer != 'undefined' && value instanceof Buffer)
-          result = value.toString()
+          try {
+            result = value.toString()
+          } catch (e) {
+            t.error(e, 'should not throw when converting value to a string')
+          }
         }
 
         t.equal(result, 'bar')
 
         db.get('foo', {}, function (err, value) { // same but with {}
-          t.notOk(err, 'no error')
+          t.error(err)
           t.ok(typeof value !== 'string', 'should not be string by default')
 
           var result
@@ -66,13 +70,17 @@ module.exports.get = function (test) {
             result = String.fromCharCode.apply(null, new Uint16Array(value))
           } else {
             t.ok(typeof Buffer != 'undefined' && value instanceof Buffer)
-            result = value.toString()
+            try {
+              result = value.toString()
+            } catch (e) {
+              t.error(e, 'should not throw when converting value to a string')
+            }
           }
 
           t.equal(result, 'bar')
 
           db.get('foo', { asBuffer: false }, function (err, value) {
-            t.notOk(err, 'no error')
+            t.error(err)
             t.ok(typeof value === 'string', 'should be string if not buffer')
             t.equal(value, 'bar')
             t.end()
@@ -84,7 +92,7 @@ module.exports.get = function (test) {
 
   test('test simultaniously get()', function (t) {
     db.put('hello', 'world', function (err) {
-      t.notOk(err, 'should not error')
+      t.error(err)
       var r = 0
         , done = function () {
             if (++r == 20)
@@ -95,7 +103,7 @@ module.exports.get = function (test) {
 
       for (; i < 10; ++i)
         db.get('hello', function(err, value) {
-          t.notOk(err, 'should not error')
+          t.error(err)
           t.equal(value.toString(), 'world')
           done()
         })
diff --git a/abstract/iterator-test.js b/abstract/iterator-test.js
index f90032e..5ca1719 100644
--- a/abstract/iterator-test.js
+++ b/abstract/iterator-test.js
@@ -66,7 +66,7 @@ module.exports.sequence = function (test) {
   test('test twice iterator#end() callback with error', function (t) {
     var iterator = db.iterator()
     iterator.end(function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       iterator.end(function(err2) {
         t.ok(err2, 'returned error')
         t.equal(err2.name, 'Error', 'correct error')
@@ -79,7 +79,7 @@ module.exports.sequence = function (test) {
   test('test iterator#next after iterator#end() callback with error', function (t) {
     var iterator = db.iterator()
     iterator.end(function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       iterator.next(function(err2) {
         t.ok(err2, 'returned error')
         t.equal(err2.name, 'Error', 'correct error')
@@ -92,9 +92,9 @@ module.exports.sequence = function (test) {
   test('test twice iterator#next() throws', function (t) {
     var iterator = db.iterator()
     iterator.next(function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       iterator.end(function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
         t.end()
       })
     })
@@ -117,10 +117,10 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
       , idx = 0
 
     db.batch(data, function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       var iterator = db.iterator()
         , fn = function (err, key, value) {
-            t.notOk(err, 'no error')
+            t.error(err)
             if (key && value) {
               t.ok(Buffer.isBuffer(key), 'key argument is a Buffer')
               t.ok(Buffer.isBuffer(value), 'value argument is a Buffer')
@@ -161,7 +161,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test full data collection', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.map(transformSource)
       t.deepEqual(data, expected)
@@ -171,7 +171,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.slice().reverse().map(transformSource)
       t.deepEqual(data, expected)
@@ -181,7 +181,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=0', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '00' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.map(transformSource)
       t.deepEqual(data, expected)
@@ -191,7 +191,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=50', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '50' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -201,7 +201,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=50 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '50', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(49).map(transformSource)
       t.deepEqual(data, expected)
@@ -211,7 +211,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key (49.5)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '49.5' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -221,7 +221,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key (49999)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '49999' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -231,7 +231,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '49.5', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -241,7 +241,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end=50', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, end: '50' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice(0, 51).map(transformSource)
       t.deepEqual(data, expected)
@@ -251,7 +251,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end being a midway key (50.5)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, end: '50.5' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice(0, 51).map(transformSource)
       t.deepEqual(data, expected)
@@ -261,7 +261,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end being a midway key (50555)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, end: '50555' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice(0, 51).map(transformSource)
       t.deepEqual(data, expected)
@@ -271,7 +271,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end being a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, end: '50.5', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 49, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(0, 49).map(transformSource)
       t.deepEqual(data, expected)
@@ -282,7 +282,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
   // end='0', starting key is actually '00' so it should avoid it
   test('test iterator with end=0', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, end: '0' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -290,7 +290,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=30 and end=70', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '30', end: '70' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 41, 'correct number of entries')
       var expected = sourceData.slice(30, 71).map(transformSource)
       t.deepEqual(data, expected)
@@ -300,7 +300,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=30 and end=70 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '70', end: '30', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 41, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(29, 70).map(transformSource)
       t.deepEqual(data, expected)
@@ -310,7 +310,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with limit=20', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: 20 }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice(0, 20).map(transformSource)
       t.deepEqual(data, expected)
@@ -320,7 +320,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with limit=20 and start=20', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '20', limit: 20 }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice(20, 40).map(transformSource)
       t.deepEqual(data, expected)
@@ -330,7 +330,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with limit=20 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: 20, reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(0, 20).map(transformSource)
       t.deepEqual(data, expected)
@@ -340,7 +340,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with limit=20 and start=20 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '79', limit: 20, reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(20, 40).map(transformSource)
       t.deepEqual(data, expected)
@@ -351,7 +351,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
   // the default limit value from levelup is -1
   test('test iterator with limit=-1 should iterate over whole database', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: -1}), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.map(transformSource)
       t.deepEqual(data, expected)
@@ -361,7 +361,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with limit=0 should not iterate over anything', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: 0 }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -369,7 +369,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end after limit', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: 20, end: '50' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice(0, 20).map(transformSource)
       t.deepEqual(data, expected)
@@ -379,7 +379,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end before limit', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: 50, end: '19' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice(0, 20).map(transformSource)
       t.deepEqual(data, expected)
@@ -389,7 +389,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start after database end', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '9a' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -397,7 +397,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start after database end and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, start: '9a', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.slice().reverse().map(transformSource)
       t.deepEqual(data, expected)
@@ -407,7 +407,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start and end after database and and reverse=true', function (t) {
     collectEntries(db.iterator({ start: '9b', end: '9a', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -418,7 +418,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
     iteratorOptions.valueAsBuffer = false
     test(name, function (t) {
       collectEntries(db.iterator(iteratorOptions), function (err, data) {
-        t.notOk(err, 'no error')
+        t.error(err)
         t.equal(data.length, 100, 'correct number of entries')
         var expected = sourceData.map(transformSource)
         t.deepEqual(data, expected)
@@ -469,7 +469,7 @@ module.exports.snapshot = function (leveldown, test, testCommon) {
     var iterator = db.iterator()
     db.del('foobatch1', function () {
       iterator.next(function (err, key, value) {
-        t.notOk(err, 'no error')
+        t.error(err)
         t.ok(key, 'got a key')
         t.equal(key.toString(), 'foobatch1', 'correct key')
         t.equal(value.toString(), 'bar1', 'correct value')
diff --git a/abstract/open-test.js b/abstract/open-test.js
index 4f963a6..ce15692 100644
--- a/abstract/open-test.js
+++ b/abstract/open-test.js
@@ -30,7 +30,7 @@ module.exports.open = function (leveldown, test, testCommon) {
 
     // default createIfMissing=true, errorIfExists=false
     db.open(function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
         db.close(function () {
           t.end()
         })
@@ -42,7 +42,7 @@ module.exports.open = function (leveldown, test, testCommon) {
 
     // default createIfMissing=true, errorIfExists=false
     db.open({}, function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
         db.close(function () {
           t.end()
         })
@@ -52,11 +52,11 @@ module.exports.open = function (leveldown, test, testCommon) {
     var db = leveldown(testCommon.location())
 
     db.open(function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       db.close(function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
         db.open(function (err) {
-          t.notOk(err, 'no error')
+          t.error(err)
           db.close(function () {
             t.end()
           })
@@ -83,9 +83,9 @@ module.exports.openAdvanced = function (leveldown, test, testCommon) {
 
     // make a valid database first, then close and dispose
     db.open({}, function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       db.close(function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
 
         // open again with 'errorIfExists'
         db = leveldown(location)
diff --git a/abstract/put-get-del-test.js b/abstract/put-get-del-test.js
index a743413..843d8fd 100644
--- a/abstract/put-get-del-test.js
+++ b/abstract/put-get-del-test.js
@@ -43,11 +43,11 @@ function makePutGetDelSuccessfulTest (type, key, value, expectedResult) {
     db.put(key, value, function (err) {
       t.error(err)
       db.get(key, function (err, _value) {
-        t.notOk(err, 'no error, has key/value for `' + type + '`')
+        t.error(err, 'no error, has key/value for `' + type + '`')
         t.ok(Buffer.isBuffer(_value), 'is a Buffer')
         var result = _value
         if (hasExpectedResult) {
-          t.ok(result === expectedResult, 'got `' + expectedResult + '`')
+          t.ok(result.toString() === expectedResult, 'got `' + expectedResult + '`')
         } else {
           if (result != null)
             result = _value.toString()
@@ -56,7 +56,7 @@ function makePutGetDelSuccessfulTest (type, key, value, expectedResult) {
           t.equals(result, value)
         }
         db.del(key, function (err) {
-          t.notOk(err, 'no error, deleted key/value for `' + type + '`')
+          t.error(err, 'no error, deleted key/value for `' + type + '`')
           db.get(key, function (err,  value) {
             t.ok(err, 'entry propertly deleted')
             t.ok(verifyNotFoundError(err), 'should have correct error message')
@@ -172,6 +172,6 @@ module.exports.all = function (leveldown, testFunc, testCommon, buffer, BufferTy
   module.exports.errorKeys(test, BufferType)
   module.exports.nonErrorKeys(test)
   module.exports.errorValues(test, BufferType)
-  module.exports.nonErrorKeys(test)
+  module.exports.nonErrorValues(test, BufferType)
   module.exports.tearDown(test, testCommon)
 }
diff --git a/abstract/put-test.js b/abstract/put-test.js
index 55558ee..4636a41 100644
--- a/abstract/put-test.js
+++ b/abstract/put-test.js
@@ -51,9 +51,9 @@ module.exports.args = function (test) {
 module.exports.put = function (test) {
   test('test simple put()', function (t) {
     db.put('foo', 'bar', function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       db.get('foo', function (err, value) {
-        t.notOk(err, 'no error')
+        t.error(err)
         var result = value.toString()
         if (isTypedArray(value))
           result = String.fromCharCode.apply(null, new Uint16Array(value))
@@ -66,9 +66,9 @@ module.exports.put = function (test) {
   if (process.browser) {
     test('test object value put()', function (t) {
       db.put('dood', {pete: 'sampras'}, function (err) {
-        t.notOk(err, 'no error')
+        t.error(err)
         db.get('dood', { asBuffer: false }, function (err, value) {
-          t.notOk(err, 'no error')
+          t.error(err)
           t.equal(JSON.stringify(value), JSON.stringify({pete: 'sampras'}))
           t.end()
         })
@@ -78,6 +78,28 @@ module.exports.put = function (test) {
 
 }
 
+module.exports.sync = function (test) {
+  test('sync put', function (t) {
+    db.put('foo', 'bar', { sync: true }, function (err) {
+      t.error(err)
+      db.get('foo', function (err, value) {
+        t.error(err)
+        t.equal(value.toString(), 'bar')
+        t.end()
+      })
+    })
+  })
+  test('sync put just before close', function (t) {
+    t.plan(2)
+    db.put('foo', 'bar', { sync: true }, function (err) {
+      t.error(err)
+    })
+    db.close(function (err) {
+      t.error(err)
+    })
+  })
+}
+
 module.exports.tearDown = function (test, testCommon) {
   test('tearDown', function (t) {
     db.close(testCommon.tearDown.bind(null, t))
@@ -89,4 +111,4 @@ module.exports.all = function (leveldown, test, testCommon) {
   module.exports.args(test)
   module.exports.put(test)
   module.exports.tearDown(test, testCommon)
-}
\ No newline at end of file
+}
diff --git a/abstract/ranges-test.js b/abstract/ranges-test.js
index 9b8e1da..d7f57d4 100644
--- a/abstract/ranges-test.js
+++ b/abstract/ranges-test.js
@@ -20,10 +20,10 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
       , idx = 0
 
     db.batch(data, function (err) {
-      t.notOk(err, 'no error')
+      t.error(err)
       var iterator = db.iterator()
         , fn = function (err, key, value) {
-            t.notOk(err, 'no error')
+            t.error(err)
             if (key && value) {
               t.equal(key.toString(), data[idx].key, 'correct key')
               t.equal(value.toString(), data[idx].value, 'correct value')
@@ -62,7 +62,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test full data collection', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.map(transformSource)
       t.deepEqual(data, expected)
@@ -72,7 +72,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.slice().reverse().map(transformSource)
       t.deepEqual(data, expected)
@@ -82,7 +82,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with gte=0', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '00' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.map(transformSource)
       t.deepEqual(data, expected)
@@ -92,7 +92,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with gte=50', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '50' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -102,7 +102,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with lte=50 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '50', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(49).map(transformSource)
       t.deepEqual(data, expected)
@@ -112,7 +112,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key (49.5)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '49.5' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -122,7 +122,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key (49999)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '49999' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -132,7 +132,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '49.5', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -142,7 +142,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lt: '49.5', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -152,7 +152,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start being a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lt: '50', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 50, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(50).map(transformSource)
       t.deepEqual(data, expected)
@@ -162,7 +162,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end=50', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '50' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice(0, 51).map(transformSource)
       t.deepEqual(data, expected)
@@ -172,7 +172,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end being a midway key (50.5)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '50.5' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice(0, 51).map(transformSource)
       t.deepEqual(data, expected)
@@ -182,7 +182,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end being a midway key (50555)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '50555' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice(0, 51).map(transformSource)
       t.deepEqual(data, expected)
@@ -192,7 +192,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end being a midway key (50555)', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lt: '50555' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 51, 'correct number of entries')
       var expected = sourceData.slice(0, 51).map(transformSource)
       t.deepEqual(data, expected)
@@ -202,7 +202,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end being a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '50.5', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 49, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(0, 49).map(transformSource)
       t.deepEqual(data, expected)
@@ -212,7 +212,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with gt a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gt: '50.5', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 49, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(0, 49).map(transformSource)
       t.deepEqual(data, expected)
@@ -222,7 +222,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with gt a midway key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gt: '50', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 49, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(0, 49).map(transformSource)
       t.deepEqual(data, expected)
@@ -232,7 +232,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with gt 50 key and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gt: '50', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 49, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(0, 49).map(transformSource)
       t.deepEqual(data, expected)
@@ -243,7 +243,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
   // end='0', starting key is actually '00' so it should avoid it
   test('test iterator with end=0', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '0' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -252,7 +252,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
   // end='0', starting key is actually '00' so it should avoid it
   test('test iterator with end<0', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lt: '0' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -260,7 +260,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=30 and end=70', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '30', lte: '70' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 41, 'correct number of entries')
       var expected = sourceData.slice(30, 71).map(transformSource)
       t.deepEqual(data, expected)
@@ -270,7 +270,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=30 and end=70', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gt: '29', lt: '71' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 41, 'correct number of entries')
       var expected = sourceData.slice(30, 71).map(transformSource)
       t.deepEqual(data, expected)
@@ -280,7 +280,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=30 and end=70 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '70', gte: '30', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 41, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(29, 70).map(transformSource)
       t.deepEqual(data, expected)
@@ -290,7 +290,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start=30 and end=70 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lt: '71', gt: '29', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 41, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(29, 70).map(transformSource)
       t.deepEqual(data, expected)
@@ -300,7 +300,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with limit=20 and start=20', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '20', limit: 20 }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice(20, 40).map(transformSource)
       t.deepEqual(data, expected)
@@ -310,7 +310,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with limit=20 and start=79 and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '79', limit: 20, reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice().reverse().slice(20, 40).map(transformSource)
       t.deepEqual(data, expected)
@@ -320,7 +320,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end after limit', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: 20, lte: '50' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice(0, 20).map(transformSource)
       t.deepEqual(data, expected)
@@ -330,7 +330,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with end before limit', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, limit: 50, lte: '19' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 20, 'correct number of entries')
       var expected = sourceData.slice(0, 20).map(transformSource)
       t.deepEqual(data, expected)
@@ -340,7 +340,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start after database end', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gte: '9a' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -348,7 +348,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start after database end', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, gt: '9a' }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -356,7 +356,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start after database end and reverse=true', function (t) {
     collectEntries(db.iterator({ keyAsBuffer: false, valueAsBuffer: false, lte: '9a', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, sourceData.length, 'correct number of entries')
       var expected = sourceData.slice().reverse().map(transformSource)
       t.deepEqual(data, expected)
@@ -366,7 +366,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with start and end after database and and reverse=true', function (t) {
     collectEntries(db.iterator({ lte: '9b', gte: '9a', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -374,7 +374,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
 
   test('test iterator with lt and gt after database and and reverse=true', function (t) {
     collectEntries(db.iterator({ lt: '9b', gt: '9a', reverse: true }), function (err, data) {
-      t.notOk(err, 'no error')
+      t.error(err)
       t.equal(data.length, 0, 'correct number of entries')
       t.end()
     })
@@ -385,7 +385,7 @@ module.exports.iterator = function (leveldown, test, testCommon, collectEntries)
     iteratorOptions.valueAsBuffer = false
     test(name, function (t) {
       collectEntries(db.iterator(iteratorOptions), function (err, data) {
-        t.notOk(err, 'no error')
+        t.error(err)
         t.equal(data.length, 100, 'correct number of entries')
         var expected = sourceData.map(transformSource)
         t.deepEqual(data, expected)
diff --git a/package.json b/package.json
index 632e057..808b463 100644
--- a/package.json
+++ b/package.json
@@ -1,27 +1,28 @@
 {
   "name": "abstract-leveldown",
   "description": "An abstract prototype matching the LevelDOWN API",
-  "version": "2.0.1",
+  "version": "2.2.2",
   "contributors": [
     "Rod Vagg <r at va.gg> (https://github.com/rvagg)",
     "John Chesley <john at chesl.es> (https://github.com/chesles/)",
     "Jake Verbaten <raynos2 at gmail.com> (https://github.com/raynos)",
     "Dominic Tarr <dominic.tarr at gmail.com> (https://github.com/dominictarr)",
     "Max Ogden <max at maxogden.com> (https://github.com/maxogden)",
-    "Lars-Magnus Skog <lars.magnus.skog at gmail.com> (https://github.com/ralphtheninja)",
+    "Lars-Magnus Skog <ralphtheninja at riseup.net> (https://github.com/ralphtheninja)",
     "David Björklund <david.bjorklund at gmail.com> (https://github.com/kesla)",
     "Julian Gruber <julian at juliangruber.com> (https://github.com/juliangruber)",
     "Paolo Fragomeni <paolo at async.ly> (https://github.com/hij1nx)",
     "Anton Whalley <anton.whalley at nearform.com> (https://github.com/No9)",
     "Matteo Collina <matteo.collina at gmail.com> (https://github.com/mcollina)",
     "Pedro Teixeira <pedro.teixeira at gmail.com> (https://github.com/pgte)",
-    "James Halliday <mail at substack.net> (https://github.com/substack)"
+    "James Halliday <mail at substack.net> (https://github.com/substack)",
+    "Thomas Watson Steen <w at tson.dk> (https://github.com/watson)"
   ],
   "repository": {
     "type": "git",
-    "url": "https://github.com/rvagg/node-abstract-leveldown.git"
+    "url": "https://github.com/level/abstract-leveldown.git"
   },
-  "homepage": "https://github.com/rvagg/node-abstract-leveldown",
+  "homepage": "https://github.com/level/abstract-leveldown",
   "keywords": [
     "leveldb",
     "leveldown",
@@ -29,18 +30,18 @@
   ],
   "main": "./abstract-leveldown.js",
   "dependencies": {
-    "xtend": "~3.0.0"
+    "xtend": "~4.0.0"
   },
   "devDependencies": {
-    "tap": "*",
-    "sinon": "*",
-    "rimraf": "*"
+    "rimraf": "~2.3.2",
+    "sinon": "~1.14.1",
+    "tape": "~4.0.0"
   },
   "browser": {
     "rimraf": false
   },
   "scripts": {
-    "test": "node ./test.js"
+    "test": "node test.js"
   },
   "license": "MIT"
 }
diff --git a/test.js b/test.js
index 80d906a..7aef43c 100644
--- a/test.js
+++ b/test.js
@@ -1,4 +1,4 @@
-const tap                  = require('tap')
+const test                 = require('tape')
     , sinon                = require('sinon')
     , util                 = require('util')
     , testCommon           = require('./testCommon')
@@ -12,44 +12,44 @@ function factory (location) {
 
 /*** compatibility with basic LevelDOWN API ***/
 
-require('./abstract/leveldown-test').args(factory, tap.test, testCommon)
+require('./abstract/leveldown-test').args(factory, test, testCommon)
 
-require('./abstract/open-test').args(factory, tap.test, testCommon)
+require('./abstract/open-test').args(factory, test, testCommon)
 
-require('./abstract/del-test').setUp(factory, tap.test, testCommon)
-require('./abstract/del-test').args(tap.test)
+require('./abstract/del-test').setUp(factory, test, testCommon)
+require('./abstract/del-test').args(test)
 
-require('./abstract/get-test').setUp(factory, tap.test, testCommon)
-require('./abstract/get-test').args(tap.test)
+require('./abstract/get-test').setUp(factory, test, testCommon)
+require('./abstract/get-test').args(test)
 
-require('./abstract/put-test').setUp(factory, tap.test, testCommon)
-require('./abstract/put-test').args(tap.test)
+require('./abstract/put-test').setUp(factory, test, testCommon)
+require('./abstract/put-test').args(test)
 
-require('./abstract/put-get-del-test').setUp(factory, tap.test, testCommon)
-require('./abstract/put-get-del-test').errorKeys(tap.test)
-//require('./abstract/put-get-del-test').nonErrorKeys(tap.test, testCommon)
-require('./abstract/put-get-del-test').errorValues(tap.test)
-//require('./abstract/test/put-get-del-test').nonErrorKeys(tap.test, testCommon)
-require('./abstract/put-get-del-test').tearDown(tap.test, testCommon)
+require('./abstract/put-get-del-test').setUp(factory, test, testCommon)
+require('./abstract/put-get-del-test').errorKeys(test)
+//require('./abstract/put-get-del-test').nonErrorKeys(test, testCommon)
+require('./abstract/put-get-del-test').errorValues(test)
+//require('./abstract/test/put-get-del-test').nonErrorKeys(test, testCommon)
+require('./abstract/put-get-del-test').tearDown(test, testCommon)
 
-require('./abstract/approximate-size-test').setUp(factory, tap.test, testCommon)
-require('./abstract/approximate-size-test').args(tap.test)
+require('./abstract/approximate-size-test').setUp(factory, test, testCommon)
+require('./abstract/approximate-size-test').args(test)
 
-require('./abstract/batch-test').setUp(factory, tap.test, testCommon)
-require('./abstract/batch-test').args(tap.test)
+require('./abstract/batch-test').setUp(factory, test, testCommon)
+require('./abstract/batch-test').args(test)
 
-require('./abstract/chained-batch-test').setUp(factory, tap.test, testCommon)
-require('./abstract/chained-batch-test').args(tap.test)
+require('./abstract/chained-batch-test').setUp(factory, test, testCommon)
+require('./abstract/chained-batch-test').args(test)
 
-require('./abstract/close-test').close(factory, tap.test, testCommon)
+require('./abstract/close-test').close(factory, test, testCommon)
 
-require('./abstract/iterator-test').setUp(factory, tap.test, testCommon)
-require('./abstract/iterator-test').args(tap.test)
-require('./abstract/iterator-test').sequence(tap.test)
+require('./abstract/iterator-test').setUp(factory, test, testCommon)
+require('./abstract/iterator-test').args(test)
+require('./abstract/iterator-test').sequence(test)
 
 /*** extensibility ***/
 
-tap.test('test core extensibility', function (t) {
+test('test core extensibility', function (t) {
   function Test (location) {
     AbstractLevelDOWN.call(this, location)
     t.equal(this.location, location, 'location set on `this`')
@@ -61,7 +61,7 @@ tap.test('test core extensibility', function (t) {
   ;new Test('foobar')
 })
 
-tap.test('test open() extensibility', function (t) {
+test('test open() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , expectedOptions = { createIfMissing: true, errorIfExists: false }
@@ -96,7 +96,7 @@ tap.test('test open() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test close() extensibility', function (t) {
+test('test close() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , test
@@ -119,7 +119,7 @@ tap.test('test close() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test get() extensibility', function (t) {
+test('test get() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , expectedOptions = { asBuffer: true }
@@ -157,7 +157,7 @@ tap.test('test get() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test del() extensibility', function (t) {
+test('test del() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , expectedOptions = { options: 1 }
@@ -193,7 +193,7 @@ tap.test('test del() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test put() extensibility', function (t) {
+test('test put() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , expectedOptions = { options: 1 }
@@ -232,7 +232,7 @@ tap.test('test put() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test approximateSize() extensibility', function (t) {
+test('test approximateSize() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , expectedStart = 'a start'
@@ -259,7 +259,7 @@ tap.test('test approximateSize() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test batch() extensibility', function (t) {
+test('test batch() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , expectedOptions = { options: 1 }
@@ -305,7 +305,7 @@ tap.test('test batch() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test chained batch() (array) extensibility', function (t) {
+test('test chained batch() (array) extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , expectedOptions = { options: 1 }
@@ -347,7 +347,7 @@ tap.test('test chained batch() (array) extensibility', function (t) {
   t.end()
 })
 
-tap.test('test chained batch() (custom _chainedBatch) extensibility', function (t) {
+test('test chained batch() (custom _chainedBatch) extensibility', function (t) {
   var spy = sinon.spy()
     , test
 
@@ -374,7 +374,7 @@ tap.test('test chained batch() (custom _chainedBatch) extensibility', function (
   t.end()
 })
 
-tap.test('test AbstractChainedBatch extensibility', function (t) {
+test('test AbstractChainedBatch extensibility', function (t) {
   function Test (db) {
     AbstractChainedBatch.call(this, db)
     t.equal(this._db, db, 'db set on `this`')
@@ -386,7 +386,7 @@ tap.test('test AbstractChainedBatch extensibility', function (t) {
   new Test('foobar')
 })
 
-tap.test('test write() extensibility', function (t) {
+test('test write() extensibility', function (t) {
   var spy = sinon.spy()
     , spycb = sinon.spy()
     , test
@@ -406,14 +406,14 @@ tap.test('test write() extensibility', function (t) {
   t.equal(spy.getCall(0).thisValue, test, '`this` on _write() was correct')
   t.equal(spy.getCall(0).args.length, 1, 'got one argument')
   // awkward here cause of nextTick & an internal wrapped cb
-  t.type(spy.getCall(0).args[0], 'function', 'got a callback function')
+  t.equal(typeof spy.getCall(0).args[0], 'function', 'got a callback function')
   t.equal(spycb.callCount, 0, 'spycb not called')
   spy.getCall(0).args[0]()
   t.equal(spycb.callCount, 1, 'spycb called, i.e. was our cb argument')
   t.end()
 })
 
-tap.test('test put() extensibility', function (t) {
+test('test put() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedKey = 'key'
     , expectedValue = 'value'
@@ -439,7 +439,7 @@ tap.test('test put() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test del() extensibility', function (t) {
+test('test del() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedKey = 'key'
     , returnValue
@@ -463,7 +463,7 @@ tap.test('test del() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test clear() extensibility', function (t) {
+test('test clear() extensibility', function (t) {
   var spy = sinon.spy()
     , returnValue
     , test
@@ -485,7 +485,7 @@ tap.test('test clear() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test iterator() extensibility', function (t) {
+test('test iterator() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedOptions = { options: 1, reverse: false, keys: true, values: true, limit: -1, keyAsBuffer: true, valueAsBuffer: true }
     , test
@@ -508,7 +508,7 @@ tap.test('test iterator() extensibility', function (t) {
   t.end()
 })
 
-tap.test('test AbstractIterator extensibility', function (t) {
+test('test AbstractIterator extensibility', function (t) {
   function Test (db) {
     AbstractIterator.call(this, db)
     t.equal(this.db, db, 'db set on `this`')
@@ -520,7 +520,7 @@ tap.test('test AbstractIterator extensibility', function (t) {
   ;new Test('foobar')
 })
 
-tap.test('test next() extensibility', function (t) {
+test('test next() extensibility', function (t) {
   var spy = sinon.spy()
     , spycb = sinon.spy()
     , test
@@ -540,14 +540,14 @@ tap.test('test next() extensibility', function (t) {
   t.equal(spy.getCall(0).thisValue, test, '`this` on _next() was correct')
   t.equal(spy.getCall(0).args.length, 1, 'got one arguments')
   // awkward here cause of nextTick & an internal wrapped cb
-  t.type(spy.getCall(0).args[0], 'function', 'got a callback function')
+  t.equal(typeof spy.getCall(0).args[0], 'function', 'got a callback function')
   t.equal(spycb.callCount, 0, 'spycb not called')
   spy.getCall(0).args[0]()
   t.equal(spycb.callCount, 1, 'spycb called, i.e. was our cb argument')
   t.end()
 })
 
-tap.test('test end() extensibility', function (t) {
+test('test end() extensibility', function (t) {
   var spy = sinon.spy()
     , expectedCb = function () {}
     , test
diff --git a/testCommon.js b/testCommon.js
index 3f9d29d..2d69b2e 100644
--- a/testCommon.js
+++ b/testCommon.js
@@ -39,7 +39,7 @@ var dbidx = 0
 
   , setUp = function (t) {
       cleanup(function (err) {
-        t.notOk(err, 'cleanup returned an error')
+        t.error(err, 'cleanup returned an error')
         t.end()
       })
     }
@@ -59,7 +59,7 @@ var dbidx = 0
                 })
               }
               data.push({ key: key, value: value })
-              process.nextTick(next)
+              setTimeout(next, 0)
             })
           }
       next()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-abstract-leveldown.git



More information about the Pkg-javascript-commits mailing list