go.dedis.ch/onet/v3@v3.2.11-0.20210930124529-e36530bca7ef/tracing/simul_test.go (about) 1 package tracing 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestSimulHC(t *testing.T) { 11 shc := simulCollector{} 12 _, hct := shc.newTrace(context.TODO(), "") 13 _, hct2 := shc.newTrace(context.TODO(), "") 14 go func() { 15 _, sp := hct2.GetRootSpan().CreateChild(hct2.(*simulTrace).ctx) 16 sp.AddField("sp2", 2) 17 hct2.Send() 18 }() 19 go func() { 20 _, sp := hct.GetRootSpan().CreateChild(hct.(*simulTrace).ctx) 21 sp.AddField("sp1", 1) 22 hct.Send() 23 }() 24 shc.Wg.Wait() 25 require.Equal(t, 2, len(shc.Traces)) 26 found := 0 27 for _, c := range shc.Traces { 28 if len(c) == 2 { 29 if c[0]["sp1"] == "1" { 30 found++ 31 } 32 if c[0]["sp2"] == "2" { 33 found++ 34 } 35 } 36 } 37 require.Equal(t, 2, found) 38 } 39 40 func TestNewTrace(t *testing.T) { 41 ctx, hcTr := newSimulTrace(context.TODO(), "") 42 tr, _ := newTraceWrapper(ctx, hcTr, simpleSe("root")) 43 tr.hcTrace.AddField("one", 2) 44 tr.send() 45 testSentTrace(t, tr, `method:"root";one:2`) 46 } 47 48 func TestNewTraceSpan(t *testing.T) { 49 ctx, hcTr := newSimulTrace(context.TODO(), "") 50 tr, child := newTraceWrapper(ctx, hcTr, simpleSe("root", "one")) 51 child.log(1, "logging") 52 tr.hcTrace.AddField("two", 2) 53 tr.hcTrace.(*simulTrace).printTrace() 54 tr.send() 55 testSentTrace(t, tr, 56 `log.Lvl:1;log.Msg:"logging";method:"one";two:2`, 57 `method:"one";two:2`, 58 `method:"root";two:2`) 59 } 60 61 func TestHCS(t *testing.T) { 62 _, tr := newSimulTrace(context.TODO(), "") 63 hcs := tr.root 64 hcs.AddField("two", 2) 65 _, sp := hcs.CreateChild(context.TODO()) 66 sp.AddField("one", 1) 67 hcs.Send() 68 testSent(t, hcs.trace.sent, "one:1", "two:2") 69 } 70 71 func TestHCSChild(t *testing.T) { 72 _, tr := newSimulTrace(context.TODO(), "") 73 hcs := tr.root 74 hcs.AddField("two", 2) 75 _, sp := hcs.CreateChild(context.TODO()) 76 sp.AddField("one", 1) 77 _, spc := sp.CreateChild(context.TODO()) 78 spc.AddField("three", 3) 79 hcs.Send() 80 testSent(t, hcs.trace.sent, "three:3", "one:1", "two:2") 81 }