From 5967bcc4ce4becac301a4264c526d608183b55a7 Mon Sep 17 00:00:00 2001
From: Mick Jordan <mick.jordan@oracle.com>
Date: Fri, 10 Apr 2015 17:41:36 -0700
Subject: [PATCH] fix up bad relative paths in ExpectedTestOutput; add check
 for cwd in rtestgen

---
 .../truffle/r/test/ExpectedTestOutput.test    | 40 +++++++++----------
 mx.fastr/mx_fastr.py                          |  3 ++
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
index e652c6e32f..f4cc1fbec5 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
@@ -24,32 +24,32 @@ Error in tryCatchList(expr, classes, parentenv, handlers) : fred
 [1] "Hello"
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadBin
-#{ readBin(file("../com.oracle.truffle.r.test/library.base.conn/wb1", "rb"), 3) }
+#{ readBin(file("com.oracle.truffle.r.test/library.base.conn/wb1", "rb"), 3) }
 numeric(0)
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadBin
-#{ writeBin("abc", file("../com.oracle.truffle.r.test/library.base.conn/wb1", open="wb")) }
+#{ writeBin("abc", file("com.oracle.truffle.r.test/library.base.conn/wb1", open="wb")) }
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadChar
-#{ readChar(file("../com.oracle.truffle.r.test/library.base.conn/wc1"), 3) }
+#{ readChar(file("com.oracle.truffle.r.test/library.base.conn/wc1"), 3) }
 [1] "abc"
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadChar
-#{ writeChar("abc", file("../com.oracle.truffle.r.test/library.base.conn/wc1")) }
+#{ writeChar("abc", file("com.oracle.truffle.r.test/library.base.conn/wc1")) }
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadLines
-#{ con <- file("../com.oracle.truffle.r.test/library.base.conn/wl2"); readLines(con, 2) }
+#{ con <- file("com.oracle.truffle.r.test/library.base.conn/wl2"); readLines(con, 2) }
 [1] "line1" "line2"
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadLines
-#{ con <- file("../com.oracle.truffle.r.test/library.base.conn/wl2"); writeLines(c("line1", "line2"), con) }
+#{ con <- file("com.oracle.truffle.r.test/library.base.conn/wl2"); writeLines(c("line1", "line2"), con) }
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadLines
-#{ readLines(file("../com.oracle.truffle.r.test/library.base.conn/wl1"), 2) }
+#{ readLines(file("com.oracle.truffle.r.test/library.base.conn/wl1"), 2) }
 [1] "line1" "line2"
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testFileWriteReadLines
-#{ writeLines(c("line1", "line2"), file("../com.oracle.truffle.r.test/library.base.conn/wl1")) }
+#{ writeLines(c("line1", "line2"), file("com.oracle.truffle.r.test/library.base.conn/wl1")) }
 
 ##com.oracle.truffle.r.test.library.base.TestConnections.testPushBackTextConnection
 #{ con<-textConnection(c("a","b","c","d")); pushBack("G", con); clearPushBack(con); pushBackLength(con) }
@@ -65802,35 +65802,35 @@ attr(,"foo")
 [2,]    2    4
 
 ##com.oracle.truffle.r.test.rffi.TestUserRNG.testUserRNG
-#{ dyn.load("../com.oracle.truffle.r.test.native/urand/lib/liburand.so"); RNGkind("user"); print(RNGkind()); set.seed(4567); runif(10) }
+#{ dyn.load("com.oracle.truffle.r.test.native/urand/lib/liburand.so"); RNGkind("user"); print(RNGkind()); set.seed(4567); runif(10) }
 [1] "user-supplied" "Inversion"
  [1] 0.45336386 0.38848030 0.94576608 0.11726267 0.21542351 0.08672997
  [7] 0.35201276 0.16919220 0.93579263 0.26084486
 
 ##com.oracle.truffle.r.test.rpackages.TestRPackages.testLoadTestRFFI
-#{ library("testrffi", lib.loc = "../com.oracle.truffle.r.test/rpackages/testrlibs_user"); r1 <- add_int(2L, 3L); r2 <- add_double(2, 3); v <- createIntVector(2); v[1] <- 1; v[2] <- 2; detach("package:testrffi"); list(r1, r2, v) }
-Error in library("testrffi", lib.loc = "../com.oracle.truffle.r.test/rpackages/testrlibs_user") :
+#{ library("testrffi", lib.loc = "com.oracle.truffle.r.test/rpackages/testrlibs_user"); r1 <- add_int(2L, 3L); r2 <- add_double(2, 3); v <- createIntVector(2); v[1] <- 1; v[2] <- 2; detach("package:testrffi"); list(r1, r2, v) }
+Error in library("testrffi", lib.loc = "com.oracle.truffle.r.test/rpackages/testrlibs_user") :
   there is no package called 'testrffi'
 
 ##com.oracle.truffle.r.test.rpackages.TestRPackages.testLoadVanilla
-#{ library("vanilla", lib.loc = "../com.oracle.truffle.r.test/rpackages/testrlibs_user"); r <- vanilla(); detach("package:vanilla"); r }
-Error in library("vanilla", lib.loc = "../com.oracle.truffle.r.test/rpackages/testrlibs_user") :
+#{ library("vanilla", lib.loc = "com.oracle.truffle.r.test/rpackages/testrlibs_user"); r <- vanilla(); detach("package:vanilla"); r }
+Error in library("vanilla", lib.loc = "com.oracle.truffle.r.test/rpackages/testrlibs_user") :
   there is no package called 'vanilla'
 
 ##com.oracle.truffle.r.test.ser.TestUnserializeFromGnuR.readChar
-#{ zz <- file("../com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/testchar.bin", "rb"); nc<-c(1, 8, 3); readChar(zz, nc) }
+#{ zz <- file("com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/testchar.bin", "rb"); nc<-c(1, 8, 3); readChar(zz, nc) }
 [1] "a"   ""    "ill"
 
 ##com.oracle.truffle.r.test.ser.TestUnserializeFromGnuR.readChar
-#{ zz <- file("../com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/testchar.bin", "rb"); nc<-c(3, 10, 3); readChar(zz, nc) }
+#{ zz <- file("com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/testchar.bin", "rb"); nc<-c(3, 10, 3); readChar(zz, nc) }
 [1] "a"          "this will " "abc"
 
 ##com.oracle.truffle.r.test.ser.TestUnserializeFromGnuR.readChar
-#{ zz <- file("../com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/testchar.bin", "rb"); nc<-c(4, 9, 3); readChar(zz, nc) }
+#{ zz <- file("com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/testchar.bin", "rb"); nc<-c(4, 9, 3); readChar(zz, nc) }
 [1] "a"         "his will " "abc"
 
 ##com.oracle.truffle.r.test.ser.TestUnserializeFromGnuR.testVectors
-#{ print(.Internal(unserializeFromConn(gzfile("../com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/list2.rds"), NULL))) }
+#{ print(.Internal(unserializeFromConn(gzfile("com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/list2.rds"), NULL))) }
 $one
 [1] "1"
 
@@ -65839,15 +65839,15 @@ $two
 
 
 ##com.oracle.truffle.r.test.ser.TestUnserializeFromGnuR.testVectors
-#{ print(.Internal(unserializeFromConn(gzfile("../com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/vector1.rds"), NULL))) }
+#{ print(.Internal(unserializeFromConn(gzfile("com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/vector1.rds"), NULL))) }
 [1] "1" "2" "3"
 
 ##com.oracle.truffle.r.test.ser.TestUnserializeFromGnuR.testVectors
-#{ x <- .Internal(unserializeFromConn(gzfile("../com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/dataframe1.rds"), NULL)); is.data.frame(x) }
+#{ x <- .Internal(unserializeFromConn(gzfile("com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/dataframe1.rds"), NULL)); is.data.frame(x) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.ser.TestUnserializeFromGnuR.testVectors
-#{ x <- .Internal(unserializeFromConn(gzfile("../com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/factor1.rds"), NULL)); is.factor(x) }
+#{ x <- .Internal(unserializeFromConn(gzfile("com.oracle.truffle.r.test/bin/com/oracle/truffle/r/test/ser/data/factor1.rds"), NULL)); is.factor(x) }
 [1] TRUE
 
 ##com.oracle.truffle.r.test.testrgen.TestrGenBuiltinArg.testArg1
diff --git a/mx.fastr/mx_fastr.py b/mx.fastr/mx_fastr.py
index d12646b4d1..df3dfc7a97 100644
--- a/mx.fastr/mx_fastr.py
+++ b/mx.fastr/mx_fastr.py
@@ -268,6 +268,9 @@ def testgen(args):
     parser = ArgumentParser(prog='r testgen')
     parser.add_argument('--tests', action='store', default=_all_unit_tests(), help='pattern to match test classes')
     args = parser.parse_args(args)
+    # check we are in the home directory
+    if os.getcwd() != _fastr_suite.dir:
+        mx.abort('must run rtestgen from FastR home directory')
     # check the version of GnuR against FastR
     try:
         fastr_version = subprocess.check_output([mx.java().java, '-cp', mx.classpath('com.oracle.truffle.r.runtime'), 'com.oracle.truffle.r.runtime.RVersionNumber'])
-- 
GitLab