From 79863a1cd418fccd573c2a04453b93a4c072b0a2 Mon Sep 17 00:00:00 2001 From: Wei Fu Date: Tue, 17 Oct 2023 21:35:31 +0800 Subject: [PATCH] *: cleanup main_test.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The #15544 has removed the `build_cov` build. And after go1.20, we use `-cover` buildflag to enable coverage exporter. We don't need to maintain main_test.go anymore. ```bash ➜ pwd /home/fuwei/go/src/go.etcd.io/etcd/etcdctl ➜ go build -o /tmp/etcdctl -cover ./ ➜ mkdir /tmp/etcdctl-covdata ➜ GOCOVERDIR=/tmp/etcdctl-covdata /tmp/etcdctl get /health ➜ go tool covdata percent -i=/tmp/etcdctl-covdata go.etcd.io/etcd/etcdctl/v3 coverage: 66.7% of statements go.etcd.io/etcd/etcdctl/v3/ctlv3 coverage: 83.3% of statements go.etcd.io/etcd/etcdctl/v3/ctlv3/command coverage: 15.4% of statements ``` REF: https://go.dev/testing/coverage/ Signed-off-by: Wei Fu --- etcdctl/main_test.go | 68 ------------------------------------------ etcdutl/main_test.go | 68 ------------------------------------------ server/main_test.go | 70 -------------------------------------------- 3 files changed, 206 deletions(-) delete mode 100644 etcdctl/main_test.go delete mode 100644 etcdutl/main_test.go delete mode 100644 server/main_test.go diff --git a/etcdctl/main_test.go b/etcdctl/main_test.go deleted file mode 100644 index 501f9e7fd217..000000000000 --- a/etcdctl/main_test.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2017 The etcd Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "log" - "os" - "strings" - "testing" -) - -func SplitTestArgs(args []string) ([]string, []string) { - var testArgs, appArgs []string - - for i, arg := range args { - switch { - case strings.HasPrefix(arg, "-test."): - testArgs = append(testArgs, arg) - case i == 0: - appArgs = append(appArgs, arg) - testArgs = append(testArgs, arg) - default: - appArgs = append(appArgs, arg) - } - } - return testArgs, appArgs -} - -// TestEmpty is an empty test to avoid no-tests warning. -func TestEmpty(t *testing.T) {} - -/** - * The purpose of this "test" is to run etcdctl with code-coverage - * collection turned on. The technique is documented here: - * - * https://www.cyphar.com/blog/post/20170412-golang-integration-coverage - */ -func TestMain(m *testing.M) { - // don't launch etcdctl when invoked via go test - if strings.HasSuffix(os.Args[0], "etcdctl.test") { - return - } - - testArgs, appArgs := SplitTestArgs(os.Args) - - os.Args = appArgs - - err := mainWithError() - if err != nil { - log.Fatalf("etcdctl failed with: %v", err) - } - - // This will generate coverage files: - os.Args = testArgs - m.Run() -} diff --git a/etcdutl/main_test.go b/etcdutl/main_test.go deleted file mode 100644 index 118cfa655a5d..000000000000 --- a/etcdutl/main_test.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2017 The etcd Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "log" - "os" - "strings" - "testing" -) - -func SplitTestArgs(args []string) ([]string, []string) { - var testArgs, appArgs []string - - for i, arg := range args { - switch { - case strings.HasPrefix(arg, "-test."): - testArgs = append(testArgs, arg) - case i == 0: - appArgs = append(appArgs, arg) - testArgs = append(testArgs, arg) - default: - appArgs = append(appArgs, arg) - } - } - return testArgs, appArgs -} - -// TestEmpty is empty test to avoid no-tests warning. -func TestEmpty(t *testing.T) {} - -/** - * The purpose of this "test" is to run etcdctl with code-coverage - * collection turned on. The technique is documented here: - * - * https://www.cyphar.com/blog/post/20170412-golang-integration-coverage - */ -func TestMain(m *testing.M) { - // don't launch etcdutl when invoked via go test - if strings.HasSuffix(os.Args[0], "etcdutl.test") { - return - } - - testArgs, appArgs := SplitTestArgs(os.Args) - - os.Args = appArgs - - err := Start() - if err != nil { - log.Fatalf("etcdctl failed with: %v", err) - } - - // This will generate coverage files: - os.Args = testArgs - m.Run() -} diff --git a/server/main_test.go b/server/main_test.go deleted file mode 100644 index e537ba54818c..000000000000 --- a/server/main_test.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2017 The etcd Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "log" - "os" - "os/signal" - "strings" - "syscall" - "testing" - - "go.etcd.io/etcd/server/v3/etcdmain" -) - -func SplitTestArgs(args []string) ([]string, []string) { - var testArgs, appArgs []string - - for i, arg := range args { - switch { - case strings.HasPrefix(arg, "-test."): - testArgs = append(testArgs, arg) - case i == 0: - appArgs = append(appArgs, arg) - testArgs = append(testArgs, arg) - default: - appArgs = append(appArgs, arg) - } - } - return testArgs, appArgs -} - -func TestEmpty(t *testing.T) {} - -/** - * The purpose of this "test" is to run etcd server with code-coverage - * collection turned on. The technique is documented here: - * - * https://www.cyphar.com/blog/post/20170412-golang-integration-coverage - */ -func TestMain(m *testing.M) { - // don't launch etcd server when invoked via go test - if strings.HasSuffix(os.Args[0], ".test") { - log.Print("skip launching etcd server when invoked via go test") - return - } - - testArgs, appArgs := SplitTestArgs(os.Args) - - notifier := make(chan os.Signal, 1) - signal.Notify(notifier, syscall.SIGINT, syscall.SIGTERM) - go etcdmain.Main(appArgs) - <-notifier - - // This will generate coverage files: - os.Args = testArgs - m.Run() -}