123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package syncutils
- import (
- "fmt"
- "strconv"
- "testing"
- )
- func TestSyncSlice(t *testing.T) {
- syncSlice := NewSyncSlice([]string{"aaa", "bbb", "ccc"}, false)
- syncSlice.Append("ddd")
- fmt.Println("Len:", syncSlice.Len())
- fmt.Println("Cap:", syncSlice.Cap())
- fmt.Println()
- syncSlice.Range(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- fmt.Println()
- deleted := syncSlice.DeleteAt(3)
- fmt.Println("Deleted:", deleted)
- fmt.Println()
- syncSlice.Range(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- fmt.Println()
- syncSlice.Lock()
- syncSlice.AppendNoLock("ddd")
- fmt.Println("Len:", syncSlice.LenNoLock())
- fmt.Println("Cap:", syncSlice.CapNoLock())
- fmt.Println()
- syncSlice.RangeNoLock(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- fmt.Println()
- deleted = syncSlice.DeleteAtNoLock(3)
- fmt.Println("Deleted:", deleted)
- fmt.Println()
- syncSlice.RangeNoLock(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- fmt.Println()
- syncSlice.Unlock()
- rwSyncSlice := NewSyncSlice([]string{"aaa", "bbb", "ccc"}, true)
- rwSyncSlice.Append("ddd")
- fmt.Println("Len:", rwSyncSlice.Len())
- fmt.Println("Cap:", rwSyncSlice.Cap())
- fmt.Println()
- rwSyncSlice.Range(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- fmt.Println()
- deleted = rwSyncSlice.DeleteAt(3)
- fmt.Println("Deleted:", deleted)
- fmt.Println()
- rwSyncSlice.Range(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- fmt.Println()
- rwSyncSlice.Lock()
- rwSyncSlice.AppendNoLock("ddd")
- rwSyncSlice.Unlock()
- rwSyncSlice.RLock()
- fmt.Println("Len:", rwSyncSlice.LenNoLock())
- fmt.Println("Cap:", rwSyncSlice.CapNoLock())
- fmt.Println()
- rwSyncSlice.RangeNoLock(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- rwSyncSlice.RUnlock()
- fmt.Println()
- rwSyncSlice.Lock()
- deleted = rwSyncSlice.DeleteAtNoLock(3)
- rwSyncSlice.Unlock()
- fmt.Println("Deleted:", deleted)
- fmt.Println()
- rwSyncSlice.RLock()
- rwSyncSlice.RangeNoLock(func(index int, e string) bool {
- fmt.Println("Index", strconv.Itoa(index)+":", e)
- return false
- })
- rwSyncSlice.RUnlock()
- fmt.Println()
- }
|