xdr_test.go 1019 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package xdr
  2. import (
  3. "bytes"
  4. "testing"
  5. "testing/quick"
  6. )
  7. func TestPad(t *testing.T) {
  8. tests := [][]int{
  9. {0, 0},
  10. {1, 3},
  11. {2, 2},
  12. {3, 1},
  13. {4, 0},
  14. {32, 0},
  15. {33, 3},
  16. }
  17. for _, tc := range tests {
  18. if p := pad(tc[0]); p != tc[1] {
  19. t.Errorf("Incorrect padding for %d bytes, %d != %d", tc[0], p, tc[1])
  20. }
  21. }
  22. }
  23. func TestBytesNil(t *testing.T) {
  24. fn := func(bs []byte) bool {
  25. var b = new(bytes.Buffer)
  26. var w = NewWriter(b)
  27. var r = NewReader(b)
  28. w.WriteBytes(bs)
  29. w.WriteBytes(bs)
  30. r.ReadBytes(nil)
  31. res := r.ReadBytes(nil)
  32. return bytes.Compare(bs, res) == 0
  33. }
  34. if err := quick.Check(fn, nil); err != nil {
  35. t.Error(err)
  36. }
  37. }
  38. func TestBytesGiven(t *testing.T) {
  39. fn := func(bs []byte) bool {
  40. var b = new(bytes.Buffer)
  41. var w = NewWriter(b)
  42. var r = NewReader(b)
  43. w.WriteBytes(bs)
  44. w.WriteBytes(bs)
  45. res := make([]byte, 12)
  46. res = r.ReadBytes(res)
  47. res = r.ReadBytes(res)
  48. return bytes.Compare(bs, res) == 0
  49. }
  50. if err := quick.Check(fn, nil); err != nil {
  51. t.Error(err)
  52. }
  53. }