github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/trie/node_test.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:45</date> 10 //</624450123107143680> 11 12 13 package trie 14 15 import "testing" 16 17 func TestCanUnload(t *testing.T) { 18 tests := []struct { 19 flag nodeFlag 20 cachegen, cachelimit uint16 21 want bool 22 }{ 23 { 24 flag: nodeFlag{dirty: true, gen: 0}, 25 want: false, 26 }, 27 { 28 flag: nodeFlag{dirty: false, gen: 0}, 29 cachegen: 0, cachelimit: 0, 30 want: true, 31 }, 32 { 33 flag: nodeFlag{dirty: false, gen: 65534}, 34 cachegen: 65535, cachelimit: 1, 35 want: true, 36 }, 37 { 38 flag: nodeFlag{dirty: false, gen: 65534}, 39 cachegen: 0, cachelimit: 1, 40 want: true, 41 }, 42 { 43 flag: nodeFlag{dirty: false, gen: 1}, 44 cachegen: 65535, cachelimit: 1, 45 want: true, 46 }, 47 } 48 49 for _, test := range tests { 50 if got := test.flag.canUnload(test.cachegen, test.cachelimit); got != test.want { 51 t.Errorf("%+v\n got %t, want %t", test, got, test.want) 52 } 53 } 54 } 55