Repository: kubernetes/minikube
Pull request #11381 (2021-05-11 22:23:01)

Make sure all tests have comments
Adding a unit test that will fail if a test is missing a comment.


Patch:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ef19d0102..47f11dcd8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -11,7 +11,7 @@ on:
       - "!deploy/iso/**"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: 1.16.4
+  GO_VERSION: 1.16.1
 jobs:
   build_minikube:
     runs-on: ubuntu-18.04
diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 72889292f..849f31988 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -13,7 +13,7 @@ on:
       - "!deploy/iso/**"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: 1.16.4
+  GO_VERSION: 1.16.1
 jobs:
   # Runs before all other jobs
   # builds the minikube binaries
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 2c74b0db9..23e898472 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -11,7 +11,7 @@ on:
       - "!deploy/iso/**"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: 1.16.4
+  GO_VERSION: 1.16.1
 jobs:
   # Runs before all other jobs
   # builds the minikube binaries
diff --git a/.github/workflows/pr_verified.yaml b/.github/workflows/pr_verified.yaml
index da0424446..50fe09ae1 100644
--- a/.github/workflows/pr_verified.yaml
+++ b/.github/workflows/pr_verified.yaml
@@ -20,7 +20,7 @@ on:
       - deleted
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: 1.16.4
+  GO_VERSION: 1.16.1
 
 jobs:
   # Runs before all other jobs
diff --git a/Makefile b/Makefile
index 7f7015be9..021c77981 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@ RPM_VERSION ?= $(DEB_VERSION)
 RPM_REVISION ?= 0
 
 # used by hack/jenkins/release_build_and_upload.sh and KVM_BUILD_IMAGE, see also BUILD_IMAGE below
-GO_VERSION ?= 1.16.4
+GO_VERSION ?= 1.16.1
 
 # replace "x.y.0" => "x.y". kube-cross and golang.org/dl use different formats for x.y.0 go versions
 KVM_GO_VERSION ?= $(GO_VERSION:.0=)
@@ -207,10 +207,6 @@ out/minikube-windows-amd64.exe: out/minikube-windows-amd64
 	$(if $(quiet),@echo "  CP       $@")
 	$(Q)cp $< $@
 
-out/minikube-linux-i686: out/minikube-linux-386
-	$(if $(quiet),@echo "  CP       $@")
-	$(Q)cp $< $@
-
 out/minikube-linux-x86_64: out/minikube-linux-amd64
 	$(if $(quiet),@echo "  CP       $@")
 	$(Q)cp $< $@
@@ -253,10 +249,6 @@ else
 	go build -tags "$(MINIKUBE_BUILD_TAGS)" -ldflags="$(MINIKUBE_LDFLAGS)" -a -o $@ k8s.io/minikube/cmd/minikube
 endif
 
-out/minikube-linux-armv6:
-	$(Q)GOOS=linux GOARCH=arm GOARM=6 \
-	go build -tags "$(MINIKUBE_BUILD_TAGS)" -ldflags="$(MINIKUBE_LDFLAGS)" -a -o $@ k8s.io/minikube/cmd/minikube
-
 .PHONY: e2e-linux-amd64 e2e-linux-arm64 e2e-darwin-amd64 e2e-windows-amd64.exe
 e2e-linux-amd64: out/e2e-linux-amd64 ## build end2end binary for Linux x86 64bit
 e2e-linux-arm64: out/e2e-linux-arm64 ## build end2end binary for Linux ARM 64bit
@@ -318,7 +310,7 @@ test-pkg/%: $(SOURCE_GENERATED) ## Trigger packaging test
 	go test -v -test.timeout=60m ./$* --tags="$(MINIKUBE_BUILD_TAGS)"
 
 .PHONY: all
-all: cross drivers e2e-cross cross-tars exotic retro out/gvisor-addon ## Build all different minikube components
+all: cross drivers e2e-cross cross-tars exotic out/gvisor-addon ## Build all different minikube components
 
 .PHONY: drivers
 drivers: docker-machine-driver-hyperkit docker-machine-driver-kvm2 ## Build Hyperkit and KVM2 drivers
@@ -430,9 +422,6 @@ cross: minikube-linux-amd64 minikube-darwin-amd64 minikube-windows-amd64.exe ##
 .PHONY: exotic
 exotic: out/minikube-linux-arm out/minikube-linux-arm64 out/minikube-linux-ppc64le out/minikube-linux-s390x ## Build minikube for non-amd64 linux
 
-.PHONY: retro
-retro: out/minikube-linux-386 out/minikube-linux-armv6 ## Build minikube for legacy 32-bit linux
-
 .PHONY: windows
 windows: minikube-windows-amd64.exe ## Build minikube for Windows 64bit
 
diff --git a/cmd/minikube/cmd/kubectl.go b/cmd/minikube/cmd/kubectl.go
index 35c776d0e..9472caf8a 100644
--- a/cmd/minikube/cmd/kubectl.go
+++ b/cmd/minikube/cmd/kubectl.go
@@ -27,7 +27,6 @@ import (
 	"k8s.io/klog/v2"
 	"k8s.io/minikube/pkg/minikube/config"
 	"k8s.io/minikube/pkg/minikube/constants"
-	"k8s.io/minikube/pkg/minikube/detect"
 	"k8s.io/minikube/pkg/minikube/machine"
 	"k8s.io/minikube/pkg/minikube/mustload"
 	"k8s.io/minikube/pkg/minikube/node"
@@ -81,19 +80,6 @@ host. Please be aware that when using --ssh all paths will apply to the remote m
 			return
 		}
 
-		supported := false
-		arch := detect.RuntimeArch()
-		for _, a := range constants.SupportedArchitectures {
-			if arch == a {
-				supported = true
-				break
-			}
-		}
-		if !supported {
-			fmt.Fprintf(os.Stderr, "Not supported on: %s\n", arch)
-			os.Exit(1)
-		}
-
 		if len(args) > 1 && args[0] != "--help" {
 			cluster := []string{"--cluster", cname}
 			args = append(cluster, args...)
diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go
index 0e97dda50..41b9d1aa2 100644
--- a/cmd/minikube/cmd/start.go
+++ b/cmd/minikube/cmd/start.go
@@ -50,7 +50,6 @@ import (
 	"k8s.io/minikube/pkg/minikube/config"
 	"k8s.io/minikube/pkg/minikube/constants"
 	"k8s.io/minikube/pkg/minikube/cruntime"
-	"k8s.io/minikube/pkg/minikube/detect"
 	"k8s.io/minikube/pkg/minikube/download"
 	"k8s.io/minikube/pkg/minikube/driver"
 	"k8s.io/minikube/pkg/minikube/exit"
@@ -121,7 +120,7 @@ func platform() string {
 
 	// This environment is exotic, let's output a bit more.
 	if vrole == "guest" || runtime.GOARCH != "amd64" {
-		if vrole == "guest" && vsys != "" {
+		if vsys != "" {
 			s.WriteString(fmt.Sprintf(" (%s/%s)", vsys, runtime.GOARCH))
 		} else {
 			s.WriteString(fmt.Sprintf(" (%s)", runtime.GOARCH))
@@ -716,11 +715,9 @@ func validateSpecifiedDriver(existing *config.ClusterConfig) {
 // validateDriver validates that the selected driver appears sane, exits if not
 func validateDriver(ds registry.DriverState, existing *config.ClusterConfig) {
 	name := ds.Name
-	os := detect.RuntimeOS()
-	arch := detect.RuntimeArch()
 	klog.Infof("validating driver %q against %+v", name, existing)
 	if !driver.Supported(name) {
-		exit.Message(reason.DrvUnsupportedOS, "The driver '{{.driver}}' is not supported on {{.os}}/{{.arch}}", out.V{"driver": name, "os": os, "arch": arch})
+		exit.Message(reason.DrvUnsupportedOS, "The driver '{{.driver}}' is not supported on {{.os}}/{{.arch}}", out.V{"driver": name, "os": runtime.GOOS, "arch": runtime.GOARCH})
 	}
 
 	// if we are only downloading artifacts for a driver, we can stop validation here
diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go
index 012e84dae..32e368f6a 100644
--- a/cmd/minikube/cmd/start_flags.go
+++ b/cmd/minikube/cmd/start_flags.go
@@ -515,7 +515,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing *config.ClusterC
 	cc := *existing
 
 	if cmd.Flags().Changed(memory) && getMemorySize(cmd, cc.Driver) != cc.Memory {
-		out.WarningT("You cannot change the memory size for an exiting minikube cluster. Please first delete the cluster.")
+		out.WarningT("You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.")
 	}
 
 	if cmd.Flags().Changed(cpus) && viper.GetInt(cpus) != cc.CPUs {
@@ -526,7 +526,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing *config.ClusterC
 	validateRequestedMemorySize(cc.Memory, cc.Driver)
 
 	if cmd.Flags().Changed(humanReadableDiskSize) && getDiskSize() != existing.DiskSize {
-		out.WarningT("You cannot change the Disk size for an existing minikube cluster. Please first delete the cluster.")
+		out.WarningT("You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.")
 	}
 
 	updateStringFromFlag(cmd, &cc.MinikubeISO, isoURL)
diff --git a/hack/jenkins/common.sh b/hack/jenkins/common.sh
index 2fdbfb4b2..f77c4438d 100755
--- a/hack/jenkins/common.sh
+++ b/hack/jenkins/common.sh
@@ -45,7 +45,7 @@ else
 fi
 
 # installing golang so we could do go get for gopogh
-sudo ARCH="$ARCH"./installers/check_install_golang.sh "1.16.4" "/usr/local" || true
+sudo ARCH="$ARCH"./installers/check_install_golang.sh "1.16.1" "/usr/local" || true
 
 # install docker and kubectl if not present
 sudo ARCH="$ARCH" ./installers/check_install_docker.sh || true
diff --git a/hack/jenkins/release_build_and_upload.sh b/hack/jenkins/release_build_and_upload.sh
index 701d05329..62f6f7438 100755
--- a/hack/jenkins/release_build_and_upload.sh
+++ b/hack/jenkins/release_build_and_upload.sh
@@ -78,7 +78,6 @@ fi
 
 # Don't upload temporary copies, avoid unused duplicate files in the release storage
 rm -f out/minikube-linux-x86_64
-rm -f out/minikube-linux-i686
 rm -f out/minikube-linux-aarch64
 rm -f out/minikube-linux-armhf
 rm -f out/minikube-linux-armv7hl
diff --git a/pkg/generate/docs.go b/pkg/generate/docs.go
index 4cf9648ab..bb66b86aa 100644
--- a/pkg/generate/docs.go
+++ b/pkg/generate/docs.go
@@ -47,7 +47,7 @@ func Docs(root *cobra.Command, path string, testPath string) error {
 			return errors.Wrapf(err, "saving doc for %s", c.Name())
 		}
 	}
-	return testDocs(testPath)
+	return TestDocs(testPath, "test/integration")
 }
 
 // DocForCommand returns the specific doc for that command
diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go
index bf2c5b6b0..8e8b18494 100644
--- a/pkg/minikube/constants/constants.go
+++ b/pkg/minikube/constants/constants.go
@@ -26,11 +26,6 @@ import (
 	"k8s.io/minikube/pkg/minikube/localpath"
 )
 
-var (
-	// SupportedArchitectures is the list of supported architectures
-	SupportedArchitectures = [5]string{"amd64", "arm", "arm64", "ppc64le", "s390x"}
-)
-
 const (
 	// DefaultKubernetesVersion is the default Kubernetes version
 	// dont update till #10545 is solved
diff --git a/pkg/minikube/detect/detect.go b/pkg/minikube/detect/detect.go
index 097a9fb48..dba9f9107 100644
--- a/pkg/minikube/detect/detect.go
+++ b/pkg/minikube/detect/detect.go
@@ -25,30 +25,8 @@ import (
 	"strings"
 
 	"github.com/klauspost/cpuid"
-	"golang.org/x/sys/cpu"
 )
 
-// RuntimeOS returns the runtime operating system
-func RuntimeOS() string {
-	return runtime.GOOS
-}
-
-// RuntimeArch returns the runtime architecture
-func RuntimeArch() string {
-	arch := runtime.GOARCH
-	if arch == "arm" {
-		// runtime.GOARM
-		if !cpu.ARM.HasVFP {
-			return "arm/v5"
-		}
-		if !cpu.ARM.HasVFPv3 {
-			return "arm/v6"
-		}
-		// "arm" (== "arm/v7")
-	}
-	return arch
-}
-
 // IsMicrosoftWSL will return true if process is running in WSL in windows
 // checking for WSL env var based on this https://github.com/microsoft/WSL/issues/423#issuecomment-608237689
 // also based on https://github.com/microsoft/vscode/blob/90a39ba0d49d75e9a4d7e62a6121ad946ecebc58/resources/win32/bin/code.sh#L24
diff --git a/pkg/minikube/driver/driver.go b/pkg/minikube/driver/driver.go
index b5e55711b..47cb5885b 100644
--- a/pkg/minikube/driver/driver.go
+++ b/pkg/minikube/driver/driver.go
@@ -26,7 +26,6 @@ import (
 
 	"k8s.io/klog/v2"
 	"k8s.io/minikube/pkg/drivers/kic/oci"
-	"k8s.io/minikube/pkg/minikube/constants"
 	"k8s.io/minikube/pkg/minikube/detect"
 	"k8s.io/minikube/pkg/minikube/registry"
 )
@@ -72,20 +71,13 @@ var (
 
 // SupportedDrivers returns a list of supported drivers
 func SupportedDrivers() []string {
-	arch := detect.RuntimeArch()
-	for _, a := range constants.SupportedArchitectures {
-		if arch == a {
-			return supportedDrivers
-		}
-	}
-	// remote cluster only
-	return []string{SSH}
+	return supportedDrivers
 }
 
 // DisplaySupportedDrivers returns a string with a list of supported drivers
 func DisplaySupportedDrivers() string {
 	var sd []string
-	for _, d := range SupportedDrivers() {
+	for _, d := range supportedDrivers {
 		if registry.Driver(d).Priority == registry.Experimental {
 			sd = append(sd, d+" (experimental)")
 			continue
@@ -97,7 +89,7 @@ func DisplaySupportedDrivers() string {
 
 // Supported returns if the driver is supported on this host.
 func Supported(name string) bool {
-	for _, d := range SupportedDrivers() {
+	for _, d := range supportedDrivers {
 		if name == d {
 			return true
 		}
diff --git a/pkg/minikube/extract/extract.go b/pkg/minikube/extract/extract.go
index f67cfb3a0..41ec27098 100644
--- a/pkg/minikube/extract/extract.go
+++ b/pkg/minikube/extract/extract.go
@@ -31,7 +31,6 @@ import (
 
 	"github.com/golang-collections/collections/stack"
 	"github.com/pkg/errors"
-	"k8s.io/minikube/pkg/util/lock"
 )
 
 // exclude is a list of strings to explicitly omit from translation files.
@@ -48,6 +47,7 @@ var exclude = []string{
 	"==\u003e {{.name}} \u003c==",
 	"- {{.profile}}",
 	"    - {{.profile}}",
+	"test/integration",
 }
 
 // ErrMapFile is a constant to refer to the err_map file, which contains the Advice strings.
@@ -491,7 +491,7 @@ func writeStringsToFiles(e *state, output string) error {
 		if err != nil {
 			return errors.Wrap(err, "marshalling translations")
 		}
-		err = lock.WriteFile(path, c, info.Mode())
+		err = ioutil.WriteFile(path, c, info.Mode())
 		if err != nil {
 			return errors.Wrap(err, "writing translation file")
 		}
@@ -509,7 +509,7 @@ func writeStringsToFiles(e *state, output string) error {
 		return errors.Wrap(err, "marshalling translations")
 	}
 	path := filepath.Join(output, "strings.txt")
-	err = lock.WriteFile(path, c, 0644)
+	err = ioutil.WriteFile(path, c, 0644)
 	if err != nil {
 		return errors.Wrap(err, "writing translation file")
 	}
diff --git a/pkg/minikube/node/cache.go b/pkg/minikube/node/cache.go
index 3b638aab0..3ab2f7a96 100644
--- a/pkg/minikube/node/cache.go
+++ b/pkg/minikube/node/cache.go
@@ -142,14 +142,6 @@ func beginDownloadKicBaseImage(g *errgroup.Group, cc *config.ClusterConfig, down
 				return err
 			}
 
-			if driver.IsDocker(cc.Driver) {
-				if image.ExistsImageInDaemon(img) {
-					klog.Infof("%s exists in daemon, skipping load", img)
-					finalImg = img
-					return nil
-				}
-			}
-
 			if err := image.LoadFromTarball(cc.Driver, img); err == nil {
 				klog.Infof("successfully loaded %s from cached tarball", img)
 				// strip the digest from the img before saving it in the config
@@ -159,6 +151,12 @@ func beginDownloadKicBaseImage(g *errgroup.Group, cc *config.ClusterConfig, down
 			}
 
 			if driver.IsDocker(cc.Driver) {
+				if image.ExistsImageInDaemon(img) {
+					klog.Infof("%s exists in daemon, skipping pull", img)
+					finalImg = img
+					return nil
+				}
+
 				klog.Infof("Downloading %s to local daemon", img)
 				err = image.WriteImageToDaemon(img)
 				if err == nil {
diff --git a/translations/de.json b/translations/de.json
index 604e38616..1418b222a 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -273,6 +273,9 @@
 	"Found network options:": "Gefundene Netzwerkoptionen:",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "",
@@ -780,7 +783,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Möglicherweise müssen Sie die VM \"{{.name}}\" manuell von Ihrem Hypervisor entfernen",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "",
@@ -800,6 +803,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "",
 	"cancel any existing scheduled stop requests": "",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \\n\\n": "",
@@ -827,6 +831,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"if true, will embed the certs in kubeconfig.": "",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "",
 	"initialization failed, will try again: {{.error}}": "",
@@ -897,6 +902,7 @@
 	"version json failure": "",
 	"version yaml failure": "",
 	"zsh completion failed": "",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} nodes stopped.": "",
diff --git a/translations/es.json b/translations/es.json
index 04d8973ad..f3dd48a25 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -278,6 +278,9 @@
 	"Found network options:": "Se han encontrado las siguientes opciones de red:",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "",
@@ -785,7 +788,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Puede que tengas que retirar manualmente la VM \"{{.name}}\" de tu hipervisor",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "",
@@ -805,6 +808,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "",
 	"cancel any existing scheduled stop requests": "",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \\n\\n": "",
@@ -832,6 +836,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"if true, will embed the certs in kubeconfig.": "",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "",
 	"initialization failed, will try again: {{.error}}": "",
@@ -902,6 +907,7 @@
 	"version json failure": "",
 	"version yaml failure": "",
 	"zsh completion failed": "",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} nodes stopped.": "",
diff --git a/translations/fr.json b/translations/fr.json
index 8626d7131..5b891b767 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -275,6 +275,9 @@
 	"Found network options:": "Options de réseau trouvées :",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "Génération des certificats et des clés",
@@ -786,7 +789,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Vous devrez peut-être supprimer la VM \"{{.name}}\" manuellement de votre hyperviseur.",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "",
@@ -806,6 +809,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "",
 	"cancel any existing scheduled stop requests": "",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \\n\\n": "",
@@ -833,6 +837,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"if true, will embed the certs in kubeconfig.": "",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "",
 	"initialization failed, will try again: {{.error}}": "",
@@ -904,6 +909,7 @@
 	"version json failure": "échec de la version du JSON",
 	"version yaml failure": "échec de la version du YAML",
 	"zsh completion failed": "complétion de zsh en échec",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "{{ .name }} : {{ .rejection }}",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} nodes stopped.": "{{.count}} nœud(s) arrêté(s).",
diff --git a/translations/ja.json b/translations/ja.json
index 1117096f0..73f388994 100644
--- a/translations/ja.json
+++ b/translations/ja.json
@@ -263,6 +263,9 @@
 	"Found network options:": "ネットワーク オプションが見つかりました",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "シェルのコマンド補完コードを生成します",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "",
@@ -784,7 +787,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "ハイパーバイザから「{{.name}}」VM を手動で削除することが必要な可能性があります",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "Hyper-V マネージャを停止して、「 minikube delete 」を再実行する必要があるかもしれません　",
@@ -806,6 +809,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "bash の補完が失敗しました",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "cleanup=true で呼び出すことで、古い tunnel を削除することができます",
 	"cancel any existing scheduled stop requests": "",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm\"\nConfigurable fields:\\n\\n": "config では以下のようにサブコマンドを使用して、minikube の設定ファイルを編集することができます。 \"minikube config set driver kvm\"\n設定可能なフィールドは以下です。\\n\\n",
@@ -834,6 +838,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"if true, will embed the certs in kubeconfig.": "有効であれば、Kubernetes の設定ファイルに証明書を埋め込みます",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "minikube のプロフィールを作成する場合は、以下のコマンドで作成できます。 minikube start -p {{.profile_name}}",
 	"initialization failed, will try again: {{.error}}": "初期化が失敗しました。再施行します。 {{.error}}",
@@ -914,6 +919,7 @@
 	"version json failure": "JSON でバージョンを表示するのに失敗しました",
 	"version yaml failure": "YAML でバージョンを表示するのに失敗しました",
 	"zsh completion failed": "zsh の補完が失敗しました",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "{{ .name }}: {{ .rejection }}",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.cluster}} IP has been updated to point at {{.ip}}": "{{.cluster}} の IP アドレスは {{.ip}} へと更新されました",
diff --git a/translations/ko.json b/translations/ko.json
index e9505ffc6..78065bea9 100644
--- a/translations/ko.json
+++ b/translations/ko.json
@@ -296,6 +296,9 @@
 	"Found {{.number}} invalid profile(s) !": "{{.number}} 개의 무효한 프로필을 찾았습니다",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "",
@@ -788,7 +791,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "",
@@ -809,6 +812,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "bash 자동 완성이 실패하였습니다",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "",
 	"cancel any existing scheduled stop requests": "예정된 모든 중지 요청을 취소합니다",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \\n\\n": "",
@@ -838,6 +842,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"getting config": "컨피그 조회 중",
 	"if true, will embed the certs in kubeconfig.": "",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "프로필을 생성하려면 다음 명령어를 입력하세요: minikube start -p {{.profile_name}}\"",
@@ -914,6 +919,7 @@
 	"version json failure": "",
 	"version yaml failure": "",
 	"zsh completion failed": "zsh 완성이 실패하였습니다",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} nodes stopped.": "{{.count}}개의 노드가 중지되었습니다.",
diff --git a/translations/pl.json b/translations/pl.json
index 46c82fb3b..8ebe15fb7 100644
--- a/translations/pl.json
+++ b/translations/pl.json
@@ -283,6 +283,9 @@
 	"Found {{.number}} invalid profile(s) !": "Wykryto {{.number}} nieprawidłowych profili ! ",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "",
@@ -797,7 +800,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "",
@@ -817,6 +820,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "",
 	"cancel any existing scheduled stop requests": "",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \\n\\n": "",
@@ -844,6 +848,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"if true, will embed the certs in kubeconfig.": "",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "",
 	"initialization failed, will try again: {{.error}}": "",
@@ -916,6 +921,7 @@
 	"version json failure": "",
 	"version yaml failure": "",
 	"zsh completion failed": "",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.addonName}} was successfully enabled": "{{.addonName}} został aktywowany pomyślnie",
diff --git a/translations/strings.txt b/translations/strings.txt
index 3f8b308f7..853a38dd8 100644
--- a/translations/strings.txt
+++ b/translations/strings.txt
@@ -254,6 +254,9 @@
 	"Found network options:": "",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "",
@@ -725,7 +728,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "",
@@ -745,6 +748,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "",
 	"cancel any existing scheduled stop requests": "",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \\n\\n": "",
@@ -772,6 +776,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"if true, will embed the certs in kubeconfig.": "",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "",
 	"initialization failed, will try again: {{.error}}": "",
@@ -842,6 +847,7 @@
 	"version json failure": "",
 	"version yaml failure": "",
 	"zsh completion failed": "",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} nodes stopped.": "",
diff --git a/translations/zh-CN.json b/translations/zh-CN.json
index c49e7fb82..aa14bb632 100644
--- a/translations/zh-CN.json
+++ b/translations/zh-CN.json
@@ -348,6 +348,9 @@
 	"Found {{.number}} invalid profile(s) !": "找到 {{.number}} 个无效的配置文件！",
 	"Found {{.number}} invalid profile(s) ! ": "",
 	"Generate command completion for a shell": "",
+	"Generate command completion for bash.": "",
+	"Generate command completion for fish .": "",
+	"Generate command completion for zsh.": "",
 	"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
 	"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Generating certificates and keys ...": "",
@@ -901,7 +904,7 @@
 	"You can delete them using the following command(s): ": "",
 	"You can force an unsupported Kubernetes version via the --force flag": "",
 	"You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "",
-	"You cannot change the Disk size for an exiting minikube cluster. Please first delete the cluster.": "",
+	"You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "",
 	"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "您可能需要从管理程序中手动移除“{{.name}}”虚拟机",
 	"You may need to stop the Hyper-V Manager and run `minikube delete` again.": "",
@@ -922,6 +925,7 @@
 	"auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "",
 	"auto-pause currently is only supported on docker runtime and amd64. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "",
 	"bash completion failed": "",
+	"bash completion.": "",
 	"call with cleanup=true to remove old tunnels": "",
 	"cancel any existing scheduled stop requests": "",
 	"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \\n\\n": "",
@@ -949,6 +953,7 @@
 	"failed to save config": "",
 	"failed to start node": "",
 	"fish completion failed": "",
+	"fish completion.": "",
 	"if true, will embed the certs in kubeconfig.": "",
 	"if you want to create a profile you can by this command: minikube start -p {{.profile_name}}": "",
 	"initialization failed, will try again: {{.error}}": "",
@@ -1024,6 +1029,7 @@
 	"version json failure": "",
 	"version yaml failure": "",
 	"zsh completion failed": "",
+	"zsh completion.": "",
 	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} nodes stopped.": "",


Test patch:
diff --git a/cmd/minikube/cmd/generate-docs_test.go b/cmd/minikube/cmd/generate-docs_test.go
index b8dab4e72..0d03d2a29 100644
--- a/cmd/minikube/cmd/generate-docs_test.go
+++ b/cmd/minikube/cmd/generate-docs_test.go
@@ -19,7 +19,9 @@ package cmd
 import (
 	"fmt"
 	"io/ioutil"
+	"os"
 	"path/filepath"
+	"strings"
 	"testing"
 
 	"github.com/google/go-cmp/cmp"
@@ -51,3 +53,49 @@ func TestGenerateDocs(t *testing.T) {
 		})
 	}
 }
+
+func TestGenerateTestDocs(t *testing.T) {
+	tempdir, err := ioutil.TempDir("", "")
+	if err != nil {
+		t.Fatalf("creating temp dir failed: %v", err)
+	}
+	defer os.RemoveAll(tempdir)
+	docPath := filepath.Join(tempdir, "tests.md")
+	realPath := "../../../site/content/en/docs/contrib/tests.en.md"
+
+	expectedContents, err := ioutil.ReadFile(realPath)
+	if err != nil {
+		t.Fatalf("error reading existing file: %v", err)
+	}
+
+	err = generate.TestDocs(docPath, "../../../test/integration")
+	if err != nil {
+		t.Fatalf("error generating test docs: %v", err)
+	}
+	actualContents, err := ioutil.ReadFile(docPath)
+	if err != nil {
+		t.Fatalf("error reading generated file: %v", err)
+	}
+
+	if diff := cmp.Diff(string(actualContents), string(expectedContents)); diff != "" {
+		t.Errorf("Test docs are not updated. Please run `make generate-docs` to update documentation: %s", diff)
+	}
+
+	rest := string(actualContents)
+	for rest != "" {
+		rest = checkForNeedsDoc(t, rest)
+	}
+}
+
+func checkForNeedsDoc(t *testing.T, content string) string {
+	needs := "\nNEEDS DOC\n"
+	index := strings.Index(content, needs)
+	if index < 0 {
+		return ""
+	}
+
+	topHalf := content[:index]
+	testName := topHalf[strings.LastIndex(topHalf, "\n"):]
+	t.Errorf("%s is missing a doc string.", testName)
+	return content[index+len(needs):]
+}
diff --git a/pkg/generate/testdocs.go b/pkg/generate/testdocs.go
index 021b2554d..b00fabddd 100644
--- a/pkg/generate/testdocs.go
+++ b/pkg/generate/testdocs.go
@@ -32,7 +32,7 @@ import (
 	"k8s.io/minikube/pkg/minikube/out"
 )
 
-func testDocs(docPath string) error {
+func TestDocs(docPath string, pathToCheck string) error {
 	counter := 0
 	buf := bytes.NewBuffer([]byte{})
 	date := time.Now().Format("2006-01-02")
@@ -42,7 +42,7 @@ func testDocs(docPath string) error {
 		return err
 	}
 
-	err = filepath.Walk("test/integration", func(path string, info os.FileInfo, err error) error {
+	err = filepath.Walk(pathToCheck, func(path string, info os.FileInfo, err error) error {
 		if info.IsDir() || !strings.HasSuffix(path, ".go") {
 			return nil
 		}
@@ -78,14 +78,14 @@ func testDocs(docPath string) error {
 				counter++
 				comments := fd.Doc
 				if comments == nil {
-					e := writeComment("NEEDS DOC\n", buf)
+					e := writeComment(fnName, "// NEEDS DOC\n", buf)
 					return e == nil
 				}
 				for _, comment := range comments.List {
 					if strings.Contains(comment.Text, "TODO") {
 						continue
 					}
-					e := writeComment(comment.Text, buf)
+					e := writeComment(fnName, comment.Text, buf)
 					if e != nil {
 						return false
 					}
@@ -103,7 +103,7 @@ func testDocs(docPath string) error {
 		return err
 	}
 
-	_, err = buf.WriteString(fmt.Sprintf("TEST COUNT: %d\n", counter))
+	_, err = buf.WriteString(fmt.Sprintf("TEST COUNT: %d", counter))
 	if err != nil {
 		return err
 	}
@@ -134,9 +134,10 @@ func writeSubTest(testName string, w *bytes.Buffer) error {
 	return err
 }
 
-func writeComment(comment string, w *bytes.Buffer) error {
+func writeComment(testName string, comment string, w *bytes.Buffer) error {
 	// Remove the leading // from the testdoc comments
 	comment = comment[3:]
+	comment = strings.TrimPrefix(comment, testName+" ")
 	_, err := w.WriteString(comment + "\n")
 	return err
 }
diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md
index 290a3a65d..81308ccc8 100644
--- a/site/content/en/docs/contrib/tests.en.md
+++ b/site/content/en/docs/contrib/tests.en.md
@@ -6,86 +6,86 @@ description: >
 
 
 ## TestDownloadOnly
-TestDownloadOnly makes sure the --download-only parameter in minikube start caches the appropriate images and tarballs.
+makes sure the --download-only parameter in minikube start caches the appropriate images and tarballs.
 
 ## TestDownloadOnlyKic
-TestDownloadOnlyKic makes sure --download-only caches the docker driver images as well.
+makes sure --download-only caches the docker driver images as well.
 
 ## TestOffline
-TestOffline makes sure minikube works without internet, once the user has cached the necessary images.
+makes sure minikube works without internet, once the user has cached the necessary images.
 This test has to run after TestDownloadOnly.
 
 ## TestAddons
-TestAddons tests addons that require no special environment in parallel
+tests addons that require no special environment in parallel
 
 #### validateIngressAddon
-validateIngressAddon tests the ingress addon by deploying a default nginx pod
+tests the ingress addon by deploying a default nginx pod
 
 #### validateRegistryAddon
-validateRegistryAddon tests the registry addon
+tests the registry addon
 
 #### validateMetricsServerAddon
-validateMetricsServerAddon tests the metrics server addon by making sure "kubectl top pods" returns a sensible result
+tests the metrics server addon by making sure "kubectl top pods" returns a sensible result
 
 #### validateHelmTillerAddon
-validateHelmTillerAddon tests the helm tiller addon by running "helm version" inside the cluster
+tests the helm tiller addon by running "helm version" inside the cluster
 
 #### validateOlmAddon
-validateOlmAddon tests the OLM addon
+tests the OLM addon
 
 #### validateCSIDriverAndSnapshots
-validateCSIDriverAndSnapshots tests the csi hostpath driver by creating a persistent volume, snapshotting it and restoring it.
+tests the csi hostpath driver by creating a persistent volume, snapshotting it and restoring it.
 
 #### validateGCPAuthAddon
-validateGCPAuthAddon tests the GCP Auth addon with either phony or real credentials and makes sure the files are mounted into pods correctly
+tests the GCP Auth addon with either phony or real credentials and makes sure the files are mounted into pods correctly
 
 ## TestCertOptions
-TestCertOptions makes sure minikube certs respect the --apiserver-ips and --apiserver-names parameters
+makes sure minikube certs respect the --apiserver-ips and --apiserver-names parameters
 
 ## TestDockerFlags
-TestDockerFlags makes sure the --docker-env and --docker-opt parameters are respected
+makes sure the --docker-env and --docker-opt parameters are respected
 
 ## TestForceSystemdFlag
-TestForceSystemdFlag tests the --force-systemd flag, as one would expect.
+tests the --force-systemd flag, as one would expect.
 
 #### validateDockerSystemd
-validateDockerSystemd makes sure the --force-systemd flag worked with the docker container runtime
+makes sure the --force-systemd flag worked with the docker container runtime
 
 #### validateContainerdSystemd
-validateContainerdSystemd makes sure the --force-systemd flag worked with the containerd container runtime
+makes sure the --force-systemd flag worked with the containerd container runtime
 
 ## TestForceSystemdEnv
-TestForceSystemdEnv makes sure the MINIKUBE_FORCE_SYSTEMD environment variable works just as well as the --force-systemd flag
+makes sure the MINIKUBE_FORCE_SYSTEMD environment variable works just as well as the --force-systemd flag
 
 ## TestKVMDriverInstallOrUpdate
-TestKVMDriverInstallOrUpdate makes sure our docker-machine-driver-kvm2 binary can be installed properly
+makes sure our docker-machine-driver-kvm2 binary can be installed properly
 
 ## TestHyperKitDriverInstallOrUpdate
-TestHyperKitDriverInstallOrUpdate makes sure our docker-machine-driver-hyperkit binary can be installed properly
+makes sure our docker-machine-driver-hyperkit binary can be installed properly
 
 ## TestHyperkitDriverSkipUpgrade
-TestHyperkitDriverSkipUpgrade makes sure our docker-machine-driver-hyperkit binary can be installed properly
+makes sure our docker-machine-driver-hyperkit binary can be installed properly
 
 ## TestErrorSpam
-TestErrorSpam asserts that there are no unexpected errors displayed in minikube command outputs.
+asserts that there are no unexpected errors displayed in minikube command outputs.
 
 ## TestFunctional
-TestFunctional are functionality tests which can safely share a profile in parallel
+are functionality tests which can safely share a profile in parallel
 
 #### validateNodeLabels
-validateNodeLabels checks if minikube cluster is created with correct kubernetes's node label
+checks if minikube cluster is created with correct kubernetes's node label
 
 #### validateLoadImage
-validateLoadImage makes sure that `minikube image load` works as expected
+makes sure that `minikube image load` works as expected
 
 #### validateRemoveImage
-validateRemoveImage makes sures that `minikube image rm` works as expected
+makes sures that `minikube image rm` works as expected
 
 #### validateBuildImage
-validateBuildImage makes sures that `minikube image build` works as expected
+makes sures that `minikube image build` works as expected
 
 #### validateListImages
-validateListImages makes sures that `minikube image ls` works as expected
+makes sures that `minikube image ls` works as expected
 
 #### validateDockerEnv
 check functionality of minikube after evaluating docker-env
@@ -94,267 +94,267 @@ check functionality of minikube after evaluating docker-env
 check functionality of minikube after evaluating podman-env
 
 #### validateStartWithProxy
-validateStartWithProxy makes sure minikube start respects the HTTP_PROXY environment variable
+makes sure minikube start respects the HTTP_PROXY environment variable
 
 #### validateAuditAfterStart
-validateAuditAfterStart makes sure the audit log contains the correct logging after minikube start
+makes sure the audit log contains the correct logging after minikube start
 
 #### validateSoftStart
-validateSoftStart validates that after minikube already started, a "minikube start" should not change the configs.
+validates that after minikube already started, a "minikube start" should not change the configs.
 
 #### validateKubeContext
-validateKubeContext asserts that kubectl is properly configured (race-condition prone!)
+asserts that kubectl is properly configured (race-condition prone!)
 
 #### validateKubectlGetPods
-validateKubectlGetPods asserts that `kubectl get pod -A` returns non-zero content
+asserts that `kubectl get pod -A` returns non-zero content
 
 #### validateMinikubeKubectl
-validateMinikubeKubectl validates that the `minikube kubectl` command returns content
+validates that the `minikube kubectl` command returns content
 
 #### validateMinikubeKubectlDirectCall
-validateMinikubeKubectlDirectCall validates that calling minikube's kubectl
+validates that calling minikube's kubectl
 
 #### validateExtraConfig
-validateExtraConfig verifies minikube with --extra-config works as expected
+verifies minikube with --extra-config works as expected
 
 #### validateComponentHealth
-validateComponentHealth asserts that all Kubernetes components are healthy
+asserts that all Kubernetes components are healthy
 NOTE: It expects all components to be Ready, so it makes sense to run it close after only those tests that include '--wait=all' start flag
 
 #### validateStatusCmd
-validateStatusCmd makes sure minikube status outputs correctly
+makes sure minikube status outputs correctly
 
 #### validateDashboardCmd
-validateDashboardCmd asserts that the dashboard command works
+asserts that the dashboard command works
 
 #### validateDryRun
-validateDryRun asserts that the dry-run mode quickly exits with the right code
+asserts that the dry-run mode quickly exits with the right code
 
 #### validateCacheCmd
-validateCacheCmd tests functionality of cache command (cache add, delete, list)
+tests functionality of cache command (cache add, delete, list)
 
 #### validateConfigCmd
-validateConfigCmd asserts basic "config" command functionality
+asserts basic "config" command functionality
 
 #### validateLogsCmd
-validateLogsCmd asserts basic "logs" command functionality
+asserts basic "logs" command functionality
 
 #### validateLogsFileCmd
-validateLogsFileCmd asserts "logs --file" command functionality
+asserts "logs --file" command functionality
 
 #### validateProfileCmd
-validateProfileCmd asserts "profile" command functionality
+asserts "profile" command functionality
 
 #### validateServiceCmd
-validateServiceCmd asserts basic "service" command functionality
+asserts basic "service" command functionality
 
 #### validateAddonsCmd
-validateAddonsCmd asserts basic "addon" command functionality
+asserts basic "addon" command functionality
 
 #### validateSSHCmd
-validateSSHCmd asserts basic "ssh" command functionality
+asserts basic "ssh" command functionality
 
 #### validateCpCmd
-validateCpCmd asserts basic "cp" command functionality
+asserts basic "cp" command functionality
 
 #### validateMySQL
-validateMySQL validates a minimalist MySQL deployment
+validates a minimalist MySQL deployment
 
 #### validateFileSync
-validateFileSync to check existence of the test file
+to check existence of the test file
 
 #### validateCertSync
-validateCertSync to check existence of the test certificate
+to check existence of the test certificate
 
 #### validateUpdateContextCmd
-validateUpdateContextCmd asserts basic "update-context" command functionality
+asserts basic "update-context" command functionality
 
 #### validateMountCmd
-validateMountCmd verifies the minikube mount command works properly
+verifies the minikube mount command works properly
 
 #### validatePersistentVolumeClaim
-validatePersistentVolumeClaim makes sure PVCs work properly
+makes sure PVCs work properly
 
 #### validateTunnelCmd
-validateTunnelCmd makes sure the minikube tunnel command works as expected
+makes sure the minikube tunnel command works as expected
 
 #### validateTunnelStart
-validateTunnelStart starts `minikube tunnel`
+starts `minikube tunnel`
 
 #### validateServiceStable
-validateServiceStable starts nginx pod, nginx service and waits nginx having loadbalancer ingress IP
+starts nginx pod, nginx service and waits nginx having loadbalancer ingress IP
 
 #### validateAccessDirect
-validateAccessDirect validates if the test service can be accessed with LoadBalancer IP from host
+validates if the test service can be accessed with LoadBalancer IP from host
 
 #### validateDNSDig
-validateDNSDig validates if the DNS forwarding works by dig command DNS lookup
+validates if the DNS forwarding works by dig command DNS lookup
 NOTE: DNS forwarding is experimental: https://minikube.sigs.k8s.io/docs/handbook/accessing/#dns-resolution-experimental
 
 #### validateDNSDscacheutil
-validateDNSDscacheutil validates if the DNS forwarding works by dscacheutil command DNS lookup
+validates if the DNS forwarding works by dscacheutil command DNS lookup
 NOTE: DNS forwarding is experimental: https://minikube.sigs.k8s.io/docs/handbook/accessing/#dns-resolution-experimental
 
 #### validateAccessDNS
-validateAccessDNS validates if the test service can be accessed with DNS forwarding from host
+validates if the test service can be accessed with DNS forwarding from host
 NOTE: DNS forwarding is experimental: https://minikube.sigs.k8s.io/docs/handbook/accessing/#dns-resolution-experimental
 
 #### validateTunnelDelete
-validateTunnelDelete stops `minikube tunnel`
+stops `minikube tunnel`
 
 ## TestGuestEnvironment
-TestGuestEnvironment verifies files and packges installed inside minikube ISO/Base image
+verifies files and packges installed inside minikube ISO/Base image
 
 ## TestGvisorAddon
-TestGvisorAddon tests the functionality of the gVisor addon
+tests the functionality of the gVisor addon
 
 ## TestJSONOutput
-TestJSONOutput makes sure json output works properly for the start, pause, unpause, and stop commands
+makes sure json output works properly for the start, pause, unpause, and stop commands
 
 #### validateDistinctCurrentSteps
  validateDistinctCurrentSteps makes sure each step has a distinct step number
 
 #### validateIncreasingCurrentSteps
-validateIncreasingCurrentSteps verifies that for a successful minikube start, 'current step' should be increasing
+verifies that for a successful minikube start, 'current step' should be increasing
 
 ## TestErrorJSONOutput
-TestErrorJSONOutput makes sure json output can print errors properly
+makes sure json output can print errors properly
 
 ## TestKicCustomNetwork
-TestKicCustomNetwork verifies the docker driver works with a custom network
+verifies the docker driver works with a custom network
 
 ## TestKicExistingNetwork
-TestKicExistingNetwork verifies the docker driver and run with an existing network
+verifies the docker driver and run with an existing network
 
 ## TestingKicBaseImage
-TestingKicBaseImage will return true if the integraiton test is running against a passed --base-image flag
+will return true if the integraiton test is running against a passed --base-image flag
 
 ## TestMultiNode
-TestMultiNode tests all multi node cluster functionality
+tests all multi node cluster functionality
 
 #### validateMultiNodeStart
-validateMultiNodeStart makes sure a 2 node cluster can start
+makes sure a 2 node cluster can start
 
 #### validateAddNodeToMultiNode
-validateAddNodeToMultiNode uses the minikube node add command to add a node to an existing cluster
+uses the minikube node add command to add a node to an existing cluster
 
 #### validateProfileListWithMultiNode
-validateProfileListWithMultiNode make sure minikube profile list outputs correct with multinode clusters
+make sure minikube profile list outputs correct with multinode clusters
 
 #### validateStopRunningNode
-validateStopRunningNode tests the minikube node stop command
+tests the minikube node stop command
 
 #### validateStartNodeAfterStop
-validateStartNodeAfterStop tests the minikube node start command on an existing stopped node
+tests the minikube node start command on an existing stopped node
 
 #### validateStopMultiNodeCluster
-validateStopMultiNodeCluster runs minikube stop on a multinode cluster
+runs minikube stop on a multinode cluster
 
 #### validateRestartMultiNodeCluster
-validateRestartMultiNodeCluster verifies a soft restart on a multinode cluster works
+verifies a soft restart on a multinode cluster works
 
 #### validateDeleteNodeFromMultiNode
-validateDeleteNodeFromMultiNode tests the minikube node delete command
+tests the minikube node delete command
 
 #### validateNameConflict
-validateNameConflict tests that the node name verification works as expected
+tests that the node name verification works as expected
 
 #### validateDeployAppToMultiNode
-validateDeployAppToMultiNode deploys an app to a multinode cluster and makes sure all nodes can serve traffic
+deploys an app to a multinode cluster and makes sure all nodes can serve traffic
 
 ## TestNetworkPlugins
-TestNetworkPlugins tests all supported CNI options
+tests all supported CNI options
 Options tested: kubenet, bridge, flannel, kindnet, calico, cilium
 Flags tested: enable-default-cni (legacy), false (CNI off), auto-detection
 
 ## TestChangeNoneUser
-TestChangeNoneUser tests to make sure the CHANGE_MINIKUBE_NONE_USER environemt variable is respected
+tests to make sure the CHANGE_MINIKUBE_NONE_USER environemt variable is respected
 and changes the minikube file permissions from root to the correct user.
 
 ## TestPause
-TestPause tests minikube pause functionality
+tests minikube pause functionality
 
 #### validateFreshStart
-validateFreshStart just starts a new minikube cluster
+just starts a new minikube cluster
 
 #### validateStartNoReconfigure
-validateStartNoReconfigure validates that starting a running cluster does not invoke reconfiguration
+validates that starting a running cluster does not invoke reconfiguration
 
 #### validatePause
-validatePause runs minikube pause
+runs minikube pause
 
 #### validateUnpause
-validateUnpause runs minikube unpause
+runs minikube unpause
 
 #### validateDelete
-validateDelete deletes the unpaused cluster
+deletes the unpaused cluster
 
 #### validateVerifyDeleted
-validateVerifyDeleted makes sure no left over left after deleting a profile such as containers or volumes
+makes sure no left over left after deleting a profile such as containers or volumes
 
 #### validateStatus
-validateStatus makes sure paused clusters show up in minikube status correctly
+makes sure paused clusters show up in minikube status correctly
 
 ## TestDebPackageInstall
 TestPackageInstall tests installation of .deb packages with minikube itself and with kvm2 driver
 on various debian/ubuntu docker images
 
 ## TestPreload
-TestPreload verifies the preload tarballs get pulled in properly by minikube
+verifies the preload tarballs get pulled in properly by minikube
 
 ## TestScheduledStopWindows
-TestScheduledStopWindows tests the schedule stop functionality on Windows
+tests the schedule stop functionality on Windows
 
 ## TestScheduledStopUnix
 TestScheduledStopWindows tests the schedule stop functionality on Unix
 
 ## TestSkaffold
-TestSkaffold makes sure skaffold run can be run with minikube
+makes sure skaffold run can be run with minikube
 
 ## TestStartStop
-TestStartStop tests starting, stopping and restarting a minikube clusters with various Kubernetes versions and configurations
+tests starting, stopping and restarting a minikube clusters with various Kubernetes versions and configurations
 The oldest supported, newest supported and default Kubernetes versions are always tested.
 
 #### validateFirstStart
-validateFirstStart runs the initial minikube start
+runs the initial minikube start
 
 #### validateDeploying
-validateDeploying deploys an app the minikube cluster
+deploys an app the minikube cluster
 
 #### validateStop
-validateStop tests minikube stop
+tests minikube stop
 
 #### validateEnableAddonAfterStop
-validateEnableAddonAfterStop makes sure addons can be enabled on a stopped cluster
+makes sure addons can be enabled on a stopped cluster
 
 #### validateSecondStart
-validateSecondStart verifies that starting a stopped cluster works
+verifies that starting a stopped cluster works
 
 #### validateAppExistsAfterStop
-validateAppExistsAfterStop verifies that a user's app will not vanish after a minikube stop
+verifies that a user's app will not vanish after a minikube stop
 
 #### validateAddonAfterStop
-validateAddonAfterStop validates that an addon which was enabled when minikube is stopped will be enabled and working..
+validates that an addon which was enabled when minikube is stopped will be enabled and working..
 
 #### validateKubernetesImages
-validateKubernetesImages verifies that a restarted cluster contains all the necessary images
+verifies that a restarted cluster contains all the necessary images
 
 #### validatePauseAfterStart
-validatePauseAfterStart verifies that minikube pause works
+verifies that minikube pause works
 
 ## TestInsufficientStorage
-TestInsufficientStorage makes sure minikube status displays the correct info if there is insufficient disk space on the machine
+makes sure minikube status displays the correct info if there is insufficient disk space on the machine
 
 ## TestRunningBinaryUpgrade
-TestRunningBinaryUpgrade upgrades a running legacy cluster to minikube at HEAD
+upgrades a running legacy cluster to minikube at HEAD
 
 ## TestStoppedBinaryUpgrade
-TestStoppedBinaryUpgrade starts a legacy minikube, stops it, and then upgrades to minikube at HEAD
+starts a legacy minikube, stops it, and then upgrades to minikube at HEAD
 
 ## TestKubernetesUpgrade
-TestKubernetesUpgrade upgrades Kubernetes from oldest to newest
+upgrades Kubernetes from oldest to newest
 
 ## TestMissingContainerUpgrade
-TestMissingContainerUpgrade tests a Docker upgrade where the underlying container is missing
+tests a Docker upgrade where the underlying container is missing
 
-TEST COUNT: 114
+TEST COUNT: 114
\ No newline at end of file