12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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
- // 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.
- //
- func RegisterCommonFlags(flags *flag.FlagSet) {
- // Turn on EmitSpecProgress to get spec progress (especially on interrupt)
- config.GinkgoConfig.EmitSpecProgress = true
- // Randomize specs as well as suites
- 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.")
- }
- func ValidateTestContext(t *TestContextType) error {
- if t.FRPClientPath == "" || t.FRPServerPath == "" {
- return fmt.Errorf("frpc and frps binary path can't be empty")
- }
- if _, err := os.Stat(t.FRPClientPath); err != nil {
- return fmt.Errorf("load frpc-path error: %v", err)
- }
- if _, err := os.Stat(t.FRPServerPath); err != nil {
- return fmt.Errorf("load frps-path error: %v", err)
- }
- return nil
- }
|