q/src/arm/arm_test.go

38 lines
1.2 KiB
Go

package arm_test
import (
"testing"
"git.urbach.dev/cli/q/src/arm"
"git.urbach.dev/go/assert"
)
func TestConstants(t *testing.T) {
assert.DeepEqual(t, arm.Nop(), 0xD503201F)
assert.DeepEqual(t, arm.Return(), 0xD65F03C0)
assert.DeepEqual(t, arm.Syscall(), 0xD4000001)
}
func TestNotEncodable(t *testing.T) {
_, encodable := arm.AndRegisterNumber(arm.X0, arm.X0, 0)
assert.False(t, encodable)
_, encodable = arm.OrRegisterNumber(arm.X0, arm.X0, 0)
assert.False(t, encodable)
_, encodable = arm.XorRegisterNumber(arm.X0, arm.X0, 0)
assert.False(t, encodable)
_, encodable = arm.AndRegisterNumber(arm.X0, arm.X0, -1)
assert.False(t, encodable)
_, encodable = arm.OrRegisterNumber(arm.X0, arm.X0, -1)
assert.False(t, encodable)
_, encodable = arm.XorRegisterNumber(arm.X0, arm.X0, -1)
assert.False(t, encodable)
_, encodable = arm.AddRegisterNumber(arm.X0, arm.X0, 0xFFFF)
assert.False(t, encodable)
_, encodable = arm.AddRegisterNumber(arm.X0, arm.X0, 0xF0000000)
assert.False(t, encodable)
_, encodable = arm.SubRegisterNumber(arm.X0, arm.X0, 0xFFFF)
assert.False(t, encodable)
_, encodable = arm.SubRegisterNumber(arm.X0, arm.X0, 0xF0000000)
assert.False(t, encodable)
}