mirror of
https://github.com/fleetdm/fleet
synced 2026-05-15 21:18:29 +00:00
36 lines
632 B
Go
36 lines
632 B
Go
|
|
package ctxerr
|
||
|
|
|
||
|
|
import (
|
||
|
|
"regexp"
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
type mockStack struct {
|
||
|
|
trace []string
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s mockStack) List() []string {
|
||
|
|
return s.trace
|
||
|
|
}
|
||
|
|
|
||
|
|
func buildStack(depth int) stack {
|
||
|
|
if depth == 0 {
|
||
|
|
return newStack(0)
|
||
|
|
}
|
||
|
|
return buildStack(depth - 1)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestStack(t *testing.T) {
|
||
|
|
trace := buildStack(maxDepth)
|
||
|
|
lines := trace.List()
|
||
|
|
|
||
|
|
require.Equal(t, len(lines), len(trace))
|
||
|
|
|
||
|
|
re := regexp.MustCompile(`server/contexts/ctxerr\.buildStack \(stack_test.go:\d+\)$`)
|
||
|
|
for i, line := range lines {
|
||
|
|
require.Regexpf(t, re, line, "expected line %d to match %q, got %q", i, re, line)
|
||
|
|
}
|
||
|
|
}
|