github.com/avahowell/sia@v0.5.1-beta.0.20160524050156-83dcc3d37c94/modules/host/storagemanager/sector_test.go (about) 1 package storagemanager 2 3 import ( 4 "testing" 5 6 "github.com/NebulousLabs/Sia/types" 7 ) 8 9 // TestMaxVirtualSectors checks that the max virtual sector limit is enforced 10 // when adding sectors. 11 func TestMaxVirtualSectors(t *testing.T) { 12 if testing.Short() { 13 t.SkipNow() 14 } 15 t.Parallel() 16 smt, err := newStorageManagerTester("TestMaxVirtualSectors") 17 if err != nil { 18 t.Fatal(err) 19 } 20 defer smt.Close() 21 22 // Add a storage folder to receive a sector. 23 err = smt.sm.AddStorageFolder(smt.persistDir, minimumStorageFolderSize) 24 if err != nil { 25 t.Fatal(err) 26 } 27 28 // Add the first instance of the sector. 29 sectorRoot, sectorData, err := createSector() 30 if err != nil { 31 t.Fatal(err) 32 } 33 err = smt.sm.AddSector(sectorRoot, 1, sectorData) 34 if err != nil { 35 t.Fatal(err) 36 } 37 38 // Add virtual instances of the sector until there are no more available 39 // virual slots. 40 for i := 1; i < maximumVirtualSectors; i++ { 41 err = smt.sm.AddSector(sectorRoot, types.BlockHeight(i%3+2), sectorData) 42 if err != nil { 43 t.Fatal(err) 44 } 45 } 46 47 // Add another virtual sector, an error should be returned. 48 err = smt.sm.AddSector(sectorRoot, 1, sectorData) 49 if err != errMaxVirtualSectors { 50 t.Fatal(err) 51 } 52 } 53 54 // TestBadSectorAdd triggers a panic by trying to add an illegal sector. 55 func TestBadSectorAdd(t *testing.T) { 56 if testing.Short() { 57 t.SkipNow() 58 } 59 t.Parallel() 60 smt, err := newStorageManagerTester("TestBadSectorAdd") 61 if err != nil { 62 t.Fatal(err) 63 } 64 defer smt.Close() 65 66 defer func() { 67 r := recover() 68 if r == nil { 69 t.Fatal("did not trigger panic when adding a bad sector") 70 } 71 }() 72 sectorRoot, sectorData, err := createSector() 73 if err != nil { 74 t.Fatal(err) 75 } 76 // Error doesn't need to be checked, a panic will be thrown. 77 _ = smt.sm.AddSector(sectorRoot, 1, sectorData[:1]) 78 t.Fatal("panic not thrown") 79 }