Changeset: 01aef0406052 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/01aef0406052
Added Files:
        sql/backends/monet5/Tests/rapi09a.test
Modified Files:
        sql/backends/monet5/Tests/All
        sql/backends/monet5/Tests/rapi09.test
        testing/Mtest.py.in
Branch: Jan2022
Log Message:

Split off test that only works with older R versions.


diffs (78 lines):

diff --git a/sql/backends/monet5/Tests/All b/sql/backends/monet5/Tests/All
--- a/sql/backends/monet5/Tests/All
+++ b/sql/backends/monet5/Tests/All
@@ -9,6 +9,7 @@ HAVE_LIBR&NOT_WIN32?rapi06
 HAVE_LIBR&NOT_WIN32?rapi07
 #HAVE_LIBR&NOT_WIN32?rapi08
 HAVE_LIBR&NOT_WIN32?rapi09
+HAVE_LIBR&NOT_WIN32&R_VERSION<4.2.0?rapi09a
 HAVE_LIBR&NOT_WIN32?rapi10
 HAVE_LIBR&NOT_WIN32?rapi12
 HAVE_LIBR&NOT_WIN32?rapi13
diff --git a/sql/backends/monet5/Tests/rapi09.test 
b/sql/backends/monet5/Tests/rapi09.test
--- a/sql/backends/monet5/Tests/rapi09.test
+++ b/sql/backends/monet5/Tests/rapi09.test
@@ -63,18 +63,6 @@ SELECT * FROM suicide2()
 statement ok
 ROLLBACK
 
-statement ok
-START TRANSACTION
-
-statement ok
-CREATE FUNCTION suicide3() RETURNS TABLE (i integer) LANGUAGE R 
{.Internal(quit("no", 0,F))}
-
-statement error
-SELECT * FROM suicide3()
-
-statement ok
-ROLLBACK
-
 query I rowsort
 SELECT 1
 ----
diff --git a/sql/backends/monet5/Tests/rapi09a.test 
b/sql/backends/monet5/Tests/rapi09a.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/Tests/rapi09a.test
@@ -0,0 +1,17 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE FUNCTION suicide3() RETURNS TABLE (i integer) LANGUAGE R 
{.Internal(quit("no", 0,F))}
+
+statement error
+SELECT * FROM suicide3()
+
+statement ok
+ROLLBACK
+
+query I rowsort
+SELECT 1
+----
+1
+
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -2027,6 +2027,19 @@ def RunTest(env, TST, COND, oktests, len
                             break
                 if reason is not None:
                     break
+            elif cond.startswith('R_VERSION<'):
+                rversion = os.path.join('@LIBR_INCLUDE_DIRS@', 'Rversion.h')
+                if os.path.exists(rversion):
+                    with openutf8(rversion, 'r') as f:
+                        res = re.search('#define R_VERSION (?P<rversion>\d+)', 
f.read())
+                        if res is not None:
+                            r_version = res.group('rversion')
+                            req_version = cond[10:].split('.')
+                            req_version = int(req_version[0]) * 65536 + 
int(req_version[1]) * 256 + int(req_version[2])
+                            if int(r_version) >= req_version:
+                                reason = "R version too high"
+                                elem = SkipTest(env, TST, EXT, reason, length)
+                                break
             elif cond not in CONDITIONALS:
                 reason = "as conditional '%s' is unknown." % cond
                 elem = SkipTest(env, TST, EXT, reason, length)
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to