stun_test.go 671 B

1234567891011121314151617181920212223242526272829
  1. package sniff_test
  2. import (
  3. "context"
  4. "encoding/hex"
  5. "testing"
  6. "github.com/sagernet/sing-box/common/sniff"
  7. C "github.com/sagernet/sing-box/constant"
  8. "github.com/stretchr/testify/require"
  9. )
  10. func TestSniffSTUN(t *testing.T) {
  11. t.Parallel()
  12. packet, err := hex.DecodeString("000100002112a44224b1a025d0c180c484341306")
  13. require.NoError(t, err)
  14. metadata, err := sniff.STUNMessage(context.Background(), packet)
  15. require.NoError(t, err)
  16. require.Equal(t, metadata.Protocol, C.ProtocolSTUN)
  17. }
  18. func FuzzSniffSTUN(f *testing.F) {
  19. f.Fuzz(func(t *testing.T, data []byte) {
  20. if _, err := sniff.STUNMessage(context.Background(), data); err == nil {
  21. t.Fail()
  22. }
  23. })
  24. }