1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package common_test
- import (
- "errors"
- "testing"
- . "github.com/xtls/xray-core/common"
- )
- func TestMust(t *testing.T) {
- hasPanic := func(f func()) (ret bool) {
- defer func() {
- if r := recover(); r != nil {
- ret = true
- }
- }()
- f()
- return false
- }
- testCases := []struct {
- Input func()
- Panic bool
- }{
- {
- Panic: true,
- Input: func() { Must(func() error { return errors.New("test error") }()) },
- },
- {
- Panic: true,
- Input: func() { Must2(func() (int, error) { return 0, errors.New("test error") }()) },
- },
- {
- Panic: false,
- Input: func() { Must(func() error { return nil }()) },
- },
- }
- for idx, test := range testCases {
- if hasPanic(test.Input) != test.Panic {
- t.Error("test case #", idx, " expect panic ", test.Panic, " but actually not")
- }
- }
- }
|