// Go MySQL Driver - A MySQL-Driver for Go's database/sql package. // // Copyright 2022 The Go-MySQL-Driver Authors. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this file, // You can obtain one at http://mozilla.org/MPL/2.0/. //go:build !go1.19 // +build !go1.19 package mysql import ( "testing" ) func TestAtomicBool(t *testing.T) { var ab atomicBool if ab.Load() { t.Fatal("Expected value to be false") } ab.Store(true) if ab.value != 1 { t.Fatal("Set(true) did not set value to 1") } if !ab.Load() { t.Fatal("Expected value to be true") } ab.Store(true) if !ab.Load() { t.Fatal("Expected value to be true") } ab.Store(false) if ab.value != 0 { t.Fatal("Set(false) did not set value to 0") } if ab.Load() { t.Fatal("Expected value to be false") } ab.Store(false) if ab.Load() { t.Fatal("Expected value to be false") } if ab.Swap(false) { t.Fatal("Expected the old value to be false") } if ab.Swap(true) { t.Fatal("Expected the old value to be false") } if !ab.Load() { t.Fatal("Expected value to be true") } ab.Store(true) if !ab.Load() { t.Fatal("Expected value to be true") } if !ab.Swap(true) { t.Fatal("Expected the old value to be true") } if !ab.Swap(false) { t.Fatal("Expected the old value to be true") } if ab.Load() { t.Fatal("Expected value to be false") } }