Ctrl K
ComunidadGuías…

patches/vitess-backup-flags-test.go.txt

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package controllermanager

import (
	"os"
	"os/exec"
	"strings"
	"testing"

	"github.com/spf13/pflag"
)

func TestHakopodBackupSubcontrollerFlags(t *testing.T) {
	mode := os.Getenv("HAKOPOD_OPERATOR_FLAG_TEST")
	if mode == "" {
		binary, err := os.Executable()
		if err != nil {
			t.Fatal(err)
		}
		for _, alias := range []string{"hyphens", "underscores"} {
			command := exec.Command(binary, "-test.run=^TestHakopodBackupSubcontrollerFlags$")
			command.Env = append(os.Environ(), "HAKOPOD_OPERATOR_FLAG_TEST="+alias)
			if output, err := command.CombinedOutput(); err != nil {
				t.Fatalf("%s backup subcontroller flags failed: %v\n%s", alias, err, output)
			}
		}
		return
	}
	arguments := []string{
		"backup-storage-implementation=s3", "s3-backup-aws-region=us-east-1",
		"s3-backup-storage-bucket=fixture", "s3-backup-storage-root=fixture-prefix",
		"s3-backup-force-path-style=true", "s3-backup-aws-endpoint=https://storage.example.test",
		"s3-backup-aws-min-partsize=8388608",
	}
	os.Args = []string{"vitess-operator"}
	for _, argument := range arguments {
		name, value, _ := strings.Cut(argument, "=")
		if mode == "underscores" {
			name = strings.ReplaceAll(name, "-", "_")
		}
		os.Args = append(os.Args, "--"+name+"="+value)
	}
	InitFlags()
	for _, name := range []string{"s3-backup-aws-min-partsize", "s3_backup_aws_min_partsize"} {
		flag := pflag.CommandLine.Lookup(name)
		if flag == nil || flag.Value.String() != "8388608" {
			t.Fatal("operator lost the generated multipart size flag")
		}
	}
}