buffer_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package buf_test
  2. import (
  3. "testing"
  4. . "v2ray.com/core/common/buf"
  5. "v2ray.com/core/common/serial"
  6. "v2ray.com/core/testing/assert"
  7. )
  8. func TestBufferClear(t *testing.T) {
  9. assert := assert.On(t)
  10. buffer := New()
  11. defer buffer.Release()
  12. payload := "Bytes"
  13. buffer.Append([]byte(payload))
  14. assert.Int(buffer.Len()).Equals(len(payload))
  15. buffer.Clear()
  16. assert.Int(buffer.Len()).Equals(0)
  17. }
  18. func TestBufferIsEmpty(t *testing.T) {
  19. assert := assert.On(t)
  20. buffer := New()
  21. defer buffer.Release()
  22. assert.Bool(buffer.IsEmpty()).IsTrue()
  23. }
  24. func TestBufferString(t *testing.T) {
  25. assert := assert.On(t)
  26. buffer := New()
  27. defer buffer.Release()
  28. assert.Error(buffer.AppendSupplier(serial.WriteString("Test String"))).IsNil()
  29. assert.String(buffer.String()).Equals("Test String")
  30. }
  31. func TestBufferWrite(t *testing.T) {
  32. assert := assert.On(t)
  33. buffer := NewLocal(8)
  34. nBytes, err := buffer.Write([]byte("abcd"))
  35. assert.Error(err).IsNil()
  36. assert.Int(nBytes).Equals(4)
  37. nBytes, err = buffer.Write([]byte("abcde"))
  38. assert.Error(err).IsNil()
  39. assert.Int(nBytes).Equals(4)
  40. assert.String(buffer.String()).Equals("abcdabcd")
  41. }
  42. func BenchmarkNewBuffer8192(b *testing.B) {
  43. for i := 0; i < b.N; i++ {
  44. buffer := New()
  45. buffer.Release()
  46. }
  47. }
  48. func BenchmarkNewLocalBuffer8192(b *testing.B) {
  49. for i := 0; i < b.N; i++ {
  50. buffer := NewLocal(8192)
  51. buffer.Release()
  52. }
  53. }