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 paging
- import (
- "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)
- }
|