From 5d1c1d03f8703c2e81478d9a30e9afa2d3e4bd8a Mon Sep 17 00:00:00 2001 From: Justin Bishop Date: Mon, 12 Oct 2020 17:46:28 -0700 Subject: [PATCH] [aetest] Allow specifying path to dev_appserver binary (#226) If the environment variable `APPENGINE_DEV_APPSERVER_BINARY` is set, use it as the path to a dev_appserver binary, rather than the default of `python /path/to/dev_appserver.py` --- aetest/instance_vm.go | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/aetest/instance_vm.go b/aetest/instance_vm.go index c8f8ff4e..89ff8b16 100644 --- a/aetest/instance_vm.go +++ b/aetest/instance_vm.go @@ -156,13 +156,18 @@ func (i *instance) startChild() (err error) { return err } } - python, err := findPython() - if err != nil { - return fmt.Errorf("Could not find python interpreter: %v", err) - } - devAppserver, err := findDevAppserver() - if err != nil { - return fmt.Errorf("Could not find dev_appserver.py: %v", err) + executable := os.Getenv("APPENGINE_DEV_APPSERVER_BINARY") + var appserverArgs []string + if len(executable) == 0 { + executable, err = findPython() + if err != nil { + return fmt.Errorf("Could not find python interpreter: %v", err) + } + devAppserver, err := findDevAppserver() + if err != nil { + return fmt.Errorf("Could not find dev_appserver.py: %v", err) + } + appserverArgs = append(appserverArgs, devAppserver) } i.appDir, err = ioutil.TempDir("", "appengine-aetest") @@ -187,8 +192,7 @@ func (i *instance) startChild() (err error) { return err } - appserverArgs := []string{ - devAppserver, + appserverArgs = append(appserverArgs, "--port=0", "--api_port=0", "--admin_port=0", @@ -197,7 +201,7 @@ func (i *instance) startChild() (err error) { "--clear_datastore=true", "--clear_search_indexes=true", "--datastore_path", filepath.Join(i.appDir, "datastore"), - } + ) if i.opts != nil && i.opts.StronglyConsistentDatastore { appserverArgs = append(appserverArgs, "--datastore_consistency_policy=consistent") } @@ -206,9 +210,8 @@ func (i *instance) startChild() (err error) { } appserverArgs = append(appserverArgs, filepath.Join(i.appDir, "app")) - i.child = exec.Command(python, - appserverArgs..., - ) + i.child = exec.Command(executable, appserverArgs...) + i.child.Stdout = os.Stdout var stderr io.Reader stderr, err = i.child.StderrPipe()