38 lines
1.2 KiB
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)
|
|
}
|