From f5fc42852f85f064210a2b617dc1c6eb5f97d424 Mon Sep 17 00:00:00 2001 From: "Arrobo, Gabriel" Date: Wed, 22 Oct 2025 13:23:13 -0700 Subject: [PATCH] Remove github.com/stretchr/testify and rely only in GO testing package Signed-off-by: Arrobo, Gabriel --- VERSION | 2 +- flowdesc/ip_filter_rule_field_test.go | 14 +++-- flowdesc/ip_filter_rule_test.go | 84 ++++++++++++++++++--------- fsm/fsm_test.go | 60 ++++++++++++++----- go.mod | 6 -- go.sum | 8 --- httpwrapper/httpwrapper_test.go | 45 +++++++++----- 7 files changed, 143 insertions(+), 76 deletions(-) diff --git a/VERSION b/VERSION index 0f8356d..eac1e0a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.6-dev +1.5.6 diff --git a/flowdesc/ip_filter_rule_field_test.go b/flowdesc/ip_filter_rule_field_test.go index 5212fa7..551d193 100644 --- a/flowdesc/ip_filter_rule_field_test.go +++ b/flowdesc/ip_filter_rule_field_test.go @@ -6,8 +6,6 @@ package flowdesc import ( "testing" - - "github.com/stretchr/testify/require" ) func TestBuildIPFilterRuleFromField(t *testing.T) { @@ -94,10 +92,16 @@ func TestBuildIPFilterRuleFromField(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { ipFilterRule, err := BuildIPFilterRuleFromField(tc.configList) - require.NoError(t, err) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } filterRuleContent, err := Encode(ipFilterRule) - require.NoError(t, err) - require.Equal(t, tc.ipFilterRule, filterRuleContent) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if tc.ipFilterRule != filterRuleContent { + t.Fatalf("expected %v, got %v", tc.ipFilterRule, filterRuleContent) + } }) } } diff --git a/flowdesc/ip_filter_rule_test.go b/flowdesc/ip_filter_rule_test.go index 4b3e33f..228b334 100644 --- a/flowdesc/ip_filter_rule_test.go +++ b/flowdesc/ip_filter_rule_test.go @@ -6,9 +6,6 @@ package flowdesc import ( "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestIPFilterRuleEncode(t *testing.T) { @@ -20,32 +17,32 @@ func TestIPFilterRuleEncode(t *testing.T) { } if err := rule.SetAction(Permit); err != nil { - assert.Nil(t, err) + t.Fatalf("unexpected error: %v", err) } if err := rule.SetDirection(Out); err != nil { - assert.Nil(t, err) + t.Fatalf("unexpected error: %v", err) } if err := rule.SetProtocol(0xfc); err != nil { - assert.Nil(t, err) + t.Fatalf("unexpected error: %v", err) } if err := rule.SetSourceIP("any"); err != nil { - assert.Nil(t, err) + t.Fatalf("unexpected error: %v", err) } if err := rule.SetDestinationIP("assigned"); err != nil { - assert.Nil(t, err) + t.Fatalf("unexpected error: %v", err) } if err := rule.SetDestinationPorts("655"); err != nil { - assert.Nil(t, err) + t.Fatalf("unexpected error: %v", err) } result, err := Encode(rule) if err != nil { - assert.Nil(t, err) + t.Fatalf("unexpected error: %v", err) } if result != testStr1 { t.Fatalf("Encode error, \n\t expect: %s,\n\t get: %s", testStr1, result) @@ -128,16 +125,30 @@ func TestIPFilterRuleDecode(t *testing.T) { for testName, expected := range testCases { t.Run(testName, func(t *testing.T) { r, err := Decode(expected.filterRule) - - require.Equal(t, expected.action, r.GetAction()) - require.Equal(t, expected.dir, r.GetDirection()) - require.Equal(t, expected.proto, r.GetProtocol()) - require.Equal(t, expected.src, r.GetSourceIP()) - require.Equal(t, expected.srcPorts, r.GetSourcePorts()) - require.Equal(t, expected.dst, r.GetDestinationIP()) - require.Equal(t, expected.dstPorts, r.GetDestinationPorts()) - - require.NoError(t, err) + if expected.action != r.GetAction() { + t.Fatalf("expected action %v, got %v", expected.action, r.GetAction()) + } + if expected.dir != r.GetDirection() { + t.Fatalf("expected direction %v, got %v", expected.dir, r.GetDirection()) + } + if expected.proto != r.GetProtocol() { + t.Fatalf("expected protocol %v, got %v", expected.proto, r.GetProtocol()) + } + if expected.src != r.GetSourceIP() { + t.Fatalf("expected source IP %v, got %v", expected.src, r.GetSourceIP()) + } + if expected.srcPorts != r.GetSourcePorts() { + t.Fatalf("expected source ports %v, got %v", expected.srcPorts, r.GetSourcePorts()) + } + if expected.dst != r.GetDestinationIP() { + t.Fatalf("expected destination IP %v, got %v", expected.dst, r.GetDestinationIP()) + } + if expected.dstPorts != r.GetDestinationPorts() { + t.Fatalf("expected destination ports %v, got %v", expected.dstPorts, r.GetDestinationPorts()) + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } }) } } @@ -219,15 +230,30 @@ func TestIPFilterRuleSwapSourceAndDestination(t *testing.T) { t.Run(testName, func(t *testing.T) { r, err := Decode(expected.filterRule) r.SwapSourceAndDestination() - require.Equal(t, expected.action, r.GetAction()) - require.Equal(t, expected.dir, r.GetDirection()) - require.Equal(t, expected.proto, r.GetProtocol()) - require.Equal(t, expected.src, r.GetSourceIP()) - require.Equal(t, expected.srcPorts, r.GetSourcePorts()) - require.Equal(t, expected.dst, r.GetDestinationIP()) - require.Equal(t, expected.dstPorts, r.GetDestinationPorts()) - - require.NoError(t, err) + if expected.action != r.GetAction() { + t.Fatalf("expected action %v, got %v", expected.action, r.GetAction()) + } + if expected.dir != r.GetDirection() { + t.Fatalf("expected direction %v, got %v", expected.dir, r.GetDirection()) + } + if expected.proto != r.GetProtocol() { + t.Fatalf("expected protocol %v, got %v", expected.proto, r.GetProtocol()) + } + if expected.src != r.GetSourceIP() { + t.Fatalf("expected source IP %v, got %v", expected.src, r.GetSourceIP()) + } + if expected.srcPorts != r.GetSourcePorts() { + t.Fatalf("expected source ports %v, got %v", expected.srcPorts, r.GetSourcePorts()) + } + if expected.dst != r.GetDestinationIP() { + t.Fatalf("expected destination IP %v, got %v", expected.dst, r.GetDestinationIP()) + } + if expected.dstPorts != r.GetDestinationPorts() { + t.Fatalf("expected destination ports %v, got %v", expected.dstPorts, r.GetDestinationPorts()) + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } }) } } diff --git a/fsm/fsm_test.go b/fsm/fsm_test.go index 963a0ce..24d1cba 100644 --- a/fsm/fsm_test.go +++ b/fsm/fsm_test.go @@ -8,8 +8,6 @@ import ( "context" "fmt" "testing" - - "github.com/stretchr/testify/assert" ) const ( @@ -25,13 +23,23 @@ const ( func TestState(t *testing.T) { s := NewState(Closed) - assert.Equal(t, Closed, s.Current(), "Current() failed") - assert.True(t, s.Is(Closed), "Is() failed") + if s.Current() != Closed { + t.Errorf("Current() failed: expected %v, got %v", Closed, s.Current()) + } + + if !s.Is(Closed) { + t.Error("Is() failed: expected true for Closed state") + } s.Set(Opened) - assert.Equal(t, Opened, s.Current(), "Current() failed") - assert.True(t, s.Is(Opened), "Is() failed") + if s.Current() != Opened { + t.Errorf("Current() failed: expected %v, got %v", Opened, s.Current()) + } + + if !s.Is(Opened) { + t.Error("Is() failed: expected true for Opened state") + } } func TestFSM(t *testing.T) { @@ -52,15 +60,29 @@ func TestFSM(t *testing.T) { s := NewState(Closed) - assert.Nil(t, err, "NewFSM() failed") + if err != nil { + t.Errorf("NewFSM() failed: expected nil error, got %v", err) + } + + if err := f.SendEvent(ctx, s, Open, ArgsType{"TestArg": "test arg"}); err != nil { + t.Errorf("SendEvent() failed: expected nil error, got %v", err) + } + + if err := f.SendEvent(ctx, s, Close, ArgsType{"TestArg": "test arg"}); err != nil { + t.Errorf("SendEvent() failed: expected nil error, got %v", err) + } - assert.Nil(t, f.SendEvent(ctx, s, Open, ArgsType{"TestArg": "test arg"}), "SendEvent() failed") - assert.Nil(t, f.SendEvent(ctx, s, Close, ArgsType{"TestArg": "test arg"}), "SendEvent() failed") - assert.True(t, s.Is(Closed), "Transition failed") + if !s.Is(Closed) { + t.Error("Transition failed: expected state to be Closed") + } fakeEvent := EventType("fake event") - assert.EqualError(t, f.SendEvent(ctx, s, fakeEvent, nil), - fmt.Sprintf("unknown transition[From: %s, Event: %s]", s.Current(), fakeEvent)) + expectedError := fmt.Sprintf("unknown transition[From: %s, Event: %s]", s.Current(), fakeEvent) + if err := f.SendEvent(ctx, s, fakeEvent, nil); err == nil { + t.Error("SendEvent() should have failed with fake event") + } else if err.Error() != expectedError { + t.Errorf("SendEvent() error mismatch: expected %q, got %q", expectedError, err.Error()) + } } func TestFSMInitFail(t *testing.T) { @@ -82,7 +104,12 @@ func TestFSMInitFail(t *testing.T) { }, }) - assert.EqualError(t, err, fmt.Sprintf("duplicate transition: %+v", duplicateTrans)) + expectedError := fmt.Sprintf("duplicate transition: %+v", duplicateTrans) + if err == nil { + t.Error("NewFSM() should have failed with duplicate transition") + } else if err.Error() != expectedError { + t.Errorf("NewFSM() error mismatch: expected %q, got %q", expectedError, err.Error()) + } fakeState := StateType("fake state") @@ -103,5 +130,10 @@ func TestFSMInitFail(t *testing.T) { }, }) - assert.EqualError(t, err, fmt.Sprintf("unknown state: %+v", fakeState)) + expectedError = fmt.Sprintf("unknown state: %+v", fakeState) + if err == nil { + t.Error("NewFSM() should have failed with unknown state") + } else if err.Error() != expectedError { + t.Errorf("NewFSM() error mismatch: expected %q, got %q", expectedError, err.Error()) + } } diff --git a/go.mod b/go.mod index ec7c857..3b13714 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,6 @@ go 1.24.0 require ( github.com/evanphx/json-patch/v5 v5.9.11 github.com/gin-gonic/gin v1.11.0 - github.com/stretchr/testify v1.11.1 go.mongodb.org/mongo-driver v1.17.4 go.uber.org/zap v1.27.0 golang.org/x/net v0.46.0 @@ -15,7 +14,6 @@ require ( github.com/bytedance/sonic v1.14.0 // indirect github.com/bytedance/sonic/loader v0.3.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/gin-contrib/sse v1.1.0 // indirect github.com/go-playground/locales v0.14.1 // indirect @@ -27,14 +25,12 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // indirect - github.com/kr/pretty v0.1.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/montanaflynn/stats v0.7.1 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect github.com/quic-go/qpack v0.5.1 // indirect github.com/quic-go/quic-go v0.54.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect @@ -53,6 +49,4 @@ require ( golang.org/x/text v0.30.0 // indirect golang.org/x/tools v0.37.0 // indirect google.golang.org/protobuf v1.36.9 // indirect - gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index bf59f92..cba2380 100644 --- a/go.sum +++ b/go.sum @@ -38,12 +38,6 @@ github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGC github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -138,8 +132,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/httpwrapper/httpwrapper_test.go b/httpwrapper/httpwrapper_test.go index 882cea6..6abdda6 100644 --- a/httpwrapper/httpwrapper_test.go +++ b/httpwrapper/httpwrapper_test.go @@ -8,30 +8,49 @@ import ( "context" "net/http" "testing" - - "github.com/stretchr/testify/assert" ) func TestNewRequest(t *testing.T) { req, err := http.NewRequestWithContext(context.Background(), - "GET", "http://localhost:8080?name=NCTU&location=Hsinchu", nil) + "GET", "http://localhost:8080?name=Aether&location=USA", nil) if err != nil { t.Errorf("TestNewRequest error: %+v", err) } - req.Header.Set("Location", "https://www.nctu.edu.tw/") + req.Header.Set("Location", "https://aetherproject.org/") request := NewRequest(req, 1000) - assert.Equal(t, "https://www.nctu.edu.tw/", request.Header.Get("Location")) - assert.Equal(t, "NCTU", request.Query.Get("name")) - assert.Equal(t, "Hsinchu", request.Query.Get("location")) - assert.Equal(t, 1000, request.Body) + + if got := request.Header.Get("Location"); got != "https://aetherproject.org/" { + t.Errorf("Header.Get(\"Location\") = %q, want %q", got, "https://aetherproject.org/") + } + + if got := request.Query.Get("name"); got != "Aether" { + t.Errorf("Query.Get(\"name\") = %q, want %q", got, "Aether") + } + + if got := request.Query.Get("location"); got != "USA" { + t.Errorf("Query.Get(\"location\") = %q, want %q", got, "USA") + } + + if got := request.Body; got != 1000 { + t.Errorf("Body = %v, want %v", got, 1000) + } } func TestNewResponse(t *testing.T) { response := NewResponse(http.StatusCreated, map[string][]string{ - "Location": {"https://www.nctu.edu.tw/"}, - "Refresh": {"url=https://free5gc.org"}, + "Location": {"https://aetherproject.org/"}, + "Refresh": {"url=https://docs.sd-core.opennetworking.org"}, }, 1000) - assert.Equal(t, "https://www.nctu.edu.tw/", response.Header.Get("Location")) - assert.Equal(t, "url=https://free5gc.org", response.Header.Get("Refresh")) - assert.Equal(t, 1000, response.Body) + + if got := response.Header.Get("Location"); got != "https://aetherproject.org/" { + t.Errorf("Header.Get(\"Location\") = %q, want %q", got, "https://aetherproject.org/") + } + + if got := response.Header.Get("Refresh"); got != "url=https://docs.sd-core.opennetworking.org" { + t.Errorf("Header.Get(\"Refresh\") = %q, want %q", got, "url=https://docs.sd-core.opennetworking.org") + } + + if got := response.Body; got != 1000 { + t.Errorf("Body = %v, want %v", got, 1000) + } }