From 56eec1de7018759c0ec251dba4455c18f73c3bbd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 20 Nov 2021 07:01:42 +0100 Subject: Adding upstream version 0.1.10+dfsg. Signed-off-by: Daniel Baumann --- tests/zcrc.js | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100755 tests/zcrc.js (limited to 'tests/zcrc.js') diff --git a/tests/zcrc.js b/tests/zcrc.js new file mode 100755 index 0000000..0698fa4 --- /dev/null +++ b/tests/zcrc.js @@ -0,0 +1,113 @@ +#!/usr/bin/env node + +"use strict"; + +var tape = require('blue-tape'); + +var Zmodem = Object.assign( + {}, + require('../src/zcrc') +); + +var zcrc = Zmodem.CRC; + +tape('crc16', function(t) { + t.deepEqual( + zcrc.crc16( [ 0x0d, 0x0a ] ), + [ 0xd7, 0x16 ], + 'crc16 - first test' + ); + + t.deepEqual( + zcrc.crc16( [ 0x11, 0x17, 0, 0, 0 ] ), + [ 0xe4, 0x81 ], + 'crc16 - second test' + ); + + t.end(); +} ); + +tape('verify16', function(t) { + t.doesNotThrow( + () => zcrc.verify16( [ 0x0d, 0x0a ], [ 0xd7, 0x16 ] ), + 'verify16 - no throw on good' + ); + + var err; + try { zcrc.verify16( [ 0x0d, 0x0a ], [ 0xd7, 16 ] ) } + catch(e) { err = e }; + + t.ok( + /215,16.*215,22/.test(err.message), + 'verify16 - throw on bad (message)' + ); + + t.ok( + err instanceof Zmodem.Error, + 'verify16 - typed error' + ); + + t.ok( + err.type, + 'verify16 - error type' + ); + + t.end(); +} ); + +//---------------------------------------------------------------------- +// The crc32 logic is unused for now, but some misbehaving ZMODEM +// implementation might send CRC32 regardless of that we don’t +// advertise it. +//---------------------------------------------------------------------- + +tape('crc32', function(t) { + const tests = [ + [ [ 4, 0, 0, 0, 0 ], [ 0xdd, 0x51, 0xa2, 0x33 ] ], + [ [ 11, 17, 0, 0, 0 ], [ 0xf6, 0xf6, 0x57, 0x59 ] ], + [ [ 3, 0, 0, 0, 0 ], [ 205, 141, 130, 129 ] ], + ]; +// } [ 3, 0, 0, 0, 0 ] [ 205, 141, 131, -127 ] +//2172816845 +//crc32 [ 3, 0, 0, 0, 0 ] -2122150451 + + tests.forEach( (cur_t) => { + let [ input, output ] = cur_t; + + t.deepEqual( + zcrc.crc32(input), + output, + "crc32: " + input.join(", ") + ); + } ); + + t.end(); +} ); + +tape('verify32', function(t) { + t.doesNotThrow( + () => zcrc.verify32( [ 4, 0, 0, 0, 0 ], [ 0xdd, 0x51, 0xa2, 0x33 ] ), + 'verify32 - no throw on good' + ); + + var err; + try { zcrc.verify32( [ 4, 0, 0, 0, 0 ], [ 1,2,3,4 ] ) } + catch(e) { err = e }; + + t.ok( + /1,2,3,4.*221,81,162,51/.test(err.message), + 'verify32 - throw on bad (message)' + ); + + t.ok( + err instanceof Zmodem.Error, + 'verify32 - typed error' + ); + + t.ok( + err.type, + 'verify32 - error type' + ); + + t.end(); +} ); -- cgit v1.2.3