arnaucube
arnaucube/mirror-to-giteaPublic Self-hosted repository
mirror-to-gitea/vendor/github.com/onsi/ginkgo/internal/leafnodes/measure_node.go
vendor/github.com/onsi/ginkgo/internal/leafnodes/measure_node.goRaw
 1package leafnodes
 2
 3import (
 4	"reflect"
 5
 6	"github.com/onsi/ginkgo/internal/failer"
 7	"github.com/onsi/ginkgo/types"
 8)
 9
10type MeasureNode struct {
11	runner *runner
12
13	text        string
14	flag        types.FlagType
15	samples     int
16	benchmarker *benchmarker
17}
18
19func NewMeasureNode(text string, body interface{}, flag types.FlagType, codeLocation types.CodeLocation, samples int, failer *failer.Failer, componentIndex int) *MeasureNode {
20	benchmarker := newBenchmarker()
21
22	wrappedBody := func() {
23		reflect.ValueOf(body).Call([]reflect.Value{reflect.ValueOf(benchmarker)})
24	}
25
26	return &MeasureNode{
27		runner: newRunner(wrappedBody, codeLocation, 0, failer, types.SpecComponentTypeMeasure, componentIndex),
28
29		text:        text,
30		flag:        flag,
31		samples:     samples,
32		benchmarker: benchmarker,
33	}
34}
35
36func (node *MeasureNode) Run() (outcome types.SpecState, failure types.SpecFailure) {
37	return node.runner.run()
38}
39
40func (node *MeasureNode) MeasurementsReport() map[string]*types.SpecMeasurement {
41	return node.benchmarker.measurementsReport()
42}
43
44func (node *MeasureNode) Type() types.SpecComponentType {
45	return types.SpecComponentTypeMeasure
46}
47
48func (node *MeasureNode) Text() string {
49	return node.text
50}
51
52func (node *MeasureNode) Flag() types.FlagType {
53	return node.flag
54}
55
56func (node *MeasureNode) CodeLocation() types.CodeLocation {
57	return node.runner.codeLocation
58}
59
60func (node *MeasureNode) Samples() int {
61	return node.samples
62}