github.com/lingyao2333/mo-zero@v1.4.1/core/syncx/atomicbool_test.go (about) 1 package syncx 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestAtomicBool(t *testing.T) { 10 val := ForAtomicBool(true) 11 assert.True(t, val.True()) 12 val.Set(false) 13 assert.False(t, val.True()) 14 val.Set(true) 15 assert.True(t, val.True()) 16 val.Set(false) 17 assert.False(t, val.True()) 18 ok := val.CompareAndSwap(false, true) 19 assert.True(t, ok) 20 assert.True(t, val.True()) 21 ok = val.CompareAndSwap(true, false) 22 assert.True(t, ok) 23 assert.False(t, val.True()) 24 ok = val.CompareAndSwap(true, false) 25 assert.False(t, ok) 26 assert.False(t, val.True()) 27 }