benchmark_test.go 896 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package aerotun
  2. import "testing"
  3. func BenchmarkProtocolRoundTrip(b *testing.B) {
  4. a, err := newProtocol(testPSK)
  5. if err != nil {
  6. b.Fatal(err)
  7. }
  8. peer, err := newProtocol(testPSK)
  9. if err != nil {
  10. b.Fatal(err)
  11. }
  12. hello, _ := a.seal(flagHello, []byte{5, 140}, zeroSession)
  13. _, _, sender, _, err := peer.open(hello)
  14. if err != nil {
  15. b.Fatal(err)
  16. }
  17. ack, _ := peer.seal(flagAck, []byte{5, 140}, sender)
  18. _, _, sender, _, err = a.open(ack)
  19. if err != nil {
  20. b.Fatal(err)
  21. }
  22. confirm, _ := a.seal(flagConfirm, []byte{5, 140}, sender)
  23. if _, _, _, _, err = peer.open(confirm); err != nil {
  24. b.Fatal(err)
  25. }
  26. payload := make([]byte, 1200)
  27. b.SetBytes(int64(len(payload)))
  28. b.ReportAllocs()
  29. b.ResetTimer()
  30. for range b.N {
  31. packet, err := a.seal(0, payload, zeroSession)
  32. if err != nil {
  33. b.Fatal(err)
  34. }
  35. if _, _, _, _, err = peer.open(packet); err != nil {
  36. b.Fatal(err)
  37. }
  38. }
  39. }