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  }