i6502/acia6551_test.go

56 lines
961 B
Go
Raw Normal View History

2014-08-17 14:49:22 +00:00
package i6502
import (
2014-08-18 14:37:51 +00:00
"fmt"
2014-08-17 14:49:22 +00:00
"github.com/stretchr/testify/assert"
"testing"
)
2014-08-18 14:37:51 +00:00
func AciaSubject() (*Acia6551, chan byte, chan byte) {
2014-08-17 15:18:14 +00:00
tx := make(chan byte)
rx := make(chan byte)
acia, _ := NewAcia6551(rx, tx)
2014-08-18 14:37:51 +00:00
return acia, rx, tx
2014-08-17 15:18:14 +00:00
}
2014-08-17 14:49:22 +00:00
func TestNewAcia6551(t *testing.T) {
tx := make(chan byte)
rx := make(chan byte)
acia, err := NewAcia6551(rx, tx)
assert.Nil(t, err)
assert.Equal(t, 0x4, acia.Size())
}
2014-08-17 15:18:14 +00:00
func TestAciaReset(t *testing.T) {
2014-08-18 14:37:51 +00:00
a, _, _ := AciaSubject()
2014-08-17 15:18:14 +00:00
a.Reset()
assert.Equal(t, a.txData, 0)
assert.True(t, a.txEmpty)
assert.Equal(t, a.rxData, 0)
assert.False(t, a.rxFull)
assert.False(t, a.txIrqEnabled)
assert.False(t, a.rxIrqEnabled)
2014-08-17 20:36:01 +00:00
assert.False(t, a.overrun)
assert.Equal(t, 0, a.controlData)
2014-08-17 15:18:14 +00:00
}
2014-08-18 14:37:51 +00:00
func TestAciaReadData(t *testing.T) {
a, _, _ := AciaSubject()
a.Rx <- 0x42
assert.True(t, a.rxFull)
fmt.Printf("Reading...\n")
value := a.Read(aciaData)
assert.Equal(t, 0x42, value)
assert.False(t, a.rxFull)
2014-08-17 15:18:14 +00:00
}