From 7c951075c9d65ca002f99df9eaa7af1df950c6ba Mon Sep 17 00:00:00 2001 From: Sean Marciniak <30928402+MovieStoreGuy@users.noreply.github.com> Date: Wed, 22 Dec 2021 14:39:24 +1030 Subject: [PATCH 1/2] Adding all extensions to the lifecycle test --- internal/components/exporters_test.go | 2 +- internal/components/extensions_test.go | 73 ++++++++++++++++++++++++-- 2 files changed, 69 insertions(+), 6 deletions(-) diff --git a/internal/components/exporters_test.go b/internal/components/exporters_test.go index fc3e1c6a9a71..e06cfa189b95 100644 --- a/internal/components/exporters_test.go +++ b/internal/components/exporters_test.go @@ -416,7 +416,7 @@ func TestDefaultExporters(t *testing.T) { assert.Equal(t, config.NewComponentID(tt.exporter), factory.CreateDefaultConfig().ID()) if tt.skipLifecycle { - t.Log("Skipping lifecycle test", tt.exporter) + t.Skip("Skipping lifecycle test", tt.exporter) return } diff --git a/internal/components/extensions_test.go b/internal/components/extensions_test.go index bb6424906d6e..aed21b2a2746 100644 --- a/internal/components/extensions_test.go +++ b/internal/components/extensions_test.go @@ -29,9 +29,14 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/extension/asapauthextension" "github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension" + "github.com/open-telemetry/opentelemetry-collector-contrib/extension/fluentbitextension" "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension" + "github.com/open-telemetry/opentelemetry-collector-contrib/extension/httpforwarder" + "github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension" "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver" + "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver" "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension" + "github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/testutil" ) @@ -43,8 +48,9 @@ func TestDefaultExtensions(t *testing.T) { endpoint := testutil.GetAvailableLocalAddress(t) tests := []struct { - extension config.Type - getConfigFn getExtensionConfigFn + extension config.Type + getConfigFn getExtensionConfigFn + skipLifecycle bool }{ { extension: "health_check", @@ -111,11 +117,63 @@ func TestDefaultExtensions(t *testing.T) { return cfg }, }, + { + extension: "awsproxy", + skipLifecycle: true, // Requires EC2 metadata service to be running + }, + { + extension: "fluentbit", + getConfigFn: func() config.Extension { + cfg := extFactories["fluentbit"].CreateDefaultConfig().(*fluentbitextension.Config) + cfg.TCPEndpoint = "http://" + endpoint + return cfg + }, + }, + { + extension: "http_forwarder", + getConfigFn: func() config.Extension { + cfg := extFactories["http_forwarder"].CreateDefaultConfig().(*httpforwarder.Config) + cfg.Egress.Endpoint = "http://" + endpoint + cfg.Ingress.Endpoint = testutil.GetAvailableLocalAddress(t) + return cfg + }, + }, + { + extension: "oauth2client", + getConfigFn: func() config.Extension { + cfg := extFactories["oauth2client"].CreateDefaultConfig().(*oauth2clientauthextension.Config) + cfg.ClientID = "otel-extension" + cfg.ClientSecret = "testsarehard" + cfg.TokenURL = "http://" + endpoint + return cfg + }, + }, + { + extension: "oidc", + skipLifecycle: true, // Requires a running OIDC server in order to complete life cycle testing + }, + { + extension: "file_storage", + getConfigFn: func() config.Extension { + cfg := extFactories["file_storage"].CreateDefaultConfig().(*filestorage.Config) + cfg.Directory = "/tmp" // Need to change to testutil.NewTemporaryDirectory once merged + return cfg + }, + }, + { + extension: "host_observer", + getConfigFn: func() config.Extension { + cfg := extFactories["host_observer"].CreateDefaultConfig().(*hostobserver.Config) + return cfg + }, + }, + { + extension: "k8s_observer", + skipLifecycle: true, // Requires a K8s api to interfact with and validate + }, } - // * The OIDC Auth extension requires an OIDC server to get the config from, and we don't want to spawn one here for this test. - assert.Equal(t, len(tests)+8 /* not tested */, len(extFactories)) - + assert.Equal(t, len(tests), len(extFactories), "All extensions must be added to the lifecycle tests") for _, tt := range tests { t.Run(string(tt.extension), func(t *testing.T) { factory, ok := extFactories[tt.extension] @@ -123,6 +181,11 @@ func TestDefaultExtensions(t *testing.T) { assert.Equal(t, tt.extension, factory.Type()) assert.Equal(t, config.NewComponentID(tt.extension), factory.CreateDefaultConfig().ID()) + if tt.skipLifecycle { + t.Skip("Skipping lifecycle test for ", tt.extension) + return + } + verifyExtensionLifecycle(t, factory, tt.getConfigFn) }) } From 9929b1fbd297516e3a7d2683cf6e6de3c90be02e Mon Sep 17 00:00:00 2001 From: Sean Marciniak <30928402+MovieStoreGuy@users.noreply.github.com> Date: Wed, 29 Dec 2021 09:23:01 +1030 Subject: [PATCH 2/2] Updating test to use correct methods --- internal/components/exporters_test.go | 2 +- internal/components/extensions_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/components/exporters_test.go b/internal/components/exporters_test.go index e06cfa189b95..dab21d737cd2 100644 --- a/internal/components/exporters_test.go +++ b/internal/components/exporters_test.go @@ -405,7 +405,7 @@ func TestDefaultExporters(t *testing.T) { }, } - assert.Equal(t, len(tests), len(expFactories), "All user configurable components must be added to the lifecycle test") + assert.Len(t, tests, len(expFactories), "All user configurable components must be added to the lifecycle test") for _, tt := range tests { t.Run(string(tt.exporter), func(t *testing.T) { t.Parallel() diff --git a/internal/components/extensions_test.go b/internal/components/extensions_test.go index aed21b2a2746..c1a480d87cad 100644 --- a/internal/components/extensions_test.go +++ b/internal/components/extensions_test.go @@ -156,7 +156,7 @@ func TestDefaultExtensions(t *testing.T) { extension: "file_storage", getConfigFn: func() config.Extension { cfg := extFactories["file_storage"].CreateDefaultConfig().(*filestorage.Config) - cfg.Directory = "/tmp" // Need to change to testutil.NewTemporaryDirectory once merged + cfg.Directory = testutil.NewTemporaryDirectory(t) return cfg }, }, @@ -173,7 +173,7 @@ func TestDefaultExtensions(t *testing.T) { }, } - assert.Equal(t, len(tests), len(extFactories), "All extensions must be added to the lifecycle tests") + assert.Len(t, tests, len(extFactories), "All extensions must be added to the lifecycle tests") for _, tt := range tests { t.Run(string(tt.extension), func(t *testing.T) { factory, ok := extFactories[tt.extension]