test(QMCv2): add test data & case "mgg_map"

This commit is contained in:
MengYX
2021-12-14 02:56:33 +08:00
parent 7cc7aa19fd
commit 7755d47f7a
7 changed files with 35 additions and 18 deletions

View File

@ -1,40 +1,53 @@
package qmc
import (
"fmt"
"os"
"reflect"
"testing"
)
func loadTestMapCipherData() ([]byte, []byte, []byte, error) {
key, err := os.ReadFile("./testdata/mflac_map_key.bin")
func loadTestDataMapCipher(name string) ([]byte, []byte, []byte, error) {
key, err := os.ReadFile(fmt.Sprintf("./testdata/%s_key.bin", name))
if err != nil {
return nil, nil, nil, err
}
raw, err := os.ReadFile("./testdata/mflac_map_raw.bin")
raw, err := os.ReadFile(fmt.Sprintf("./testdata/%s_raw.bin", name))
if err != nil {
return nil, nil, nil, err
}
target, err := os.ReadFile("./testdata/mflac_map_target.bin")
target, err := os.ReadFile(fmt.Sprintf("./testdata/%s_target.bin", name))
if err != nil {
return nil, nil, nil, err
}
return key, raw, target, nil
}
func Test_mapCipher_Decrypt(t *testing.T) {
key, raw, target, err := loadTestMapCipherData()
if err != nil {
t.Fatalf("load testing data failed: %s", err)
tests := []struct {
name string
wantErr bool
}{
{"mflac_map", false},
{"mgg_map", false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
key, raw, target, err := loadTestDataMapCipher(tt.name)
if err != nil {
t.Fatalf("load testing data failed: %s", err)
}
c, err := NewMapCipher(key)
if err != nil {
t.Errorf("init mapCipher failed: %s", err)
return
}
c.Decrypt(raw, 0)
if !reflect.DeepEqual(raw, target) {
t.Error("overall")
}
})
}
t.Run("overall", func(t *testing.T) {
c, err := NewMapCipher(key)
if err != nil {
t.Errorf("init mapCipher failed: %s", err)
return
}
c.Decrypt(raw, 0)
if !reflect.DeepEqual(raw, target) {
t.Error("overall")
}
})
}