func RegisterCommonFlags(flags *flag.FlagSet) {
	config.GinkgoConfig.EmitSpecProgress = true
	config.GinkgoConfig.RandomizeAllSpecs = true
	flags.StringVar(&TestContext.FRPClientPath, "frpc-path", "../../bin/frpc", "The frp client binary to use.")
	flags.StringVar(&TestContext.FRPServerPath, "frps-path", "../../bin/frps", "The frp server binary to use.")
	flags.StringVar(&TestContext.LogLevel, "log-level", "debug", "Log level.")
	flags.BoolVar(&TestContext.Debug, "debug", false, "Enable debug mode to print detail info.")
}
RegisterCommonFlags registers flags common to all e2e test suites.
The flag set can be flag.CommandLine (if desired) or a custom
flag set that then gets passed to viperconfig.ViperizeFlags.

The other Register*Flags methods below can be used to add more
test-specific flags. However, those settings then get added
regardless whether the test is actually in the test suite.
package framework
import (
	"flag"
	"fmt"
	"os"
	"github.com/onsi/ginkgo/config"
)
type TestContextType struct {
	FRPClientPath string
	FRPServerPath string
	LogLevel      string
	Debug         bool
}
var TestContext TestContextType