mirror of
https://github.com/CPunch/gopenfusion.git
synced 2024-12-04 22:46:32 +00:00
Compare commits
4 Commits
b02c141000
...
d8277ea89c
Author | SHA1 | Date | |
---|---|---|---|
d8277ea89c | |||
81de857670 | |||
e8f5e5fc9c | |||
6f55cbbad5 |
10
.github/workflows/tests.yaml
vendored
10
.github/workflows/tests.yaml
vendored
@ -1,15 +1,19 @@
|
|||||||
name: Go
|
name: unit-tests
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
paths:
|
paths:
|
||||||
- ./**.go
|
- cmd/**
|
||||||
|
- config/**
|
||||||
|
- internal/**
|
||||||
|
- login/**
|
||||||
|
- shard/**
|
||||||
- go.mod
|
- go.mod
|
||||||
- go.sum
|
- go.sum
|
||||||
- .github/workflows/tests.yaml
|
- .github/workflows/tests.yaml
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests:
|
run:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -15,50 +15,97 @@ type TestPacketData struct {
|
|||||||
C int32
|
C int32
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is the data we expect to get from encoding the above struct with:
|
var (
|
||||||
//
|
testStruct = TestPacketData{
|
||||||
// Encode(TestPacketData{
|
|
||||||
// A: 1,
|
|
||||||
// B: 2,
|
|
||||||
// UTF16Str: "hello world",
|
|
||||||
// C: 3,
|
|
||||||
// })
|
|
||||||
var testData = [...]byte{
|
|
||||||
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
|
||||||
0x68, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x6c, 0x00,
|
|
||||||
0x6f, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6f, 0x00,
|
|
||||||
0x72, 0x00, 0x6c, 0x00, 0x64, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPacketEncodeDecode(t *testing.T) {
|
|
||||||
buf := &bytes.Buffer{}
|
|
||||||
pkt := protocol.NewPacket(buf)
|
|
||||||
|
|
||||||
if err := pkt.Encode(TestPacketData{
|
|
||||||
A: 1,
|
A: 1,
|
||||||
B: 2,
|
B: 2,
|
||||||
UTF16Str: "hello world",
|
UTF16Str: "hello world",
|
||||||
C: 3,
|
C: 3,
|
||||||
}); err != nil {
|
}
|
||||||
|
|
||||||
|
// this is the data we expect to get from encoding the above struct
|
||||||
|
testData = [...]byte{
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||||
|
0x68, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x6c, 0x00,
|
||||||
|
0x6f, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6f, 0x00,
|
||||||
|
0x72, 0x00, 0x6c, 0x00, 0x64, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||||
|
}
|
||||||
|
|
||||||
|
// this is the data we expect to get from EncryptData(testData, []byte(protocol.DEFAULT_KEY))
|
||||||
|
encTestData = []byte{
|
||||||
|
0x23, 0x40, 0x72, 0x51, 0x6c, 0x7e, 0x57, 0x6c,
|
||||||
|
0x05, 0x3b, 0x17, 0x51, 0x02, 0x7e, 0x40, 0x23,
|
||||||
|
0x02, 0x40, 0x7e, 0x51, 0x19, 0x52, 0x38, 0x23,
|
||||||
|
0x1f, 0x40, 0x1e, 0x0a, 0x51, 0x7e, 0x57, 0x23,
|
||||||
|
0x6d, 0x40, 0x72, 0x6e, 0x51, 0x7e, 0x57, 0x23,
|
||||||
|
0x23, 0x40, 0x72, 0x51, 0x6e, 0x7e, 0x57, 0x6d,
|
||||||
|
0x6d, 0x57, 0x72, 0x51, 0x6e, 0x7e, 0x40, 0x23,
|
||||||
|
0x6d, 0x40, 0x7e, 0x51, 0x6e, 0x72, 0x57, 0x23,
|
||||||
|
0x6d, 0x40, 0x72, 0x6e, 0x51, 0x7e, 0x57, 0x23,
|
||||||
|
0x6d, 0x40, 0x72, 0x6d, 0x51, 0x7e, 0x57, 0x23,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestPacketEncode(t *testing.T) {
|
||||||
|
buf := bytes.NewBuffer(nil)
|
||||||
|
pkt := protocol.NewPacket(buf)
|
||||||
|
|
||||||
|
if err := pkt.Encode(testStruct); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !bytes.Equal(buf.Bytes(), testData[:]) {
|
if !bytes.Equal(buf.Bytes(), testData[:]) {
|
||||||
t.Error("packet data does not match!")
|
t.Error("packet data does not match!")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPacketDecode(t *testing.T) {
|
||||||
|
buf := bytes.NewBuffer(nil)
|
||||||
|
pkt := protocol.NewPacket(buf)
|
||||||
|
buf.Write(testData[:])
|
||||||
|
|
||||||
var test TestPacketData
|
var test TestPacketData
|
||||||
if err := pkt.Decode(&test); err != nil {
|
if err := pkt.Decode(&test); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if test.A != 1 || test.B != 2 || test.C != 3 || test.UTF16Str != "hello world" {
|
if test != testStruct {
|
||||||
t.Error("decoded packet data does not match!")
|
t.Error("packet data does not match!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDataEncrypt(t *testing.T) {
|
||||||
|
buf := make([]byte, len(testData))
|
||||||
|
copy(buf, testData[:])
|
||||||
|
|
||||||
|
protocol.EncryptData(buf, []byte(protocol.DEFAULT_KEY))
|
||||||
|
|
||||||
|
if !bytes.Equal(buf, encTestData) {
|
||||||
|
t.Error("encrypted data does not match!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDataDecrypt(t *testing.T) {
|
||||||
|
buf := make([]byte, len(encTestData))
|
||||||
|
copy(buf, encTestData)
|
||||||
|
|
||||||
|
protocol.DecryptData(buf, []byte(protocol.DEFAULT_KEY))
|
||||||
|
|
||||||
|
if !bytes.Equal(buf, testData[:]) {
|
||||||
|
t.Error("decrypted data does not match!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCreateNewKey(t *testing.T) {
|
||||||
|
key := protocol.CreateNewKey(123456789, 0x1234567890abcdef, 0x1234567890abcdef)
|
||||||
|
|
||||||
|
if !bytes.Equal(key, []byte{0x0, 0x31, 0xb8, 0xcd, 0xd, 0xc3, 0xad, 0x67}) {
|
||||||
|
t.Error("key does not match!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user