github.com/sohaha/zlsgo@v1.7.13-0.20240501141223-10dd1a906f76/zutil/utils_test.go (about) 1 package zutil_test 2 3 import ( 4 "errors" 5 "math" 6 "strings" 7 "testing" 8 9 "github.com/sohaha/zlsgo" 10 "github.com/sohaha/zlsgo/zfile" 11 "github.com/sohaha/zlsgo/zstring" 12 "github.com/sohaha/zlsgo/zutil" 13 ) 14 15 func TestWithRunContext(t *testing.T) { 16 tt := zlsgo.NewTest(t) 17 duration, mem := zutil.WithRunContext(func() { 18 var b = zstring.Buffer() 19 size := 110000 20 count := math.Ceil(float64(size) / 1000) 21 count64 := int64(count) 22 var i int64 23 var length int 24 for i = 0; i < count64; i++ { 25 if i == (count64 - 1) { 26 length = int(int64(size) - (i)*1000) 27 } else { 28 length = 1000 29 } 30 b.WriteString(strings.Repeat("A", length)) 31 } 32 _ = b.String() 33 }) 34 35 tt.EqualExit(true, mem > 60000) 36 t.Log(duration) 37 t.Log(zfile.SizeFormat(mem)) 38 } 39 40 func TestIfVal(T *testing.T) { 41 t := zlsgo.NewTest(T) 42 i := zutil.IfVal(true, 1, 2) 43 t.EqualExit(1, i) 44 i = zutil.IfVal(false, 1, 2) 45 t.EqualExit(2, i) 46 } 47 48 func TestTryCatch(tt *testing.T) { 49 t := zlsgo.NewTest(tt) 50 errMsg := errors.New("test error") 51 err := zutil.TryCatch(func() error { 52 return errMsg 53 }) 54 tt.Log(err) 55 t.EqualTrue(err != nil) 56 t.Equal(errMsg, err) 57 58 err = zutil.TryCatch(func() error { 59 panic(123) 60 }) 61 tt.Log(err) 62 t.EqualTrue(err != nil) 63 t.Equal(errors.New("123"), err) 64 } 65 66 func TestTryError(tt *testing.T) { 67 t := zlsgo.NewTest(tt) 68 defer func() { 69 if message := recover(); message != nil { 70 if e, ok := message.(error); ok { 71 t.EqualExit("test", e.Error()) 72 } 73 } 74 }() 75 76 zutil.Try(func() { 77 panic("test") 78 }, func(e interface{}) { 79 if err, ok := e.(error); ok { 80 t.EqualExit("test", err.Error()) 81 } 82 }, func() { 83 t.Log("TestTryError ok") 84 }) 85 86 zutil.Try(func() { 87 zutil.CheckErr(errors.New("test")) 88 }, func(e interface{}) { 89 if err, ok := e.(error); ok { 90 t.EqualExit("test", err.Error()) 91 } 92 }) 93 94 zutil.Try(func() { 95 panic(t) 96 }, func(e interface{}) { 97 if err, ok := e.(error); ok { 98 t.EqualExit("test", err.Error()) 99 } 100 }) 101 102 zutil.Try(func() { 103 panic("test") 104 }, nil) 105 } 106 107 func TestUtil(t *testing.T) { 108 _, _ = zutil.GetParentProcessName() 109 zutil.IsDoubleClickStartUp() 110 } 111 112 func TestMaximizeOpenFileLimit(t *testing.T) { 113 l, err := zutil.MaxRlimit() 114 t.Log(l, err) 115 }