Files
subcoding/test/disasm_test.go

32 lines
494 B
Go
Raw Normal View History

2021-11-19 20:38:56 -10:00
package test
import "testing"
import "github.com/firestuff/subcoding/asm"
func TestRoundTrip(t *testing.T) {
2021-11-20 10:10:21 -10:00
src := `functions:
2021-11-19 20:38:56 -10:00
- - [nop]
2021-11-20 10:10:21 -10:00
- [mov, g0, 1]
- [add, f0, 5]
- [mov, g1, -5]
- [eq, 2, f0]
- [jmpt, -3]
- - [add, g0, -1]
- [cal, +5]
`
prog, err := asm.AssembleString(src)
2021-11-19 20:38:56 -10:00
if err != nil {
t.Fatal(err)
}
2021-11-20 10:10:21 -10:00
dis, err := asm.Disassemble(prog)
2021-11-19 20:38:56 -10:00
if err != nil {
t.Fatal(err)
}
2021-11-20 10:10:21 -10:00
if dis != src {
t.Fatalf("Disassembly mismatch: expected=%v actual=%v", src, dis)
}
2021-11-19 20:38:56 -10:00
}