| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | package signal_testimport (	"errors"	"testing"	. "v2ray.com/core/common/signal"	"v2ray.com/core/testing/assert")func TestErrorOrFinish2_Error(t *testing.T) {	assert := assert.On(t)	c1 := make(chan error, 1)	c2 := make(chan error, 2)	c := make(chan error, 1)	go func() {		c <- ErrorOrFinish2(c1, c2)	}()	c1 <- errors.New("test")	err := <-c	assert.String(err.Error()).Equals("test")}func TestErrorOrFinish2_Error2(t *testing.T) {	assert := assert.On(t)	c1 := make(chan error, 1)	c2 := make(chan error, 2)	c := make(chan error, 1)	go func() {		c <- ErrorOrFinish2(c1, c2)	}()	c2 <- errors.New("test")	err := <-c	assert.String(err.Error()).Equals("test")}func TestErrorOrFinish2_NoneError(t *testing.T) {	assert := assert.On(t)	c1 := make(chan error, 1)	c2 := make(chan error, 2)	c := make(chan error, 1)	go func() {		c <- ErrorOrFinish2(c1, c2)	}()	close(c1)	select {	case <-c:		t.Fail()	default:	}	close(c2)	err := <-c	assert.Error(err).IsNil()}func TestErrorOrFinish2_NoneError2(t *testing.T) {	assert := assert.On(t)	c1 := make(chan error, 1)	c2 := make(chan error, 2)	c := make(chan error, 1)	go func() {		c <- ErrorOrFinish2(c1, c2)	}()	close(c2)	select {	case <-c:		t.Fail()	default:	}	close(c1)	err := <-c	assert.Error(err).IsNil()}
 |