mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-09 18:33:36 +02:00
refactor: move task, error and testing utils to separte repo; apply gofumpt
This commit is contained in:
@@ -2,6 +2,8 @@ package atomic
|
||||
|
||||
import "sync/atomic"
|
||||
|
||||
type Bool = atomic.Bool
|
||||
type Int32 = atomic.Int32
|
||||
type Int64 = atomic.Int64
|
||||
type (
|
||||
Bool = atomic.Bool
|
||||
Int32 = atomic.Int32
|
||||
Int64 = atomic.Int64
|
||||
)
|
||||
|
||||
@@ -5,8 +5,7 @@ go 1.25.1
|
||||
require (
|
||||
github.com/puzpuzpuz/xsync/v4 v4.2.0
|
||||
github.com/rs/zerolog v1.34.0
|
||||
github.com/stretchr/testify v1.11.1
|
||||
github.com/yusing/goutils v0.2.1
|
||||
github.com/yusing/goutils v0.3.1
|
||||
go.uber.org/atomic v1.11.0
|
||||
)
|
||||
|
||||
@@ -15,6 +14,7 @@ require (
|
||||
github.com/mattn/go-colorable v0.1.14 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/stretchr/testify v1.11.1 // indirect
|
||||
golang.org/x/sys v0.36.0 // indirect
|
||||
golang.org/x/text v0.29.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
|
||||
@@ -19,8 +19,8 @@ github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
|
||||
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
|
||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||
github.com/yusing/goutils v0.2.1 h1:KjoCrNO0otthaPCZPfQY+5GKsqs5+J77CxP+TNHYa/Y=
|
||||
github.com/yusing/goutils v0.2.1/go.mod h1:v6RZsMRdzcts4udSg0vqUIFvaD0OaUMPTwYJZ4XnQYo=
|
||||
github.com/yusing/goutils v0.3.1 h1:xCPoZ/haI8ZJ0ZaPU4g6+okSPdBczs8o98tIZ/TbpsQ=
|
||||
github.com/yusing/goutils v0.3.1/go.mod h1:meg9GcAU8yvBY21JgYjPuLsXD1Q5VdVHE32A4tG5Y5g=
|
||||
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
. "github.com/yusing/godoxy/internal/utils/testing"
|
||||
expect "github.com/yusing/goutils/testing"
|
||||
)
|
||||
|
||||
func TestRefCounterAddSub(t *testing.T) {
|
||||
@@ -19,7 +19,7 @@ func TestRefCounterAddSub(t *testing.T) {
|
||||
}
|
||||
|
||||
wg.Wait()
|
||||
ExpectEqual(t, int(rc.refCount), 0)
|
||||
expect.Equal(t, int(rc.refCount), 0)
|
||||
|
||||
select {
|
||||
case <-rc.Zero():
|
||||
@@ -44,7 +44,7 @@ func TestRefCounterMultipleAddSub(t *testing.T) {
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
ExpectEqual(t, int(rc.refCount), numAdds+1)
|
||||
expect.Equal(t, int(rc.refCount), numAdds+1)
|
||||
|
||||
wg.Add(numSubs)
|
||||
for range numSubs {
|
||||
@@ -54,7 +54,7 @@ func TestRefCounterMultipleAddSub(t *testing.T) {
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
ExpectEqual(t, int(rc.refCount), numAdds+1-numSubs)
|
||||
expect.Equal(t, int(rc.refCount), numAdds+1-numSubs)
|
||||
|
||||
rc.Sub()
|
||||
select {
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
. "github.com/yusing/godoxy/internal/utils/testing"
|
||||
expect "github.com/yusing/goutils/testing"
|
||||
)
|
||||
|
||||
func TestIntersect(t *testing.T) {
|
||||
@@ -19,7 +19,7 @@ func TestIntersect(t *testing.T) {
|
||||
result := Intersect(slice1, slice2)
|
||||
slices.Sort(result)
|
||||
slices.Sort(want)
|
||||
ExpectEqual(t, result, want)
|
||||
expect.Equal(t, result, want)
|
||||
})
|
||||
t.Run("intersection", func(t *testing.T) {
|
||||
var (
|
||||
@@ -30,7 +30,7 @@ func TestIntersect(t *testing.T) {
|
||||
result := Intersect(slice1, slice2)
|
||||
slices.Sort(result)
|
||||
slices.Sort(want)
|
||||
ExpectEqual(t, result, want)
|
||||
expect.Equal(t, result, want)
|
||||
})
|
||||
})
|
||||
t.Run("ints", func(t *testing.T) {
|
||||
@@ -43,7 +43,7 @@ func TestIntersect(t *testing.T) {
|
||||
result := Intersect(slice1, slice2)
|
||||
slices.Sort(result)
|
||||
slices.Sort(want)
|
||||
ExpectEqual(t, result, want)
|
||||
expect.Equal(t, result, want)
|
||||
})
|
||||
t.Run("intersection", func(t *testing.T) {
|
||||
var (
|
||||
@@ -54,7 +54,7 @@ func TestIntersect(t *testing.T) {
|
||||
result := Intersect(slice1, slice2)
|
||||
slices.Sort(result)
|
||||
slices.Sort(want)
|
||||
ExpectEqual(t, result, want)
|
||||
expect.Equal(t, result, want)
|
||||
})
|
||||
})
|
||||
t.Run("complex", func(t *testing.T) {
|
||||
@@ -75,7 +75,7 @@ func TestIntersect(t *testing.T) {
|
||||
slices.SortFunc(want, func(i T, j T) int {
|
||||
return strings.Compare(i.A, j.A)
|
||||
})
|
||||
ExpectEqual(t, result, want)
|
||||
expect.Equal(t, result, want)
|
||||
})
|
||||
t.Run("intersection", func(t *testing.T) {
|
||||
var (
|
||||
@@ -90,7 +90,7 @@ func TestIntersect(t *testing.T) {
|
||||
slices.SortFunc(want, func(i T, j T) int {
|
||||
return strings.Compare(i.A, j.A)
|
||||
})
|
||||
ExpectEqual(t, result, want)
|
||||
expect.Equal(t, result, want)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
package expect
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var isTest = strings.HasSuffix(os.Args[0], ".test")
|
||||
|
||||
func init() {
|
||||
if isTest {
|
||||
// force verbose output
|
||||
os.Args = append([]string{os.Args[0], "-test.v"}, os.Args[1:]...)
|
||||
}
|
||||
}
|
||||
|
||||
func Must[Result any](r Result, err error) Result {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
var (
|
||||
NoError = require.NoError
|
||||
HasError = require.Error
|
||||
True = require.True
|
||||
False = require.False
|
||||
Nil = require.Nil
|
||||
NotNil = require.NotNil
|
||||
ErrorContains = require.ErrorContains
|
||||
Panics = require.Panics
|
||||
Greater = require.Greater
|
||||
Less = require.Less
|
||||
GreaterOrEqual = require.GreaterOrEqual
|
||||
LessOrEqual = require.LessOrEqual
|
||||
)
|
||||
|
||||
func ErrorIs(t *testing.T, expected error, err error, msgAndArgs ...any) {
|
||||
t.Helper()
|
||||
require.ErrorIs(t, err, expected, msgAndArgs...)
|
||||
}
|
||||
|
||||
func ErrorT[T error](t *testing.T, err error, msgAndArgs ...any) {
|
||||
t.Helper()
|
||||
var errAs T
|
||||
require.ErrorAs(t, err, &errAs, msgAndArgs...)
|
||||
}
|
||||
|
||||
func Equal[T any](t *testing.T, got T, want T, msgAndArgs ...any) {
|
||||
t.Helper()
|
||||
require.EqualValues(t, want, got, msgAndArgs...)
|
||||
}
|
||||
|
||||
func NotEqual[T any](t *testing.T, got T, want T, msgAndArgs ...any) {
|
||||
t.Helper()
|
||||
require.NotEqual(t, want, got, msgAndArgs...)
|
||||
}
|
||||
|
||||
func Contains[T any](t *testing.T, got T, wants []T, msgAndArgs ...any) {
|
||||
t.Helper()
|
||||
require.Contains(t, wants, got, msgAndArgs...)
|
||||
}
|
||||
|
||||
func StringsContain(t *testing.T, got string, want string, msgAndArgs ...any) {
|
||||
t.Helper()
|
||||
require.Contains(t, got, want, msgAndArgs...)
|
||||
}
|
||||
|
||||
func Type[T any](t *testing.T, got any, msgAndArgs ...any) (_ T) {
|
||||
t.Helper()
|
||||
_, ok := got.(T)
|
||||
require.True(t, ok, msgAndArgs...)
|
||||
return got.(T)
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package expect
|
||||
|
||||
import "github.com/rs/zerolog"
|
||||
|
||||
func init() {
|
||||
if isTest {
|
||||
zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package expect
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func ExpectNoError(t *testing.T, err error) {
|
||||
t.Helper()
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func ExpectHasError(t *testing.T, err error) {
|
||||
t.Helper()
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func ExpectError(t *testing.T, expected error, err error) {
|
||||
t.Helper()
|
||||
require.ErrorIs(t, err, expected)
|
||||
}
|
||||
|
||||
func ExpectErrorT[T error](t *testing.T, err error) {
|
||||
t.Helper()
|
||||
var errAs T
|
||||
require.ErrorAs(t, err, &errAs)
|
||||
}
|
||||
|
||||
func ExpectEqual[T any](t *testing.T, got T, want T) {
|
||||
t.Helper()
|
||||
require.EqualValues(t, want, got)
|
||||
}
|
||||
|
||||
func ExpectContains[T any](t *testing.T, got T, wants []T) {
|
||||
t.Helper()
|
||||
require.Contains(t, wants, got)
|
||||
}
|
||||
|
||||
func ExpectTrue(t *testing.T, got bool) {
|
||||
t.Helper()
|
||||
require.True(t, got)
|
||||
}
|
||||
|
||||
func ExpectFalse(t *testing.T, got bool) {
|
||||
t.Helper()
|
||||
require.False(t, got)
|
||||
}
|
||||
|
||||
func ExpectType[T any](t *testing.T, got any) (_ T) {
|
||||
t.Helper()
|
||||
_, ok := got.(T)
|
||||
require.True(t, ok)
|
||||
return got.(T)
|
||||
}
|
||||
Reference in New Issue
Block a user