From edcc60b931232d5bea4254af31965da126f07a68 Mon Sep 17 00:00:00 2001 From: Brett Landau Date: Wed, 31 Jul 2019 11:34:34 -0700 Subject: Refactor proctor binaries to implement testRunner interface. Shared code among proctor-*.go files has been refactored into common/common.go. The common package is imported in each proctor binary and a struct is created to implement the testRunner interface defined in common.go. This allows for the proctor binaries to be updated without having to copy/paste the same code across all files. There are no usage or functionality changes. PiperOrigin-RevId: 260967080 --- test/runtimes/python/proctor-python.go | 53 +++++++--------------------------- 1 file changed, 11 insertions(+), 42 deletions(-) (limited to 'test/runtimes/python/proctor-python.go') diff --git a/test/runtimes/python/proctor-python.go b/test/runtimes/python/proctor-python.go index 73c8deb49..3f83f3d70 100644 --- a/test/runtimes/python/proctor-python.go +++ b/test/runtimes/python/proctor-python.go @@ -16,53 +16,31 @@ package main import ( - "flag" "fmt" "log" "os" "os/exec" "path/filepath" "regexp" + + "gvisor.dev/gvisor/test/runtimes/common" ) var ( - list = flag.Bool("list", false, "list all available tests") - test = flag.String("test", "", "run a single test from the list of available tests") - version = flag.Bool("v", false, "print out the version of node that is installed") - dir = os.Getenv("LANG_DIR") testRegEx = regexp.MustCompile(`^test_.+\.py$`) ) -func main() { - flag.Parse() +type pythonRunner struct { +} - if *list && *test != "" { - flag.PrintDefaults() - os.Exit(1) - } - if *list { - tests, err := listTests() - if err != nil { - log.Fatalf("Failed to list tests: %v", err) - } - for _, test := range tests { - fmt.Println(test) - } - return - } - if *version { - fmt.Println("Python version: ", os.Getenv("LANG_VER"), " is installed.") - return - } - if *test != "" { - runTest(*test) - return +func main() { + if err := common.LaunchFunc(pythonRunner{}); err != nil { + log.Fatalf("Failed to start: %v", err) } - runAllTests() } -func listTests() ([]string, error) { +func (p pythonRunner) ListTests() ([]string, error) { var testSlice []string root := filepath.Join(dir, "Lib/test") @@ -88,21 +66,12 @@ func listTests() ([]string, error) { return testSlice, nil } -func runTest(test string) { +func (p pythonRunner) RunTest(test string) error { args := []string{"-m", "test", test} cmd := exec.Command(filepath.Join(dir, "python"), args...) cmd.Stdout, cmd.Stderr = os.Stdout, os.Stderr if err := cmd.Run(); err != nil { - log.Fatalf("Failed to run: %v", err) - } -} - -func runAllTests() { - tests, err := listTests() - if err != nil { - log.Fatalf("Failed to list tests: %v", err) - } - for _, test := range tests { - runTest(test) + return fmt.Errorf("failed to run: %v", err) } + return nil } -- cgit v1.2.3