Adding modding folder with a hacked build.

This commit is contained in:
ml
2026-09-26 08:53:08 +02:00
parent cdb960dc71
commit c91080aba7
755 changed files with 50424 additions and 0 deletions
+157
View File
@@ -0,0 +1,157 @@
package serial_test
import (
"io"
"testing"
"github.com/inkyblackness/hacked/ss1/serial"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)
type EncoderSuite struct {
suite.Suite
store *serial.ByteStore
coder *serial.Encoder
}
func TestEncoderSuite(t *testing.T) {
suite.Run(t, new(EncoderSuite))
}
func (suite *EncoderSuite) SetupTest() {
suite.store = serial.NewByteStore()
suite.coder = serial.NewEncoder(suite.store)
}
func (suite *EncoderSuite) TestImplementsCoderInterface() {
instance := interface{}(suite.coder)
_, ok := instance.(serial.Coder)
assert.True(suite.T(), ok)
}
func (suite *EncoderSuite) TestDataOnEmptyEncoderReturnsEmptyArray() {
suite.verifyData(make([]byte, 0))
}
func (suite *EncoderSuite) TestCodeUint32Pointer() {
var value uint32 = 0x12345678
suite.verifyCodedData(&value, []byte{0x78, 0x56, 0x34, 0x12})
}
func (suite *EncoderSuite) TestCodeUint32() {
var value uint32 = 0x12345678
suite.verifyCodedData(value, []byte{0x78, 0x56, 0x34, 0x12})
}
func (suite *EncoderSuite) TestCodeUint16Pointer() {
var value uint16 = 0x3456
suite.verifyCodedData(&value, []byte{0x56, 0x34})
}
func (suite *EncoderSuite) TestCodeUint16() {
var value uint16 = 0x3456
suite.verifyCodedData(value, []byte{0x56, 0x34})
}
func (suite *EncoderSuite) TestCodeBytePointer() {
var value byte = 0x42
suite.verifyCodedData(&value, []byte{0x42})
}
func (suite *EncoderSuite) TestCodeByte() {
var value byte = 0x42
suite.verifyCodedData(value, []byte{0x42})
}
func (suite *EncoderSuite) TestCodeByteSlice() {
value := []byte{0x01, 0x02, 0x03}
suite.verifyCodedData(value, []byte{0x01, 0x02, 0x03})
}
func (suite *EncoderSuite) TestFirstErrorByCode() {
var target errorBuffer
suite.coder = serial.NewEncoder(&target)
suite.coder.Code(uint16(0))
target.errorOnNextCall = true
suite.coder.Code(uint32(0))
assert.EqualError(suite.T(), suite.coder.FirstError(), "errorBuffer on call number 2")
}
func (suite *EncoderSuite) TestCodeDoesNothingOnPreviousError() {
var target errorBuffer
suite.coder = serial.NewEncoder(&target)
target.errorOnNextCall = true
suite.coder.Code(uint32(0))
target.errorOnNextCall = true
suite.coder.Code(uint32(0))
assert.Equal(suite.T(), target.callCounter, 1)
assert.EqualError(suite.T(), suite.coder.FirstError(), "errorBuffer on call number 1")
}
func (suite *EncoderSuite) TestImplementsWriterInterface() {
instance := interface{}(suite.coder)
_, ok := instance.(io.Writer)
assert.True(suite.T(), ok)
}
func (suite *EncoderSuite) TestWriteToWriter() {
written, err := suite.coder.Write([]byte{0x0A, 0x0B, 0x0C})
assert.Nil(suite.T(), err, "no error expected")
assert.Equal(suite.T(), 3, written, "unexpected length written")
suite.verifyData([]byte{0x0A, 0x0B, 0x0C})
}
func (suite *EncoderSuite) TestWriteDoesNothingOnPreviousError() {
var target errorBuffer
suite.coder = serial.NewEncoder(&target)
target.errorOnNextCall = true
suite.coder.Code(uint32(0))
_, _ = suite.coder.Write([]byte{0x0A, 0x0B, 0x0C})
assert.Equal(suite.T(), target.callCounter, 1)
}
func (suite *EncoderSuite) TestWriteReturnsFirstErrorOnPreviousError() {
var target errorBuffer
suite.coder = serial.NewEncoder(&target)
target.errorOnNextCall = true
suite.coder.Code(uint32(0))
n, err := suite.coder.Write([]byte{0x0A, 0x0B, 0x0C})
assert.Equal(suite.T(), 0, n, "Should return zero written bytes")
assert.EqualError(suite.T(), err, "errorBuffer on call number 1")
}
func (suite *EncoderSuite) TestWriteOnErrorCase() {
var target errorBuffer
suite.coder = serial.NewEncoder(&target)
target.errorOnNextCall = true
target.errorByteCount = 2
n, err := suite.coder.Write([]byte{0x0A, 0x0B, 0x0C})
assert.Equal(suite.T(), 2, n, "Should return count of successfully written bytes")
assert.EqualError(suite.T(), err, "errorBuffer on call number 1")
assert.EqualError(suite.T(), suite.coder.FirstError(), "errorBuffer on call number 1", "should set first error")
}
func (suite *EncoderSuite) TestCodeWithCodable() {
codable := new(MockedCodable)
suite.coder.Code(codable)
assert.Equal(suite.T(), suite.coder, codable.calledCoder, "Should be called with coder")
}
func (suite *EncoderSuite) verifyData(expected []byte) {
assert.Nil(suite.T(), suite.coder.FirstError())
result := suite.store.Data()
assert.Equal(suite.T(), expected, result)
}
func (suite *EncoderSuite) verifyCodedData(value interface{}, expected []byte) {
suite.coder.Code(value)
suite.verifyData(expected)
}