98 lines
1.9 KiB
JavaScript
98 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
const expect = require('chai').expect;
|
|
const lib = require('../index.js');
|
|
|
|
describe('basic', () => {
|
|
it('type', done => {
|
|
expect(lib).to.be.an('object');
|
|
done();
|
|
});
|
|
it('type', done => {
|
|
const cxt = lib.init();
|
|
expect(cxt).to.be.an('object');
|
|
done();
|
|
});
|
|
it('fail: foo bar', done => {
|
|
const cxt = lib.init();
|
|
expect(lib.execute(cxt, () => {}, Buffer.from(' foo bar ???'))).to.eq(1);
|
|
expect(lib.getInfo(cxt)).to.deep.eq({
|
|
error: 1,
|
|
reason: 'Expected declaration command',
|
|
command: 0,
|
|
type: 0,
|
|
size: 0,
|
|
time: 0,
|
|
trigger: ''
|
|
});
|
|
done();
|
|
});
|
|
it('$comment', done => {
|
|
const cxt = lib.init();
|
|
expect(lib.execute(cxt, () => {}, Buffer.from(
|
|
' \n $comment some text $end $comment more text $end ???'
|
|
))).to.eq(1);
|
|
expect(lib.getInfo(cxt)).to.deep.eq({
|
|
error: 1,
|
|
reason: 'Expected declaration command',
|
|
command: 1,
|
|
type: 0,
|
|
size: 0,
|
|
time: 0,
|
|
trigger: ''
|
|
});
|
|
done();
|
|
});
|
|
it('$version', done => {
|
|
const cxt = lib.init();
|
|
expect(lib.execute(cxt, () => {}, Buffer.from(
|
|
`
|
|
$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
|
|
$scope module leaf $end
|
|
$var wire 64 {u counter [63:0] $end
|
|
$upscope $end
|
|
$upscope $end
|
|
|
|
$enddefinitions $end
|
|
`
|
|
))).to.eq(0); expect(lib.execute(cxt, () => {}, Buffer.from(
|
|
`
|
|
|
|
#1
|
|
0"}G
|
|
#2
|
|
1"}G
|
|
#300
|
|
0"}G
|
|
b1111000000000000 {u
|
|
#301
|
|
b0000111100000000 {u
|
|
#302
|
|
b0000000011110000 {u
|
|
#303
|
|
b0000000000001111 {u
|
|
`
|
|
))).to.eq(0);
|
|
// expect(lib.getInfo(cxt)).to.deep.eq({
|
|
// error: 0,
|
|
// reason: 'NO REASON',
|
|
// command: 19,
|
|
// type: 17,
|
|
// size: 64,
|
|
// time: 303,
|
|
// start: 300,
|
|
// stop: 303,
|
|
// trigger: ''
|
|
// });
|
|
done();
|
|
});
|
|
});
|
|
|
|
/* eslint-env mocha */
|