digital-vcd-parser/test/wasmdump.js
2020-09-27 15:37:42 -07:00

89 lines
2.8 KiB
JavaScript

'use strict';
const expect = require('chai').expect;
const lib = require('../lib/index.js');
describe('dump', () => {
let inst;
// return a promise, and mocha will wait until it resolves
before(() => {
const fn = async () => {
inst = await lib.wasmparser();
};
return fn();
});
it('simple wasm', done => {
const dump = [];
['"}G', '{u', 'u)'] // array of all signal ids
.map(id =>
inst.change.on(id, (time, cmd, value, mask) => {
dump.push({
id,
time,
cmd,
value,
mask
});
})
);
inst.on('finish', () => {
// expect(inst.getTime()).to.eq(316n);
// expect(dump).to.deep.eq([
// { id: '"}G', time: 100, cmd: 14, value: 0n, mask: 0n },
// { id: '"}G', time: 200, cmd: 15, value: 1n, mask: 0n },
// { id: '{u', time: 200, cmd: 19, value: 0xf0f0f0f0f0f0f0f0n, mask: 0xff00ff00ff00ff00n },
// { id: '"}G', time: 300, cmd: 14, value: 0n, mask: 0n },
// { id: '{u', time: 300, cmd: 19, value: 0xf000000000000000n, mask: 0n },
// { id: '{u', time: 301, cmd: 19, value: 0x0f00000000000000n, mask: 0n },
// { id: '{u', time: 302, cmd: 19, value: 0x00f0000000000000n, mask: 0n },
// { id: '{u', time: 303, cmd: 19, value: 0x000f000000000000n, mask: 0n },
// { id: '{u', time: 304, cmd: 19, value: 0x0000f00000000000n, mask: 0n },
// { id: '{u', time: 305, cmd: 19, value: 0x00000f0000000000n, mask: 0n },
// { id: '{u', time: 306, cmd: 19, value: 0x000000f000000000n, mask: 0n },
// { id: '{u', time: 307, cmd: 19, value: 0x0000000f00000000n, mask: 0n },
// { id: '{u', time: 308, cmd: 20, value: 0x00000000f0000000n, mask: 0n },
// { id: '{u', time: 309, cmd: 19, value: 0x000000000f000000n, mask: 0n },
// { id: '{u', time: 310, cmd: 19, value: 0x0000000000f00000n, mask: 0n },
// { id: '{u', time: 311, cmd: 19, value: 0x00000000000f0000n, mask: 0n },
// { id: '{u', time: 312, cmd: 19, value: 0x000000000000f000n, mask: 0n },
// { id: '{u', time: 313, cmd: 19, value: 0x0000000000000f00n, mask: 0n },
// { id: '{u', time: 314, cmd: 19, value: 0x00000000000000f0n, mask: 0n },
// { id: '{u', time: 315, cmd: 19, value: 0x000000000000000fn, mask: 0n },
// { id: '"}G', time: 316, cmd: 15, value: 1n, mask: 0n },
// ])
// console.log(dump);
done();
});
inst.write(`
$version Generated by VerilatedVcd $end
$date Wed Sep 18 22:59:07 2019
$end
$timescale 1ns $end
$scope module top $end
$var wire 1 "}G clock $end
$upscope $end
$enddefinitions $end
#100
0"}G
#200
1"}G
`);
// break in the middle of the number scan
inst.write( `x11110000zzzzxxxx11110000 {u
`);
inst.end();
});
});
/* eslint-env mocha */