diff --git a/internal/multiplex/frameSorter_test.go b/internal/multiplex/frameSorter_test.go index cfceded..39c3b99 100644 --- a/internal/multiplex/frameSorter_test.go +++ b/internal/multiplex/frameSorter_test.go @@ -29,7 +29,7 @@ func TestRecvNewFrame(t *testing.T) { var testSorted []uint32 for x := 0; x < len(set); x++ { oct := make([]byte, 8) - stream.sortedBuf.Write(oct) + stream.sortedBuf.Read(oct) //log.Print(p) testSorted = append(testSorted, uint32(binary.BigEndian.Uint64(oct))) } diff --git a/internal/multiplex/obfs_test.go b/internal/multiplex/obfs_test.go new file mode 100644 index 0000000..45ff213 --- /dev/null +++ b/internal/multiplex/obfs_test.go @@ -0,0 +1,35 @@ +package multiplex + +import ( + "math/rand" + "reflect" + "testing" + "testing/quick" +) + +func TestOobfs(t *testing.T) { + sessionKey := make([]byte, 32) + rand.Read(sessionKey) + obfuscator, err := GenerateObfs(0x01, sessionKey) + if err != nil { + t.Errorf("failed to generate obfuscator %v", err) + } + + f := &Frame{} + _testFrame, _ := quick.Value(reflect.TypeOf(f), rand.New(rand.NewSource(42))) + testFrame := _testFrame.Interface().(*Frame) + obfsed, err := obfuscator.Obfs(testFrame) + if err != nil { + t.Error("failed to obfs ", err) + } + + resultFrame, err := obfuscator.Deobfs(obfsed) + if err != nil { + t.Error("failed to deobfs ", err) + } + if !reflect.DeepEqual(testFrame, resultFrame) { + t.Error("expecting", testFrame, + "got", resultFrame) + } + +}