1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-10 21:29:33 +00:00
8bitworkshop/src/common/hdl/fuzz.ts
2021-07-24 09:40:55 -05:00

41 lines
1.2 KiB
TypeScript

//import binaryen = require('binaryen');
//import { fn } from "jquery";
import { HDLError, HDLModuleJS } from "./hdlruntime";
import { HDLModuleWASM } from "./hdlwasm";
import { CompileError, VerilogXMLParser } from "./vxmlparser";
export function fuzz(buf) {
var parser = new VerilogXMLParser();
var str = buf.toString();
try {
parser.parse(str);
} catch (e) {
if (e instanceof CompileError) return;
throw e;
}
if (1) {
var wmod = new HDLModuleWASM(parser.modules['TOP'], parser.modules['@CONST-POOL@']);
wmod.traceBufferSize = 0x8000;
wmod.maxMemoryMB = 0.25;
wmod.initSync();
wmod.powercycle();
wmod.tick2(10000);
}
if (0) {
var jmod = new HDLModuleJS(parser.modules['TOP'], parser.modules['@CONST-POOL@']);
jmod.init();
try {
jmod.powercycle();
jmod.tick2(10000);
} catch (e) {
if (e instanceof HDLError) return;
const fs = require('fs');
fs.writeFileSync('hdlfuzz-output.js', jmod.getJSCode());
throw e;
} finally {
jmod.dispose();
}
}
}