| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- package serial_test
 
- import (
 
- 	"bytes"
 
- 	"testing"
 
- 	"github.com/google/go-cmp/cmp"
 
- 	"github.com/xtls/xray-core/common"
 
- 	"github.com/xtls/xray-core/common/buf"
 
- 	"github.com/xtls/xray-core/common/serial"
 
- )
 
- func TestUint16Serial(t *testing.T) {
 
- 	b := buf.New()
 
- 	defer b.Release()
 
- 	n, err := serial.WriteUint16(b, 10)
 
- 	common.Must(err)
 
- 	if n != 2 {
 
- 		t.Error("expect 2 bytes writtng, but actually ", n)
 
- 	}
 
- 	if diff := cmp.Diff(b.Bytes(), []byte{0, 10}); diff != "" {
 
- 		t.Error(diff)
 
- 	}
 
- }
 
- func TestUint64Serial(t *testing.T) {
 
- 	b := buf.New()
 
- 	defer b.Release()
 
- 	n, err := serial.WriteUint64(b, 10)
 
- 	common.Must(err)
 
- 	if n != 8 {
 
- 		t.Error("expect 8 bytes writtng, but actually ", n)
 
- 	}
 
- 	if diff := cmp.Diff(b.Bytes(), []byte{0, 0, 0, 0, 0, 0, 0, 10}); diff != "" {
 
- 		t.Error(diff)
 
- 	}
 
- }
 
- func TestReadUint16(t *testing.T) {
 
- 	testCases := []struct {
 
- 		Input  []byte
 
- 		Output uint16
 
- 	}{
 
- 		{
 
- 			Input:  []byte{0, 1},
 
- 			Output: 1,
 
- 		},
 
- 	}
 
- 	for _, testCase := range testCases {
 
- 		v, err := serial.ReadUint16(bytes.NewReader(testCase.Input))
 
- 		common.Must(err)
 
- 		if v != testCase.Output {
 
- 			t.Error("for input ", testCase.Input, " expect output ", testCase.Output, " but got ", v)
 
- 		}
 
- 	}
 
- }
 
- func BenchmarkReadUint16(b *testing.B) {
 
- 	reader := buf.New()
 
- 	defer reader.Release()
 
- 	common.Must2(reader.Write([]byte{0, 1}))
 
- 	b.ResetTimer()
 
- 	for i := 0; i < b.N; i++ {
 
- 		_, err := serial.ReadUint16(reader)
 
- 		common.Must(err)
 
- 		reader.Clear()
 
- 		reader.Extend(2)
 
- 	}
 
- }
 
- func BenchmarkWriteUint64(b *testing.B) {
 
- 	writer := buf.New()
 
- 	defer writer.Release()
 
- 	b.ResetTimer()
 
- 	for i := 0; i < b.N; i++ {
 
- 		_, err := serial.WriteUint64(writer, 8)
 
- 		common.Must(err)
 
- 		writer.Clear()
 
- 	}
 
- }
 
 
  |