mirror of https://github.com/fatedier/frp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
package framework |
|
|
|
import ( |
|
"flag" |
|
"fmt" |
|
"os" |
|
) |
|
|
|
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) { |
|
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 |
|
}
|
|
|