mirror of
https://github.com/zeromicro/go-zero.git
synced 2025-01-23 09:00:20 +08:00
chore: add more tests (#3359)
This commit is contained in:
parent
92f6c48349
commit
b176d5d434
@ -219,6 +219,7 @@ func parseUints(val string) ([]uint64, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
var sets []uint64
|
||||
ints := make(map[uint64]lang.PlaceholderType)
|
||||
cols := strings.Split(val, ",")
|
||||
for _, r := range cols {
|
||||
@ -239,7 +240,10 @@ func parseUints(val string) ([]uint64, error) {
|
||||
}
|
||||
|
||||
for i := min; i <= max; i++ {
|
||||
ints[i] = lang.Placeholder
|
||||
if _, ok := ints[i]; !ok {
|
||||
ints[i] = lang.Placeholder
|
||||
sets = append(sets, i)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
v, err := parseUint(r)
|
||||
@ -247,19 +251,17 @@ func parseUints(val string) ([]uint64, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ints[v] = lang.Placeholder
|
||||
if _, ok := ints[v]; !ok {
|
||||
ints[v] = lang.Placeholder
|
||||
sets = append(sets, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sets []uint64
|
||||
for k := range ints {
|
||||
sets = append(sets, k)
|
||||
}
|
||||
|
||||
return sets, nil
|
||||
}
|
||||
|
||||
// runningInUserNS detects whether we are currently running in an user namespace.
|
||||
// runningInUserNS detects whether we are currently running in a user namespace.
|
||||
func runningInUserNS() bool {
|
||||
nsOnce.Do(func() {
|
||||
file, err := os.Open("/proc/self/uid_map")
|
||||
|
@ -1,6 +1,7 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@ -25,3 +26,46 @@ func TestCgroupV1(t *testing.T) {
|
||||
assert.Error(t, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseUint(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
want uint64
|
||||
err error
|
||||
}{
|
||||
{"0", 0, nil},
|
||||
{"123", 123, nil},
|
||||
{"-1", 0, nil},
|
||||
{"-18446744073709551616", 0, nil},
|
||||
{"foo", 0, fmt.Errorf("cgroup: bad int format: foo")},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
got, err := parseUint(tt.input)
|
||||
assert.Equal(t, tt.err, err)
|
||||
assert.Equal(t, tt.want, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseUints(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
want []uint64
|
||||
err error
|
||||
}{
|
||||
{"", nil, nil},
|
||||
{"1,2,3", []uint64{1, 2, 3}, nil},
|
||||
{"1-3", []uint64{1, 2, 3}, nil},
|
||||
{"1-3,5,7-9", []uint64{1, 2, 3, 5, 7, 8, 9}, nil},
|
||||
{"foo", nil, fmt.Errorf("cgroup: bad int format: foo")},
|
||||
{"1-bar", nil, fmt.Errorf("cgroup: bad int list format: 1-bar")},
|
||||
{"bar-3", nil, fmt.Errorf("cgroup: bad int list format: bar-3")},
|
||||
{"3-1", nil, fmt.Errorf("cgroup: bad int list format: 3-1")},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
got, err := parseUints(tt.input)
|
||||
assert.Equal(t, tt.err, err)
|
||||
assert.Equal(t, tt.want, got)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user