From c6642ac7edae16337da5e76255f3b542222fd1e0 Mon Sep 17 00:00:00 2001
From: Mick Jordan <mick.jordan@oracle.com>
Date: Mon, 27 Mar 2017 16:50:06 -0700
Subject: [PATCH] =?UTF-8?q?pkgtest:=20ensure=20path=20to=20=E2=80=98R?=
 =?UTF-8?q?=E2=80=99=20is=20on=20PATH?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 mx.fastr/mx_fastr_pkgs.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/mx.fastr/mx_fastr_pkgs.py b/mx.fastr/mx_fastr_pkgs.py
index f45348f89c..9a489fd72b 100644
--- a/mx.fastr/mx_fastr_pkgs.py
+++ b/mx.fastr/mx_fastr_pkgs.py
@@ -106,6 +106,13 @@ def _packages_test_project():
 def _packages_test_project_dir():
     return mx.project(_packages_test_project()).dir
 
+def _ensure_R_on_PATH(env, bindir):
+    '''
+    Some packages (e.g. stringi) require that 'R' is actually on the PATH
+    '''
+    env['PATH'] = join(bindir) + os.pathsep + os.environ['PATH']
+
+
 def installpkgs(args):
     _installpkgs(args)
 
@@ -120,10 +127,18 @@ def _installpkgs(args, **kwargs):
     by the FASTR_GRAALVM environment variable, we can't use mx to invoke
     FastR, but instead have to invoke the command directly.
     '''
+    if kwargs.has_key('env'):
+        env = kwargs['env']
+    else:
+        env = os.environ.copy()
+        kwargs['env'] = env
+
     script = _installpkgs_script()
     if _graalvm() is None:
+        _ensure_R_on_PATH(env, join(_fastr_suite_dir(), 'bin'))
         return mx_fastr.rscript([script] + args, **kwargs)
     else:
+        _ensure_R_on_PATH(env, os.path.dirname(_graalvm_rscript()))
         return mx.run([_graalvm_rscript(), script] + args, **kwargs)
 
 
@@ -352,8 +367,10 @@ def _gnur_install_test(forwarded_args, pkgs, gnur_libinstall, gnur_install_tmp):
     args += ['--testdir', 'test.gnur']
     _log_step('BEGIN', 'install/test', 'GnuR')
     if _graalvm():
+        _ensure_R_on_PATH(env, os.path.dirname(_gnur_rscript()))
         mx.run(args, nonZeroIsFatal=False, env=env)
     else:
+        _ensure_R_on_PATH(env, mx_fastr._gnur_path())
         mx_fastr.gnu_rscript(args, env=env)
     _log_step('END', 'install/test', 'GnuR')
 
-- 
GitLab