123456789101112131415161718192021222324252627 |
- package syncx
- import (
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestAtomicBool(t *testing.T) {
- val := ForAtomicBool(true)
- assert.True(t, val.True())
- val.Set(false)
- assert.False(t, val.True())
- val.Set(true)
- assert.True(t, val.True())
- val.Set(false)
- assert.False(t, val.True())
- ok := val.CompareAndSwap(false, true)
- assert.True(t, ok)
- assert.True(t, val.True())
- ok = val.CompareAndSwap(true, false)
- assert.True(t, ok)
- assert.False(t, val.True())
- ok = val.CompareAndSwap(true, false)
- assert.False(t, ok)
- assert.False(t, val.True())
- }
|