parent
c905af1214
commit
f872546c46
File diff suppressed because it is too large
Load Diff
@ -1,26 +1,38 @@ |
|||||||
|
import test from "ava"; |
||||||
|
import fs from "fs"; |
||||||
import { ButtonMachine } from '../src/buttons.js'; |
import { ButtonMachine } from '../src/buttons.js'; |
||||||
|
|
||||||
let code = [ |
const run_code = (source) => { |
||||||
['PUSH', -10], |
const machine = new ButtonMachine(); |
||||||
['PUSH', 1], |
const code = machine.parse(source.toString()); |
||||||
['ADD'], |
|
||||||
['POKE', 1], |
|
||||||
['JNZ', 1], |
|
||||||
['STOR', 'IX'], |
|
||||||
['POP'], |
|
||||||
['PEEK', 1], |
|
||||||
['JNZ', 6], |
|
||||||
]; |
|
||||||
|
|
||||||
let machine = new ButtonMachine(); |
|
||||||
machine.load(code); |
machine.load(code); |
||||||
|
machine.run(); |
||||||
|
|
||||||
const ops = ButtonMachine.operations(); |
return machine; |
||||||
const registers = machine.register_names(); |
} |
||||||
|
|
||||||
machine.run(); |
test("parse and run file", t => { |
||||||
|
const test_src = [ |
||||||
|
["./tests/basic.btn", 74], |
||||||
|
["./tests/test2.btn", 0] |
||||||
|
] |
||||||
|
|
||||||
|
for(let [source, expected] of test_src) { |
||||||
|
console.log("TESTING FILE", source, "EXPECTING", expected); |
||||||
|
const code = fs.readFileSync(source); |
||||||
|
const machine = run_code(code); |
||||||
|
|
||||||
|
t.is(machine.stack_top, expected); |
||||||
|
|
||||||
console.log("STACK TOP", machine.stack_top); |
console.log("STACK TOP", machine.stack_top); |
||||||
console.log("REGISTERS", registers); |
} |
||||||
console.log("STACK", machine.stack); |
}); |
||||||
console.log("RAM", machine.ram); |
|
||||||
|
test("fuzz the parser", t => { |
||||||
|
const code = fs.readFileSync("./tests/garbag1.btn"); |
||||||
|
const machine = run_code(code); |
||||||
|
|
||||||
|
t.is(machine.halted, true); |
||||||
|
t.is(machine.error_line, 0); |
||||||
|
|
||||||
|
}); |
||||||
|
@ -0,0 +1,9 @@ |
|||||||
|
asdlkj |
||||||
|
sadf |
||||||
|
sad |
||||||
|
fas |
||||||
|
f |
||||||
|
sadfg |
||||||
|
asdflkhja sdflk;jas |
||||||
|
|
||||||
|
sad'dfkjlsadflkjsadfjlsad |
@ -0,0 +1,9 @@ |
|||||||
|
PUSH -10 |
||||||
|
PUSH 1 |
||||||
|
ADD |
||||||
|
POKE 1 |
||||||
|
JNZ 1 |
||||||
|
STOR IX |
||||||
|
POP |
||||||
|
PEEK 1 |
||||||
|
JNZ 6 |
Loading…
Reference in new issue