Changeset: 92c6ca8d478e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=92c6ca8d478e
Removed Files:
        sql/test/mergetables/Tests/mergequery.stable.out.single
Modified Files:
        sql/test/BugTracker-2015/Tests/All
        sql/test/mergetables/Tests/All
        testing/Mtest.py.in
Branch: Jul2015
Log Message:

Introduce new Mtest.py conditionals THREADS=N THREADS<=N THREADS>=N.
Where N is an integer.
Some explain output depends on the number of threads, so now we can
skip tests where the number of threads is wrong for the output that we
have saved.


diffs (truncated from 332 to 300 lines):

diff --git a/sql/test/BugTracker-2015/Tests/All 
b/sql/test/BugTracker-2015/Tests/All
--- a/sql/test/BugTracker-2015/Tests/All
+++ b/sql/test/BugTracker-2015/Tests/All
@@ -50,7 +50,7 @@ cast_on_groupby_col_crash.Bug-3769
 apply_merge_distinct.Bug-3760
 cardinality.Bug-3761
 set_default_role.Bug-3364
-useless_casts.Bug-3756
+THREADS>=3?useless_casts.Bug-3756
 sum_interval.Bug-3785
 nil_cast.Bug-3787
 sql2pcre.Bug-3800
diff --git a/sql/test/mergetables/Tests/All b/sql/test/mergetables/Tests/All
--- a/sql/test/mergetables/Tests/All
+++ b/sql/test/mergetables/Tests/All
@@ -1,7 +1,7 @@
 mergeinit
 mergeload
 mergeloadidx
-mergequery
+THREADS>=4?mergequery
 emptymergequery
 alter
 types
diff --git a/sql/test/mergetables/Tests/mergequery.stable.out.single 
b/sql/test/mergetables/Tests/mergequery.stable.out.single
deleted file mode 100644
--- a/sql/test/mergetables/Tests/mergequery.stable.out.single
+++ /dev/null
@@ -1,225 +0,0 @@
-stdout of test 'mergequery` in directory 'sql/test/mergetables` itself:
-
-
-# 16:20:23 >  
-# 16:20:23 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=30678" "--set" 
"mapi_usock=/var/tmp/mtest-11019/.s.monetdb.30678" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/export/scratch1/mk/current//Linux/var/MonetDB/mTests_sql_test_mergetables"
 "--set" "mal_listing=0" "--set" "embedded_r=yes"
-# 16:20:23 >  
-
-# MonetDB 5 server v11.20.0
-# This is an unreleased version
-# Serving database 'mTests_sql_test_mergetables', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit 
integers dynamically linked
-# Found 15.590 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://vienna.ins.cwi.nl:30678/
-# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-11019/.s.monetdb.30678
-# MonetDB/GIS module loaded
-# MonetDB/SQL module loaded
-# MonetDB/R   module loaded
-
-Ready.
-
-# 16:20:23 >  
-# 16:20:23 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-11019" "--port=30678"
-# 16:20:23 >  
-
-#CREATE TABLE part1 ( x double, y double, z double);
-#COPY 4 RECORDS INTO part1 FROM stdin USING DELIMITERS ' ','\n';
-#0.0 0.0 0.0
-#1.0 0.0 0.0 
-#0.0 1.0 0.0 
-#1.0 1.0 0.0 
-[ 4    ]
-#CREATE TABLE part2 ( x double, y double, z double);
-#COPY 4 RECORDS INTO part2 FROM stdin USING DELIMITERS ' ','\n';
-#2.0 0.0 0.0
-#3.0 0.0 0.0 
-#2.0 1.0 0.0 
-#3.0 1.0 0.0 
-[ 4    ]
-#CREATE MERGE TABLE complete ( x double, y double, z double);
-#ALTER TABLE complete ADD TABLE part1;
-#ALTER TABLE complete ADD TABLE part2;
-#SELECT * FROM COMPLETE;
-% .complete,   .complete,      .complete # table_name
-% x,   y,      z # name
-% double,      double, double # type
-% 24,  24,     24 # length
-[ 0,   0,      0       ]
-[ 1,   0,      0       ]
-[ 0,   1,      0       ]
-[ 1,   1,      0       ]
-[ 2,   0,      0       ]
-[ 3,   0,      0       ]
-[ 2,   1,      0       ]
-[ 3,   1,      0       ]
-#SELECT * FROM complete where x>=0.0 AND x <=1.0;
-% .complete,   .complete,      .complete # table_name
-% x,   y,      z # name
-% double,      double, double # type
-% 24,  24,     24 # length
-[ 0,   0,      0       ]
-[ 1,   0,      0       ]
-[ 0,   1,      0       ]
-[ 1,   1,      0       ]
-#SELECT * FROM complete where x>=2.0 AND x <=3.0;
-% .complete,   .complete,      .complete # table_name
-% x,   y,      z # name
-% double,      double, double # type
-% 24,  24,     24 # length
-[ 2,   0,      0       ]
-[ 3,   0,      0       ]
-[ 2,   1,      0       ]
-[ 3,   1,      0       ]
-#SELECT * FROM complete where x>=1.0 AND x <=2.0;
-% .complete,   .complete,      .complete # table_name
-% x,   y,      z # name
-% double,      double, double # type
-% 24,  24,     24 # length
-[ 1,   0,      0       ]
-[ 1,   1,      0       ]
-[ 2,   0,      0       ]
-[ 2,   1,      0       ]
-#CREATE TABLE answ( LIKE complete);
-#EXPLAIN INSERT INTO answ
-#SELECT * FROM complete where x>=1.0 AND x <=2.0;
-% .explain # table_name
-% mal # name
-% clob # type
-% 129 # length
-function user.s13_1{autoCommit=true}(A0:dbl,A1:dbl):void;
-    X_83:void := querylog.define("explain insert into answ\nselect * from 
complete where x>=1.0 and x <=2.0;","default_pipe",52);
-    X_4 := sql.mvc();
-    X_5:bat[:oid,:dbl]  := bat.new(nil:oid,nil:dbl);
-    X_11:bat[:oid,:dbl] := sql.bind(X_4,"sys","part1","x",0);
-    X_8:bat[:oid,:oid] := sql.tid(X_4,"sys","part1");
-    X_97 := algebra.subselect(X_11,X_8,A0,A1,true,true,false);
-    (X_14,r1_14) := sql.bind(X_4,"sys","part1","x",2);
-    X_98 := algebra.subselect(r1_14,nil:bat[:oid,:oid],A0,A1,true,true,false);
-    X_17:bat[:oid,:dbl] := sql.bind(X_4,"sys","part1","x",1);
-    X_100 := algebra.subselect(X_17,X_8,A0,A1,true,true,false);
-    X_19 := sql.subdelta(X_97,X_8,X_14,X_98,X_100);
-    X_21 := sql.projectdelta(X_19,X_11,X_14,r1_14,X_17);
-    X_22 := bat.append(X_5,X_21,true);
-    X_25:bat[:oid,:dbl] := sql.bind(X_4,"sys","part2","x",0);
-    X_23:bat[:oid,:oid] := sql.tid(X_4,"sys","part2");
-    X_101 := algebra.subselect(X_25,X_23,A0,A1,true,true,false);
-    (X_26,r1_30) := sql.bind(X_4,"sys","part2","x",2);
-    X_102 := algebra.subselect(r1_30,nil:bat[:oid,:oid],A0,A1,true,true,false);
-    X_28:bat[:oid,:dbl] := sql.bind(X_4,"sys","part2","x",1);
-    X_104 := algebra.subselect(X_28,X_23,A0,A1,true,true,false);
-    X_29 := sql.subdelta(X_101,X_23,X_26,X_102,X_104);
-    X_31 := sql.projectdelta(X_29,X_25,X_26,r1_30,X_28);
-    X_32 := bat.append(X_22,X_31,true);
-    X_33 := sql.append(X_4,"sys","answ","x",X_32);
-    X_37:bat[:oid,:dbl] := bat.new(nil:oid,nil:dbl);
-    X_40:bat[:oid,:dbl] := sql.bind(X_33,"sys","part1","y",0);
-    (X_44,r1_53) := sql.bind(X_33,"sys","part1","y",2);
-    X_47:bat[:oid,:dbl] := sql.bind(X_33,"sys","part1","y",1);
-    X_49 := sql.projectdelta(X_19,X_40,X_44,r1_53,X_47);
-    X_50 := bat.append(X_37,X_49,true);
-    X_51:bat[:oid,:dbl] := sql.bind(X_33,"sys","part2","y",0);
-    (X_53,r1_64) := sql.bind(X_33,"sys","part2","y",2);
-    X_55:bat[:oid,:dbl] := sql.bind(X_33,"sys","part2","y",1);
-    X_56 := sql.projectdelta(X_29,X_51,X_53,r1_64,X_55);
-    X_57 := bat.append(X_50,X_56,true);
-    X_59 := sql.append(X_33,"sys","answ","y",X_57);
-    X_60:bat[:oid,:dbl] := bat.new(nil:oid,nil:dbl);
-    X_61:bat[:oid,:dbl] := sql.bind(X_59,"sys","part1","z",0);
-    (X_64,r1_78) := sql.bind(X_59,"sys","part1","z",2);
-    X_66:bat[:oid,:dbl] := sql.bind(X_59,"sys","part1","z",1);
-    X_67 := sql.projectdelta(X_19,X_61,X_64,r1_78,X_66);
-    X_68 := bat.append(X_60,X_67,true);
-    X_69:bat[:oid,:dbl] := sql.bind(X_59,"sys","part2","z",0);
-    (X_71,r1_87) := sql.bind(X_59,"sys","part2","z",2);
-    X_74:bat[:oid,:dbl] := sql.bind(X_59,"sys","part2","z",1);
-    X_76 := sql.projectdelta(X_29,X_69,X_71,r1_87,X_74);
-    X_77 := bat.append(X_68,X_76,true);
-    X_78 := sql.append(X_59,"sys","answ","z",X_77);
-    X_80 := aggr.count(X_77);
-    sql.affectedRows(X_78,X_80,"");
-end user.s13_1;
-#INSERT INTO answ
-#SELECT * FROM complete where x>=1.0 AND x <=2.0;
-[ 4    ]
-#EXPLAIN INSERT INTO answ
-#SELECT * FROM complete
-#WHERE x BETWEEN 0 AND 2 AND Y BETWEEN 0 AND 2;
-% .explain # table_name
-% mal # name
-% clob # type
-% 151 # length
-function user.s14_1{autoCommit=true}(A0:dbl,A1:dbl,A2:dbl,A3:dbl):void;
-    X_88:void := querylog.define("explain insert into answ\nselect * from 
complete\nwhere x between 0 and 2 and y between 0 and 2;","default_pipe",60);
-    X_6 := sql.mvc();
-    X_7:bat[:oid,:dbl]  := bat.new(nil:oid,nil:dbl);
-    X_13:bat[:oid,:dbl] := sql.bind(X_6,"sys","part1","x",0);
-    X_21:bat[:oid,:dbl] := sql.bind(X_6,"sys","part1","y",0);
-    X_10:bat[:oid,:oid] := sql.tid(X_6,"sys","part1");
-    X_102 := algebra.subselect(X_21,X_10,A2,A3,true,true,false);
-    (X_23,r1_27) := sql.bind(X_6,"sys","part1","y",2);
-    X_103 := algebra.subselect(r1_27,nil:bat[:oid,:oid],A2,A3,true,true,false);
-    X_25:bat[:oid,:dbl] := sql.bind(X_6,"sys","part1","y",1);
-    X_105 := algebra.subselect(X_25,X_10,A2,A3,true,true,false);
-    X_26 := sql.subdelta(X_102,X_10,X_23,X_103,X_105);
-    X_106 := algebra.subselect(X_13,X_26,A0,A1,true,true,false);
-    (X_16,r1_16) := sql.bind(X_6,"sys","part1","x",2);
-    X_107 := algebra.subselect(r1_16,nil:bat[:oid,:oid],A0,A1,true,true,false);
-    X_19:bat[:oid,:dbl] := sql.bind(X_6,"sys","part1","x",1);
-    X_109 := algebra.subselect(X_19,X_26,A0,A1,true,true,false);
-    X_28 := sql.subdelta(X_106,X_26,X_16,X_107,X_109);
-    X_29 := sql.projectdelta(X_28,X_13,X_16,r1_16,X_19);
-    X_30 := bat.append(X_7,X_29,true);
-    X_34:bat[:oid,:dbl] := sql.bind(X_6,"sys","part2","x",0);
-    X_40:bat[:oid,:dbl] := sql.bind(X_6,"sys","part2","y",0);
-    X_32:bat[:oid,:oid] := sql.tid(X_6,"sys","part2");
-    X_110 := algebra.subselect(X_40,X_32,A2,A3,true,true,false);
-    (X_42,r1_54) := sql.bind(X_6,"sys","part2","y",2);
-    X_111 := algebra.subselect(r1_54,nil:bat[:oid,:oid],A2,A3,true,true,false);
-    X_45:bat[:oid,:dbl] := sql.bind(X_6,"sys","part2","y",1);
-    X_113 := algebra.subselect(X_45,X_32,A2,A3,true,true,false);
-    X_47 := sql.subdelta(X_110,X_32,X_42,X_111,X_113);
-    X_114 := algebra.subselect(X_34,X_47,A0,A1,true,true,false);
-    (X_35,r1_43) := sql.bind(X_6,"sys","part2","x",2);
-    X_115 := algebra.subselect(r1_43,nil:bat[:oid,:oid],A0,A1,true,true,false);
-    X_38:bat[:oid,:dbl] := sql.bind(X_6,"sys","part2","x",1);
-    X_117 := algebra.subselect(X_38,X_47,A0,A1,true,true,false);
-    X_48 := sql.subdelta(X_114,X_47,X_35,X_115,X_117);
-    X_49 := sql.projectdelta(X_48,X_34,X_35,r1_43,X_38);
-    X_50 := bat.append(X_30,X_49,true);
-    X_51 := sql.append(X_6,"sys","answ","x",X_50);
-    X_53:bat[:oid,:dbl] := bat.new(nil:oid,nil:dbl);
-    X_56 := sql.projectdelta(X_28,X_21,X_23,r1_27,X_25);
-    X_57 := bat.append(X_53,X_56,true);
-    X_59 := sql.projectdelta(X_48,X_40,X_42,r1_54,X_45);
-    X_60 := bat.append(X_57,X_59,true);
-    X_61 := sql.append(X_51,"sys","answ","y",X_60);
-    X_64:bat[:oid,:dbl] := bat.new(nil:oid,nil:dbl);
-    X_65:bat[:oid,:dbl] := sql.bind(X_61,"sys","part1","z",0);
-    (X_69,r1_87) := sql.bind(X_61,"sys","part1","z",2);
-    X_72:bat[:oid,:dbl] := sql.bind(X_61,"sys","part1","z",1);
-    X_74 := sql.projectdelta(X_28,X_65,X_69,r1_87,X_72);
-    X_75 := bat.append(X_64,X_74,true);
-    X_76:bat[:oid,:dbl] := sql.bind(X_61,"sys","part2","z",0);
-    (X_78,r1_98) := sql.bind(X_61,"sys","part2","z",2);
-    X_80:bat[:oid,:dbl] := sql.bind(X_61,"sys","part2","z",1);
-    X_81 := sql.projectdelta(X_48,X_76,X_78,r1_98,X_80);
-    X_82 := bat.append(X_75,X_81,true);
-    X_83 := sql.append(X_61,"sys","answ","z",X_82);
-    X_85 := aggr.count(X_82);
-    sql.affectedRows(X_83,X_85,"");
-end user.s14_1;
-#INSERT INTO answ
-#SELECT * FROM complete
-#WHERE x BETWEEN 0 AND 2 AND Y BETWEEN 0 AND 2;
-[ 6    ]
-#DROP TABLE complete;
-#DROP TABLE part1;
-#DROP TABLE part2;
-
-# 16:20:24 >  
-# 16:20:24 >  "Done."
-# 16:20:24 >  
-
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -1565,6 +1565,7 @@ def GetBitsAndOIDsAndModsAndStaticAndThr
     env['TST_INT128'] = ""
     env['TST_STATIC'] = ""
     env['TST_SINGLE'] = ""
+    env['TST_THREADS'] = ""
     if qOut:
         tbos = re.compile("^# Compiled for .*/([63][42]bit) with ([63][42])bit 
OIDs;?(| and 128bit integers) ([^ ]*) linked", re.MULTILINE)
         tt = re.compile("^# Serving database .*, using ([0-9]+) threads?", 
re.MULTILINE)
@@ -1584,9 +1585,11 @@ def GetBitsAndOIDsAndModsAndStaticAndThr
                     env['TST_STATIC'] = "STATIC"
                     os.environ['TST_STATIC'] = env['TST_STATIC']
             t = tt.match(l)
-            if t and t.group(1) == "1":
-                env['TST_SINGLE'] = "single"
-                os.environ['TST_SINGLE'] = env['TST_SINGLE']
+            if t:
+                if t.group(1) == "1":
+                    env['TST_SINGLE'] = "single"
+                    os.environ['TST_SINGLE'] = env['TST_SINGLE']
+                env['TST_THREADS'] = t.group(1)
             m = tm.match(l)
             if m:
                 env['TST_MODS'] = eval(m.group(1))
@@ -1840,6 +1843,21 @@ def RunTest(env, TST, BusyPorts, COND, o
                         reason = "as previous hugeint chained release database 
is not available"
                         elem = SkipTest(env, TST, EXT, reason, length)
                         break
+                elif cond.startswith('THREADS='):
+                    if (env['TST_THREADS'] == cond[8:]) == negate:
+                        reason = "as number of threads is wrong"
+                        elem = SkipTest(env, TST, EXT, reason, length)
+                        break
+                elif cond.startswith('THREADS<='):
+                    if (int(env['TST_THREADS']) <= int(cond[9:])) == negate:
+                        reason = "as number of threads is wrong"
+                        elem = SkipTest(env, TST, EXT, reason, length)
+                        break
+                elif cond.startswith('THREADS>='):
+                    if (int(env['TST_THREADS']) >= int(cond[9:])) == negate:
+                        reason = "as number of threads is wrong"
+                        elem = SkipTest(env, TST, EXT, reason, length)
+                        break
                 elif not CONDITIONALS.has_key(cond):
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to