]> zoso.dev Git - buffer.git/commitdiff
HACK: test: add terrible hack to work around node.js assert bug
authorFeross Aboukhadijeh <feross@feross.org>
Mon, 8 Aug 2016 05:10:05 +0000 (22:10 -0700)
committerFeross Aboukhadijeh <feross@feross.org>
Mon, 8 Aug 2016 05:10:05 +0000 (22:10 -0700)
Waiting for this issue to be fixed:
https://github.com/nodejs/node/issues/8001

test/node/test-buffer-badhex.js

index fd7851d968cb0f46a66774653da87ecef19dca9c..0b025e9bccd31e8d932e23b3c080da489a5f80fa 100644 (file)
@@ -5,6 +5,47 @@ var Buffer = require('../../').Buffer;
 var assert = require('assert');
 var Buffer = require('../../').Buffer;
 
+/**
+ * TEMPORARY HACK UNTIL THIS ASSERT BUG IS FIXED IN NODE CORE
+ * https://github.com/nodejs/node/issues/8001
+ */
+var pToString = function (obj) { return Object.prototype.toString.call(obj) }
+var _deepStrictEqual = assert.deepStrictEqual
+assert.deepStrictEqual = function (actual, expected, msg) {
+  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView(actual) &&
+      ArrayBuffer.isView(expected) && !require('buffer').Buffer.isBuffer(actual) &&
+      !require('buffer').Buffer.isBuffer(expected) && pToString(actual) === pToString(expected) &&
+      !(actual instanceof Float32Array || actual instanceof Float64Array)) {
+    assert.equal(Buffer.compare(Buffer.from(actual.buffer,
+                                            actual.byteOffset,
+                                            actual.byteLength),
+                             Buffer.from(expected.buffer,
+                                         expected.byteOffset,
+                                         expected.byteLength)), 0);
+  } else {
+    _deepStrictEqual.call(assert, actual, expected, msg)
+  }
+}
+var _deepEqual = assert.deepEqual
+assert.deepEqual = function (actual, expected, msg) {
+  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView(actual) &&
+      ArrayBuffer.isView(expected) && !require('buffer').Buffer.isBuffer(actual) &&
+      !require('buffer').Buffer.isBuffer(expected) && pToString(actual) === pToString(expected) &&
+      !(actual instanceof Float32Array || actual instanceof Float64Array)) {
+    assert.ok(Buffer.compare(Buffer.from(actual.buffer,
+                                         actual.byteOffset,
+                                         actual.byteLength),
+                             Buffer.from(expected.buffer,
+                                         expected.byteOffset,
+                                         expected.byteLength)) === 0);
+  } else {
+    _deepEqual.call(assert, actual, expected, msg)
+  }
+}
+/**
+ * END HACK
+ */
+
 // Test hex strings and bad hex strings
 {
   var buf1 = Buffer.alloc(4);