From 95aa284845fa7ef9380003d886777f4c5fd661e1 Mon Sep 17 00:00:00 2001 From: Lance Liu Date: Thu, 6 Aug 2020 14:13:46 +0800 Subject: [PATCH] add e2e to profiling subcommand Signed-off-by: Lance Liu --- plugins/admin/core/root.go | 4 ++-- plugins/admin/test/e2e/kn_admin_test.go | 27 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/plugins/admin/core/root.go b/plugins/admin/core/root.go index 9166fad2..38a6e07e 100644 --- a/plugins/admin/core/root.go +++ b/plugins/admin/core/root.go @@ -31,7 +31,7 @@ import ( var cfgFile string -// rootCmd represents the base command when called without any subcommands +// NewAdminCommand represents the base command when called without any subcommands func NewAdminCommand(params ...pkg.AdminParams) *cobra.Command { p := &pkg.AdminParams{} p.Initialize() @@ -47,7 +47,7 @@ func NewAdminCommand(params ...pkg.AdminParams) *cobra.Command { cobra.OnInitialize(initConfig) rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.config/kn/plugins/admin.yaml)") rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") - + rootCmd.SetOut(os.Stdout) rootCmd.AddCommand(domain.NewDomainCmd(p)) rootCmd.AddCommand(private_registry.NewPrivateRegistryCmd(p)) rootCmd.AddCommand(autoscaling.NewAutoscalingCmd(p)) diff --git a/plugins/admin/test/e2e/kn_admin_test.go b/plugins/admin/test/e2e/kn_admin_test.go index 6a4d350f..d100270c 100644 --- a/plugins/admin/test/e2e/kn_admin_test.go +++ b/plugins/admin/test/e2e/kn_admin_test.go @@ -19,6 +19,7 @@ import ( "io/ioutil" "os" "path/filepath" + "strings" "testing" testcommon "github.com/maximilien/kn-source-pkg/test/e2e" @@ -79,8 +80,16 @@ func TestKnAdminPlugin(t *testing.T) { err = e2eTest.restoreConfigMap("config-domain") assert.NilError(t, err) + err = e2eTest.backupConfigMap("config-observability") + assert.NilError(t, err) + t.Log("test kn admin profiling subcommand") + e2eTest.knAdminProfiling(t, r) + err = e2eTest.restoreConfigMap("config-observability") + assert.NilError(t, err) + err = e2eTest.it.KnPlugin().Uninstall() assert.NilError(t, err) + } func (et *e2eTest) backupConfigMap(cm string) error { @@ -124,3 +133,21 @@ func (et *e2eTest) knAdminDomain(t *testing.T, r *test.KnRunResultCollector) { out = et.kn.Run(pluginName, "domain", "unset", "--custom-domain", domain) r.AssertNoError(out) } + +func (et *e2eTest) knAdminProfiling(t *testing.T, r *test.KnRunResultCollector) { + out := et.kn.Run(pluginName, "profiling", "--enable") + r.AssertNoError(out) + assert.Equal(t, "Knative Serving profiling is enabled\n", out.Stdout) + + out = et.kn.Run(pluginName, "profiling", "--heap", "--target", "controller") + r.AssertNoError(out) + assert.Check(t, strings.Contains(out.Stdout, "Saving heap profiling data to")) + + out = et.kn.Run(pluginName, "profiling", "--cpu", "5s", "--target", "controller") + r.AssertNoError(out) + assert.Check(t, strings.Contains(out.Stdout, "Saving 5 second(s) cpu profiling data to")) + + out = et.kn.Run(pluginName, "profiling", "--disable") + r.AssertNoError(out) + assert.Equal(t, "Knative Serving profiling is disabled\n", out.Stdout) +}