stun_test.go 657 B

12345678910111213141516171819202122232425262728
  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. packet, err := hex.DecodeString("000100002112a44224b1a025d0c180c484341306")
  12. require.NoError(t, err)
  13. metadata, err := sniff.STUNMessage(context.Background(), packet)
  14. require.NoError(t, err)
  15. require.Equal(t, metadata.Protocol, C.ProtocolSTUN)
  16. }
  17. func FuzzSniffSTUN(f *testing.F) {
  18. f.Fuzz(func(t *testing.T, data []byte) {
  19. if _, err := sniff.STUNMessage(context.Background(), data); err == nil {
  20. t.Fail()
  21. }
  22. })
  23. }