test: add plugin test code

This commit is contained in:
RockYang
2023-07-10 07:05:56 +08:00
parent 35935d2bac
commit beee1e91d6
4 changed files with 99 additions and 3 deletions

View File

@@ -87,3 +87,25 @@ func Ip2Region(searcher *xdb.Searcher, ip string) string {
}
return fmt.Sprintf("%s-%s-%s", arr[0], arr[2], arr[3])
}
func IsEmptyValue(obj interface{}) bool {
v := reflect.ValueOf(obj)
switch v.Kind() {
case reflect.Ptr, reflect.Interface:
return v.IsNil()
case reflect.Array, reflect.Slice, reflect.Map, reflect.String:
return v.Len() == 0
case reflect.Bool:
return !v.Bool()
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
return v.Int() == 0
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
return v.Uint() == 0
case reflect.Float32, reflect.Float64:
return v.Float() == 0
case reflect.Complex64, reflect.Complex128:
return v.Complex() == 0
default:
return reflect.DeepEqual(obj, reflect.Zero(reflect.TypeOf(obj)).Interface())
}
}