diff options
| -rw-r--r-- | .github/workflows/build.yaml | 6 | ||||
| -rw-r--r-- | indra/llcommon/tests/llleap_test.cpp | 11 | ||||
| -rw-r--r-- | indra/llcommon/tests/llprocess_test.cpp | 13 | 
3 files changed, 23 insertions, 7 deletions
| diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 47b1f421e5..c0bc5f30e1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -177,11 +177,7 @@ jobs:            # as neither CMake's FindPython nor our custom Python.cmake module            # will resolve the correct interpreter location.            if [[ "$RUNNER_OS" == "Windows" ]]; then -            ##export PYTHON="$(native_path "$(which python)")" -            ## Weirdly, on GitHub's Windows runners, the integration test that -            ## runs just 'python' succeeds while the integration tests that -            ## run the full path to the .exe fail with "Access is denied." -            export PYTHON=python +            export PYTHON="$(native_path "$(which python)")"              echo "Python location: $PYTHON"              export PYTHON_COMMAND="$PYTHON"            else diff --git a/indra/llcommon/tests/llleap_test.cpp b/indra/llcommon/tests/llleap_test.cpp index e9edd165df..01515ecebf 100644 --- a/indra/llcommon/tests/llleap_test.cpp +++ b/indra/llcommon/tests/llleap_test.cpp @@ -193,11 +193,20 @@ namespace tut                                reader.getName().substr(0, reader.getName().length()-3))),              PYTHON(LLStringUtil::getenv("PYTHON"))          { +#if LL_WINDOWS +            // Weirdly, on GitHub Windows runners, plain 'python' works much +            // better than a full pathname. +            const char* RUNNER_TEMP = getenv("RUNNER_TEMP"); +            if (RUNNER_TEMP && *RUNNER_TEMP) +            { +                PYTHON = "python"; +            } +#endif              ensure("Set PYTHON to interpreter pathname", !PYTHON.empty());          }          NamedExtTempFile reader;          const std::string reader_module; -        const std::string PYTHON; +        std::string PYTHON;      };      typedef test_group<llleap_data> llleap_group;      typedef llleap_group::object object; diff --git a/indra/llcommon/tests/llprocess_test.cpp b/indra/llcommon/tests/llprocess_test.cpp index a01ec84547..3ba3a8aab3 100644 --- a/indra/llcommon/tests/llprocess_test.cpp +++ b/indra/llcommon/tests/llprocess_test.cpp @@ -141,6 +141,15 @@ struct PythonProcessLauncher          mScript("py", script)      {          auto PYTHON(LLStringUtil::getenv("PYTHON")); +#if LL_WINDOWS +        // Weirdly, on GitHub Windows runners, plain 'python' works much better +        // than a full pathname. +        const char* RUNNER_TEMP = getenv("RUNNER_TEMP"); +        if (RUNNER_TEMP && *RUNNER_TEMP) +        { +            PYTHON = "python"; +        } +#endif          tut::ensure("Set $PYTHON to the Python interpreter", !PYTHON.empty());          mParams.desc = desc + " script"; @@ -1013,7 +1022,9 @@ namespace tut          set_test_name("get*Pipe() validation");          PythonProcessLauncher py(get_test_name(),              "from __future__ import print_function\n" -            "print('this output is expected')\n"); +            "import sys\n" +            "print('this output is expected')\n" +            "print('run by', sys.executable)\n");          py.mParams.files.add(LLProcess::FileParam("pipe")); // pipe for  stdin          py.mParams.files.add(LLProcess::FileParam());       // inherit stdout          py.mParams.files.add(LLProcess::FileParam("pipe")); // pipe for stderr | 
