| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | /* * EliasDB * * Copyright 2016 Matthias Ladkau. All rights reserved. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */package pagingimport (	"testing"	"devt.de/krotik/eliasdb/storage/file")func TestPagedStorageFileHeader(t *testing.T) {	record := file.NewRecord(5, make([]byte, 5, 5))	testPagedStorageFileInitPanic1(t, record)	record = file.NewRecord(5, make([]byte, 100, 100))	testPagedStorageFileInitPanic2(t, record)	NewPagedStorageFileHeader(record, true)	psfh := NewPagedStorageFileHeader(record, true)	if psfh.Roots() != 2 {		t.Error("Unexpected number of roots:", psfh.Roots())	}	psfh.SetRoot(1, 0x42)	if psfh.Root(1) != 0x42 {		t.Error("Unexpected root value:", psfh.Root(1))	}	if psfh.Root(0) != 0x00 {		t.Error("Unexpected root value:", psfh.Root(0))	}	psfh.SetFirstListElement(3, 5)	if psfh.FirstListElement(3) != 5 {		t.Error("Unexpected root value:", psfh.FirstListElement(3))	}	psfh.SetLastListElement(2, 5)	if psfh.LastListElement(2) != 5 {		t.Error("Unexpected root value:", psfh.LastListElement(3))	}}func testPagedStorageFileInitPanic1(t *testing.T, r *file.Record) {	defer func() {		if r := recover(); r == nil {			t.Error("Using a record which is too small did not cause a panic.")		}	}()	NewPagedStorageFileHeader(r, true)}func testPagedStorageFileInitPanic2(t *testing.T, r *file.Record) {	defer func() {		if r := recover(); r == nil {			t.Error("Using a record without header magic value did not cause a panic.")		}	}()	NewPagedStorageFileHeader(r, false)}
 |