const_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package yamux
  2. import (
  3. "testing"
  4. )
  5. func TestConst(t *testing.T) {
  6. if protoVersion != 0 {
  7. t.Fatalf("bad: %v", protoVersion)
  8. }
  9. if typeData != 0 {
  10. t.Fatalf("bad: %v", typeData)
  11. }
  12. if typeWindowUpdate != 1 {
  13. t.Fatalf("bad: %v", typeWindowUpdate)
  14. }
  15. if typePing != 2 {
  16. t.Fatalf("bad: %v", typePing)
  17. }
  18. if typeGoAway != 3 {
  19. t.Fatalf("bad: %v", typeGoAway)
  20. }
  21. if flagSYN != 1 {
  22. t.Fatalf("bad: %v", flagSYN)
  23. }
  24. if flagACK != 2 {
  25. t.Fatalf("bad: %v", flagACK)
  26. }
  27. if flagFIN != 4 {
  28. t.Fatalf("bad: %v", flagFIN)
  29. }
  30. if flagRST != 8 {
  31. t.Fatalf("bad: %v", flagRST)
  32. }
  33. if goAwayNormal != 0 {
  34. t.Fatalf("bad: %v", goAwayNormal)
  35. }
  36. if goAwayProtoErr != 1 {
  37. t.Fatalf("bad: %v", goAwayProtoErr)
  38. }
  39. if goAwayInternalErr != 2 {
  40. t.Fatalf("bad: %v", goAwayInternalErr)
  41. }
  42. if headerSize != 12 {
  43. t.Fatalf("bad header size")
  44. }
  45. }
  46. func TestEncodeDecode(t *testing.T) {
  47. hdr := header(make([]byte, headerSize))
  48. hdr.encode(typeWindowUpdate, flagACK|flagRST, 1234, 4321)
  49. if hdr.Version() != protoVersion {
  50. t.Fatalf("bad: %v", hdr)
  51. }
  52. if hdr.MsgType() != typeWindowUpdate {
  53. t.Fatalf("bad: %v", hdr)
  54. }
  55. if hdr.Flags() != flagACK|flagRST {
  56. t.Fatalf("bad: %v", hdr)
  57. }
  58. if hdr.StreamID() != 1234 {
  59. t.Fatalf("bad: %v", hdr)
  60. }
  61. if hdr.Length() != 4321 {
  62. t.Fatalf("bad: %v", hdr)
  63. }
  64. }