Skip to content

Commit 3b907b1

Browse files
committed
handle profiles in generated component tests
1 parent 52935f0 commit 3b907b1

File tree

12 files changed

+193
-22
lines changed

12 files changed

+193
-22
lines changed

cmd/mdatagen/internal/command.go

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -347,18 +347,26 @@ func templatize(tmplFile string, md Metadata) *template.Template {
347347
"isCommand": func() bool {
348348
return md.Status.Class == "cmd"
349349
},
350-
"supportsLogs": func() bool { return md.supportsSignal("logs") },
351-
"supportsMetrics": func() bool { return md.supportsSignal("metrics") },
352-
"supportsTraces": func() bool { return md.supportsSignal("traces") },
353-
"supportsLogsToLogs": func() bool { return md.supportsSignal("logs_to_logs") },
354-
"supportsLogsToMetrics": func() bool { return md.supportsSignal("logs_to_metrics") },
355-
"supportsLogsToTraces": func() bool { return md.supportsSignal("logs_to_traces") },
356-
"supportsMetricsToLogs": func() bool { return md.supportsSignal("metrics_to_logs") },
357-
"supportsMetricsToMetrics": func() bool { return md.supportsSignal("metrics_to_metrics") },
358-
"supportsMetricsToTraces": func() bool { return md.supportsSignal("metrics_to_traces") },
359-
"supportsTracesToLogs": func() bool { return md.supportsSignal("traces_to_logs") },
360-
"supportsTracesToMetrics": func() bool { return md.supportsSignal("traces_to_metrics") },
361-
"supportsTracesToTraces": func() bool { return md.supportsSignal("traces_to_traces") },
350+
"supportsLogs": func() bool { return md.supportsSignal("logs") },
351+
"supportsMetrics": func() bool { return md.supportsSignal("metrics") },
352+
"supportsTraces": func() bool { return md.supportsSignal("traces") },
353+
"supportsProfiles": func() bool { return md.supportsSignal("profiles") },
354+
"supportsLogsToLogs": func() bool { return md.supportsSignal("logs_to_logs") },
355+
"supportsLogsToMetrics": func() bool { return md.supportsSignal("logs_to_metrics") },
356+
"supportsLogsToTraces": func() bool { return md.supportsSignal("logs_to_traces") },
357+
"supportsLogsToProfiles": func() bool { return md.supportsSignal("logs_to_profiles") },
358+
"supportsMetricsToLogs": func() bool { return md.supportsSignal("metrics_to_logs") },
359+
"supportsMetricsToMetrics": func() bool { return md.supportsSignal("metrics_to_metrics") },
360+
"supportsMetricsToTraces": func() bool { return md.supportsSignal("metrics_to_traces") },
361+
"supportsMetricsToProfiles": func() bool { return md.supportsSignal("metrics_to_profiles") },
362+
"supportsTracesToLogs": func() bool { return md.supportsSignal("traces_to_logs") },
363+
"supportsTracesToMetrics": func() bool { return md.supportsSignal("traces_to_metrics") },
364+
"supportsTracesToTraces": func() bool { return md.supportsSignal("traces_to_traces") },
365+
"supportsTracesToProfiles": func() bool { return md.supportsSignal("traces_to_profiles") },
366+
"supportsProfilesToLogs": func() bool { return md.supportsSignal("profiles_to_logs") },
367+
"supportsProfilesToMetrics": func() bool { return md.supportsSignal("profiles_to_metrics") },
368+
"supportsProfilesToTraces": func() bool { return md.supportsSignal("profiles_to_traces") },
369+
"supportsProfilesToProfiles": func() bool { return md.supportsSignal("profiles_to_profiles") },
362370
"expectConsumerError": func() bool {
363371
return md.Tests.ExpectConsumerError
364372
},

cmd/mdatagen/internal/command_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@ func TestRunContents(t *testing.T) {
135135
wantReadmeGenerated: true,
136136
wantComponentTestGenerated: true,
137137
},
138+
{
139+
yml: "with_tests_profiles_connector.yaml",
140+
wantStatusGenerated: true,
141+
wantReadmeGenerated: true,
142+
wantComponentTestGenerated: true,
143+
},
138144
{
139145
yml: "with_goleak_ignores.yaml",
140146
wantStatusGenerated: true,

cmd/mdatagen/internal/samplefactoryreceiver/factory.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,22 @@ import (
1212
"go.opentelemetry.io/collector/cmd/mdatagen/internal/samplefactoryreceiver/internal/metadata"
1313
"go.opentelemetry.io/collector/component"
1414
"go.opentelemetry.io/collector/consumer"
15+
"go.opentelemetry.io/collector/consumer/xconsumer"
1516
"go.opentelemetry.io/collector/receiver"
17+
"go.opentelemetry.io/collector/receiver/xreceiver"
1618
"go.opentelemetry.io/collector/service/hostcapabilities"
1719
)
1820

1921
// NewFactory returns a receiver.Factory for sample receiver.
20-
func NewFactory() receiver.Factory {
21-
return receiver.NewFactory(
22+
func NewFactory() xreceiver.Factory {
23+
return xreceiver.NewFactory(
2224
metadata.Type,
2325
func() component.Config { return &struct{}{} },
24-
receiver.WithTraces(createTraces, metadata.TracesStability),
25-
receiver.WithMetrics(createMetrics, metadata.MetricsStability),
26-
receiver.WithLogs(createLogs, metadata.LogsStability))
26+
xreceiver.WithTraces(createTraces, metadata.TracesStability),
27+
xreceiver.WithMetrics(createMetrics, metadata.MetricsStability),
28+
xreceiver.WithLogs(createLogs, metadata.LogsStability),
29+
xreceiver.WithProfiles(createProfiles, metadata.ProfilesStability),
30+
)
2731
}
2832

2933
func createTraces(context.Context, receiver.Settings, component.Config, consumer.Traces) (receiver.Traces, error) {
@@ -51,6 +55,10 @@ func createLogs(context.Context, receiver.Settings, component.Config, consumer.L
5155
return nopInstance, nil
5256
}
5357

58+
func createProfiles(context.Context, receiver.Settings, component.Config, xconsumer.Profiles) (xreceiver.Profiles, error) {
59+
return nopInstance, nil
60+
}
61+
5462
var nopInstance = &nopReceiver{}
5563

5664
type nopReceiver struct {

cmd/mdatagen/internal/samplefactoryreceiver/generated_component_test.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/mdatagen/internal/samplereceiver/factory.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,21 @@ import (
1111
"go.opentelemetry.io/collector/cmd/mdatagen/internal/samplereceiver/internal/metadata"
1212
"go.opentelemetry.io/collector/component"
1313
"go.opentelemetry.io/collector/consumer"
14+
"go.opentelemetry.io/collector/consumer/xconsumer"
1415
"go.opentelemetry.io/collector/receiver"
16+
"go.opentelemetry.io/collector/receiver/xreceiver"
1517
)
1618

1719
// NewFactory returns a receiver.Factory for sample receiver.
18-
func NewFactory() receiver.Factory {
19-
return receiver.NewFactory(
20+
func NewFactory() xreceiver.Factory {
21+
return xreceiver.NewFactory(
2022
metadata.Type,
2123
func() component.Config { return &struct{}{} },
22-
receiver.WithTraces(createTraces, metadata.TracesStability),
23-
receiver.WithMetrics(createMetrics, metadata.MetricsStability),
24-
receiver.WithLogs(createLogs, metadata.LogsStability))
24+
xreceiver.WithTraces(createTraces, metadata.TracesStability),
25+
xreceiver.WithMetrics(createMetrics, metadata.MetricsStability),
26+
xreceiver.WithLogs(createLogs, metadata.LogsStability),
27+
xreceiver.WithProfiles(createProfiles, metadata.ProfilesStability),
28+
)
2529
}
2630

2731
func createTraces(context.Context, receiver.Settings, component.Config, consumer.Traces) (receiver.Traces, error) {
@@ -49,6 +53,10 @@ func createLogs(context.Context, receiver.Settings, component.Config, consumer.L
4953
return nopInstance, nil
5054
}
5155

56+
func createProfiles(context.Context, receiver.Settings, component.Config, xconsumer.Profiles) (xreceiver.Profiles, error) {
57+
return nopInstance, nil
58+
}
59+
5260
var nopInstance = &nopReceiver{}
5361

5462
type nopReceiver struct {

cmd/mdatagen/internal/samplereceiver/generated_component_test.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/mdatagen/internal/templates/component_test.go.tmpl

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ import (
4747
"go.opentelemetry.io/collector/consumer"
4848
"go.opentelemetry.io/collector/consumer/consumertest"
4949
"go.opentelemetry.io/collector/pipeline"
50+
{{ if supportsProfiles }}
51+
"go.opentelemetry.io/collector/pipeline/xpipeline"
52+
{{- end }}
5053
{{- end }}
5154
{{- if or isExporter isProcessor }}
5255
"go.opentelemetry.io/collector/pdata/pcommon"
@@ -196,6 +199,14 @@ func TestComponentLifecycle(t *testing.T) {
196199
return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop())
197200
},
198201
},
202+
{{ end }}
203+
{{ if supportsProfiles }}
204+
{
205+
name: "profiles",
206+
createFn: func(ctx context.Context, set processor.Settings, cfg component.Config) (component.Component, error) {
207+
return factory.CreateProfiles(ctx, set, cfg, consumertest.NewNop())
208+
},
209+
},
199210
{{ end }}
200211
}
201212

@@ -291,6 +302,14 @@ func TestComponentLifecycle(t *testing.T) {
291302
return factory.CreateTraces(ctx, set, cfg, consumertest.NewNop())
292303
},
293304
},
305+
{{ end }}
306+
{{ if supportsProfiles }}
307+
{
308+
name: "profiles",
309+
createFn: func(ctx context.Context, set receiver.Settings, cfg component.Config) (component.Component, error) {
310+
return factory.CreateProfiles(ctx, set, cfg, consumertest.NewNop())
311+
},
312+
},
294313
{{ end }}
295314
}
296315

@@ -360,6 +379,14 @@ func TestComponentLifecycle(t *testing.T) {
360379
return factory.CreateTraces(ctx, set, cfg)
361380
},
362381
},
382+
{{ end }}
383+
{{ if supportsProfiles }}
384+
{
385+
name: "profiles",
386+
createFn: func(ctx context.Context, set scraper.Settings, cfg component.Config) (component.Component, error) {
387+
return factory.CreateProfiles(ctx, set, cfg)
388+
},
389+
},
363390
{{ end }}
364391
}
365392

@@ -469,6 +496,15 @@ func TestComponentLifecycle(t *testing.T) {
469496
},
470497
},
471498
{{ end }}
499+
{{ if supportsLogsToProfiles }}
500+
{
501+
name: "logs_to_profiles",
502+
createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) {
503+
router := connector.NewTracesRouter(map[pipeline.ID]consumer.Traces{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()})
504+
return factory.CreateLogsToProfiles(ctx, set, cfg, router)
505+
},
506+
},
507+
{{ end }}
472508
{{ if supportsMetricsToLogs }}
473509
{
474510
name: "metrics_to_logs",
@@ -496,6 +532,15 @@ func TestComponentLifecycle(t *testing.T) {
496532
},
497533
},
498534
{{ end }}
535+
{{ if supportsMetricsToProfiles }}
536+
{
537+
name: "metrics_to_profiles",
538+
createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) {
539+
router := connector.NewTracesRouter(map[pipeline.ID]consumer.Traces{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()})
540+
return factory.CreateMetricsToTraces(ctx, set, cfg, router)
541+
},
542+
},
543+
{{ end }}
499544
{{ if supportsTracesToLogs }}
500545
{
501546
name: "traces_to_logs",
@@ -522,6 +567,51 @@ func TestComponentLifecycle(t *testing.T) {
522567
return factory.CreateTracesToTraces(ctx, set, cfg, router)
523568
},
524569
},
570+
{{ end }}
571+
{{ if supportsTracesToProfiles }}
572+
{
573+
name: "traces_to_profiles",
574+
createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) {
575+
router := connector.NewTracesRouter(map[pipeline.ID]consumer.Traces{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()})
576+
return factory.CreateTracesToProfiles(ctx, set, cfg, router)
577+
},
578+
},
579+
{{ end }}
580+
{{ if supportsProfilesToLogs }}
581+
{
582+
name: "profiles_to_logs",
583+
createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) {
584+
router := connector.NewLogsRouter(map[pipeline.ID]consumer.Logs{pipeline.NewID(pipeline.SignalLogs): consumertest.NewNop()})
585+
return factory.CreateProfilesToLogs(ctx, set, cfg, router)
586+
},
587+
},
588+
{{ end }}
589+
{{ if supportsProfilesToMetrics }}
590+
{
591+
name: "profiles_to_metrics",
592+
createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) {
593+
router := connector.NewMetricsRouter(map[pipeline.ID]consumer.Metrics{pipeline.NewID(pipeline.SignalMetrics): consumertest.NewNop()})
594+
return factory.CreateProfilesToMetrics(ctx, set, cfg, router)
595+
},
596+
},
597+
{{ end }}
598+
{{ if supportsProfilesToTraces }}
599+
{
600+
name: "profiles_to_traces",
601+
createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) {
602+
router := connector.NewTracesRouter(map[pipeline.ID]consumer.Traces{pipeline.NewID(pipeline.SignalTraces): consumertest.NewNop()})
603+
return factory.CreateProfilesToTraces(ctx, set, cfg, router)
604+
},
605+
},
606+
{{ end }}
607+
{{ if supportsProfilesToProfiles }}
608+
{
609+
name: "profiles_to_profiles",
610+
createFn: func(ctx context.Context, set connector.Settings, cfg component.Config) (component.Component, error) {
611+
router := connector.NewTracesRouter(map[pipeline.ID]consumer.Traces{pipeline.NewID(xpipeline.SignalProfiles): consumertest.NewNop()})
612+
return factory.CreateProfilesToProfiles(ctx, set, cfg, router)
613+
},
614+
},
525615
{{ end }}
526616
}
527617

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
type: foobar
2+
3+
status:
4+
disable_codecov_badge: true
5+
class: connector
6+
stability:
7+
beta: [traces_to_profiles, metrics_to_profiles, logs_to_profiles, profiles_to_traces, profiles_to_metrics, profiles_to_logs, profiles_to_profiles]

connector/forwardconnector/generated_component_test.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

processor/memorylimiterprocessor/generated_component_test.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)