ceremonyclient/pebble/internal/manifest/level_test.go

65 lines
1.2 KiB
Go
Raw Normal View History

2024-01-03 07:31:42 +00:00
// Copyright 2020 The LevelDB-Go and Pebble Authors. All rights reserved. Use
// of this source code is governed by a BSD-style license that can be found in
// the LICENSE file.
package manifest
import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
)
func TestLevel(t *testing.T) {
testCases := []struct {
level int
expected string
}{
{0, "L0"},
{1, "L1"},
{2, "L2"},
{3, "L3"},
{4, "L4"},
{5, "L5"},
{6, "L6"},
{7, "L7"},
}
for _, c := range testCases {
t.Run("", func(t *testing.T) {
s := Level(c.level).String()
require.EqualValues(t, c.expected, s)
})
}
}
func TestL0Sublevel(t *testing.T) {
testCases := []struct {
level int
sublevel int
expected string
}{
{0, 0, "L0.0"},
{0, 1, "L0.1"},
{0, 2, "L0.2"},
{0, 1000, "L0.1000"},
{0, -1, "invalid L0 sublevel: -1"},
{0, -2, "invalid L0 sublevel: -2"},
}
for _, c := range testCases {
t.Run("", func(t *testing.T) {
s := func() (result string) {
defer func() {
if r := recover(); r != nil {
result = fmt.Sprint(r)
}
}()
return L0Sublevel(c.sublevel).String()
}()
require.EqualValues(t, c.expected, s)
})
}
}