buffer_test.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package alloc_test
  2. import (
  3. "testing"
  4. . "v2ray.com/core/common/alloc"
  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 := NewBuffer()
  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 := NewBuffer()
  21. defer buffer.Release()
  22. assert.Bool(buffer.IsEmpty()).IsTrue()
  23. }
  24. func TestBufferString(t *testing.T) {
  25. assert := assert.On(t)
  26. buffer := NewBuffer()
  27. defer buffer.Release()
  28. buffer.AppendFunc(serial.WriteString("Test String"))
  29. assert.String(buffer.String()).Equals("Test String")
  30. }
  31. func TestBufferWrite(t *testing.T) {
  32. assert := assert.On(t)
  33. buffer := NewLocalBuffer(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 := NewBuffer()
  45. buffer.Release()
  46. }
  47. }
  48. func BenchmarkNewLocalBuffer8192(b *testing.B) {
  49. for i := 0; i < b.N; i++ {
  50. buffer := NewLocalBuffer(8192)
  51. buffer.Release()
  52. }
  53. }
  54. func BenchmarkNewBuffer2048(b *testing.B) {
  55. for i := 0; i < b.N; i++ {
  56. buffer := NewSmallBuffer()
  57. buffer.Release()
  58. }
  59. }
  60. func BenchmarkNewLocalBuffer2048(b *testing.B) {
  61. for i := 0; i < b.N; i++ {
  62. buffer := NewLocalBuffer(2048)
  63. buffer.Release()
  64. }
  65. }