go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

cache_test.go (1770B)


      1 package cache
      2 
      3 import (
      4 	"testing"
      5 )
      6 
      7 func TestNewCache(t *testing.T) {
      8 	ca := NewCache()
      9 	if ca.CacheSize != 0 {
     10 		t.Errorf("cache size not 0")
     11 	}
     12 	ca = ca.WithCacheSize(102525)
     13 	if ca.CacheSize != 102525 {
     14 		t.Errorf("cache size not 102525")
     15 	}
     16 }
     17 
     18 func TestStateCacheUse(t *testing.T) {
     19 	ca := NewCache()
     20 	ca = ca.WithCacheSize(10)
     21 	ca.Push()
     22 	err := ca.Add("bar", "baz", 0)
     23 	if err != nil {
     24 		t.Error(err)
     25 	}
     26 	err = ca.Add("inky", "pinky", 0)
     27 	if err != nil {
     28 		t.Error(err)
     29 	}
     30 	err = ca.Add("blinky", "clyde", 0)
     31 	if err == nil {
     32 		t.Errorf("expected capacity error")
     33 	}
     34 }
     35 
     36 func TestStateDownUp(t *testing.T) {
     37 	ca := NewCache()
     38 	err := ca.Push()
     39 	if err != nil {
     40 		t.Error(err)
     41 	}
     42 	err = ca.Add("foo", "bar", 0)
     43 	if err != nil {
     44 		t.Error(err)
     45 	}
     46 	err = ca.Add("baz", "xyzzy", 0)
     47 	if err != nil {
     48 		t.Error(err)
     49 	}
     50 	if ca.CacheUseSize != 8 {
     51 		t.Errorf("expected cache use size 8 got %v", ca.CacheUseSize)
     52 	}
     53 	err = ca.Pop()
     54 	if err != nil {
     55 		t.Error(err)
     56 	}
     57 	err = ca.Pop()
     58 	if err != nil {
     59 		t.Error(err)
     60 	}
     61 	err = ca.Pop()
     62 	if err == nil {
     63 		t.Errorf("expected out of top frame error")
     64 	}
     65 }
     66 
     67 func TestCacheReset(t *testing.T) {
     68 	ca := NewCache()
     69 	err := ca.Add("foo", "bar", 0)
     70 	if err != nil {
     71 		t.Error(err)
     72 	}
     73 	err = ca.Add("baz", "xyzzy", 0)
     74 	if err != nil {
     75 		t.Error(err)
     76 	}
     77 	ca.Reset()
     78 	if ca.CacheUseSize != 0 {
     79 		t.Errorf("expected cache use size 0, got %v", ca.CacheUseSize)
     80 	}
     81 }
     82 
     83 func TestCacheLoadDup(t *testing.T) {
     84 	ca := NewCache()
     85 	err := ca.Push()
     86 	if err != nil {
     87 		t.Error(err)
     88 	}
     89 	err = ca.Add("foo", "xyzzy", 0)
     90 	if err != nil {
     91 		t.Error(err)
     92 	}
     93 	err = ca.Push()
     94 	err = ca.Add("foo", "baz", 0)
     95 	if err == nil {
     96 		t.Errorf("expected fail on duplicate load")
     97 	}
     98 	ca.Pop()
     99 	err = ca.Add("foo", "baz", 0)
    100 	if err != nil {
    101 		t.Error(err)
    102 	}
    103 }
    104