Added more tests
This commit is contained in:
parent
c4d763839a
commit
f4b0020c49
12 changed files with 205 additions and 39 deletions
68
src/arm/Jump_test.go
Normal file
68
src/arm/Jump_test.go
Normal file
|
@ -0,0 +1,68 @@
|
|||
package arm_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.urbach.dev/cli/q/src/arm"
|
||||
"git.urbach.dev/go/assert"
|
||||
)
|
||||
|
||||
func TestJump(t *testing.T) {
|
||||
usagePatterns := []struct {
|
||||
Type byte
|
||||
Offset int
|
||||
Code uint32
|
||||
}{
|
||||
{0, 0, 0x14000000},
|
||||
{0, 1, 0x14000001},
|
||||
{0, -1, 0x17FFFFFF},
|
||||
|
||||
{1, 0, 0x54000000},
|
||||
{1, 1, 0x54000020},
|
||||
{1, -1, 0x54FFFFE0},
|
||||
|
||||
{2, 0, 0x54000001},
|
||||
{2, 1, 0x54000021},
|
||||
{2, -1, 0x54FFFFE1},
|
||||
|
||||
{3, 0, 0x5400000C},
|
||||
{3, 1, 0x5400002C},
|
||||
{3, -1, 0x54FFFFEC},
|
||||
|
||||
{4, 0, 0x5400000A},
|
||||
{4, 1, 0x5400002A},
|
||||
{4, -1, 0x54FFFFEA},
|
||||
|
||||
{5, 0, 0x54000009},
|
||||
{5, 1, 0x54000029},
|
||||
{5, -1, 0x54FFFFE9},
|
||||
|
||||
{6, 0, 0x5400000D},
|
||||
{6, 1, 0x5400002D},
|
||||
{6, -1, 0x54FFFFED},
|
||||
}
|
||||
|
||||
for _, pattern := range usagePatterns {
|
||||
t.Logf("b %d", pattern.Offset)
|
||||
var code uint32
|
||||
|
||||
switch pattern.Type {
|
||||
case 0:
|
||||
code = arm.Jump(pattern.Offset)
|
||||
case 1:
|
||||
code = arm.JumpIfEqual(pattern.Offset)
|
||||
case 2:
|
||||
code = arm.JumpIfNotEqual(pattern.Offset)
|
||||
case 3:
|
||||
code = arm.JumpIfGreater(pattern.Offset)
|
||||
case 4:
|
||||
code = arm.JumpIfGreaterOrEqual(pattern.Offset)
|
||||
case 5:
|
||||
code = arm.JumpIfLess(pattern.Offset)
|
||||
case 6:
|
||||
code = arm.JumpIfLessOrEqual(pattern.Offset)
|
||||
}
|
||||
|
||||
assert.DeepEqual(t, code, pattern.Code)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue