12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package cache
- import (
- "context"
- "log"
- "sync"
- "testing"
- "time"
- )
- func TestChan(t *testing.T) {
- t.Log("!!!")
- ch := make(chan int, 1)
- for i := 0; i < 5; i++ {
- go func(im int) {
- for val := range ch {
- t.Log(im, val)
- }
- }(i)
- }
- for i := 0; i < 10; i++ {
- ch <- i
- time.Sleep(time.Second * 2)
- }
- }
- func TestContext(t *testing.T) {
- ctx, cancel := context.WithCancel(context.Background())
- var wg sync.WaitGroup
- wg.Add(1)
- go func() {
- log.Println("OK")
- <-ctx.Done()
- log.Println("Context done")
- //wg.Add(1)
- go func() {
- log.Println("ST")
- <-ctx.Done()
- log.Println("Context done 2")
- }()
- }()
- time.Sleep(time.Second * 2)
- cancel()
- wg.Wait()
- }
- func TestCacheMap(t *testing.T) {
- cm := NewCacheMap(context.Background(), 10, LiveInfinite)
- for i := 0; i < 10; i++ {
- cm.Set(i, i)
- t.Log(cm)
- time.Sleep(time.Second)
- }
- ko := cm.keysOlder(3)
- t.Log(ko)
- }
|