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  }