github.com/cilium/cilium@v1.16.2/pkg/debug/subsystem_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package debug 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 type debugObj struct{} 13 14 func (d *debugObj) DebugStatus() string { 15 return "test3" 16 } 17 18 func TestSubsystem(t *testing.T) { 19 sf := newStatusFunctions() 20 require.Equal(t, StatusMap{}, sf.collectStatus()) 21 22 sf = newStatusFunctions() 23 sf.register("foo", func() string { return "test1" }) 24 require.Equal(t, StatusMap{ 25 "foo": "test1", 26 }, sf.collectStatus()) 27 28 sf.register("bar", func() string { return "test2" }) 29 require.Equal(t, StatusMap{ 30 "foo": "test1", 31 "bar": "test2", 32 }, sf.collectStatus()) 33 34 sf.register("bar", func() string { return "test2" }) 35 require.Equal(t, StatusMap{ 36 "foo": "test1", 37 "bar": "test2", 38 }, sf.collectStatus()) 39 40 sf.registerStatusObject("baz", &debugObj{}) 41 require.Equal(t, StatusMap{ 42 "foo": "test1", 43 "bar": "test2", 44 "baz": "test3", 45 }, sf.collectStatus()) 46 }