Changeset: 8e18aacb94c7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8e18aacb94c7 Modified Files: monetdb5/tools/Tests/mserver5-ipv6.py sql/backends/monet5/Tests/dbextra_lock_test.py sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py sql/test/BugTracker-2014/Tests/acidity-fail.Bug-3635.py sql/test/BugTracker-2015/Tests/schemadiff.Bug-3778.SQL.py sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.SQL.py sql/test/BugTracker-2018/Tests/local_replica_table_not_detected.Bug-6620.py sql/test/BugTracker-2018/Tests/remote-table-where-is-null.Bug-6601.py sql/test/BugTracker-2018/Tests/remote-table-where-not-equal.Bug-6621.py sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.py sql/test/BugTracker-2019/Tests/remote-table-non-existent-column.Bug-6750.py sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.SQL.py sql/test/BugTracker/Tests/mdb_starts_with_sql_debug_64.SF-1999354.SQL.py sql/test/BugTracker/Tests/set_a_new_user_password.SF-1844050.SQL.py sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.SQL.py sql/test/merge-partitions/Tests/mergepart23.SQL.py sql/test/merge-partitions/Tests/mergepart29.SQL.py sql/test/mserver5-sql-readonly/Tests/mserver5-sql-readonly-table.py sql/test/mserver5-sql-readonly/Tests/mserver5-sql-readonly-view.py sql/test/remote/Tests/creds.SQL.py sql/test/remote/Tests/different_user.SQL.py sql/test/remote/Tests/invalid_creds.SQL.py sql/test/remote/Tests/ssbm.SQL.py sql/test/rename/Tests/rename00.SQL.py sql/test/rename/Tests/rename11.py sql/test/scripts/Tests/alastair_udf_mergetable_bug.py sql/test/scripts/Tests/copy-from-lz4.py sql/test/testdb-reload/Tests/reload.py sql/test/wlcr/Tests/wlc01.py sql/test/wlcr/Tests/wlc100.py sql/test/wlcr/Tests/wlc20.py sql/test/wlcr/Tests/wlc21.py sql/test/wlcr/Tests/wlc30.py sql/test/wlcr/Tests/wlc40.py sql/test/wlcr/Tests/wlc50.py sql/test/wlcr/Tests/wlc70.py sql/test/wlcr/Tests/wlr01.py sql/test/wlcr/Tests/wlr10.py sql/test/wlcr/Tests/wlr100.py sql/test/wlcr/Tests/wlr20.py sql/test/wlcr/Tests/wlr30.py sql/test/wlcr/Tests/wlr40.py sql/test/wlcr/Tests/wlr50.py sql/test/wlcr/Tests/wlr70.py sql/test/wlcr/Tests/wlr80.py Branch: Nov2019 Log Message:
Whenever a server is started in a Python test, also terminate it in a finally clause. diffs (truncated from 2833 to 300 lines): diff --git a/monetdb5/tools/Tests/mserver5-ipv6.py b/monetdb5/tools/Tests/mserver5-ipv6.py --- a/monetdb5/tools/Tests/mserver5-ipv6.py +++ b/monetdb5/tools/Tests/mserver5-ipv6.py @@ -4,18 +4,24 @@ try: except ImportError: import process -server = process.server(stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE, ipv6=True) -client = process.client('sql', host='::1', server=server, stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE) -cout, cerr = client.communicate(''' +server = None +try: + server = process.server(stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE, ipv6=True) + client = process.client('sql', host='::1', server=server, stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE) + cout, cerr = client.communicate(''' start transaction; create table "things" ("col1" int); insert into "things" values (1); select "col1" from "things"; rollback; ''') -sout, serr = server.communicate() -sys.stdout.write(sout) -sys.stderr.write(serr) + sout, serr = server.communicate() + server = None + sys.stdout.write(sout) + sys.stderr.write(serr) -sys.stdout.write(cout) -sys.stderr.write(cerr) + sys.stdout.write(cout) + sys.stderr.write(cerr) +finally: + if server is not None: + server.terminate() diff --git a/sql/backends/monet5/Tests/dbextra_lock_test.py b/sql/backends/monet5/Tests/dbextra_lock_test.py --- a/sql/backends/monet5/Tests/dbextra_lock_test.py +++ b/sql/backends/monet5/Tests/dbextra_lock_test.py @@ -8,18 +8,22 @@ import os p = os.path.join(os.getenv('GDK_DBFARM'), 'transient_dir') -s1 = process.server(stdin = process.PIPE, stdout = process.PIPE, - stderr = process.PIPE, dbextra=p) - - - -s2 = process.server(stdin = process.PIPE, stdout = process.PIPE, - stderr = process.PIPE, dbextra=p) +s1 = s2 = None +try: + s1 = process.server(stdin = process.PIPE, stdout = process.PIPE, + stderr = process.PIPE, dbextra=p) + s2 = process.server(stdin = process.PIPE, stdout = process.PIPE, + stderr = process.PIPE, dbextra=p) -out, err = s1.communicate() -sys.stdout.write(out) -sys.stderr.write(err) + out, err = s1.communicate() + sys.stdout.write(out) + sys.stderr.write(err) -out, err = s2.communicate() -sys.stdout.write(out) -sys.stderr.write(err) + out, err = s2.communicate() + sys.stdout.write(out) + sys.stderr.write(err) +finally: + if s1 is not None: + s1.terminate() + if s2 is not None: + s2.terminate() diff --git a/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py b/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py --- a/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py +++ b/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py @@ -25,20 +25,22 @@ script1 = '''\ create table t2 (a int); ''' -def main(): +s = None +try: s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) # Start the server without readonly one time to initialize catalog out, err = s.communicate() + s = None sys.stdout.write(out) sys.stderr.write(err) s = process.server(args = ["--set", "gdk_readonly=yes"], mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) client(script1) out, err = s.communicate() + s = None sys.stdout.write(out) sys.stderr.write(err) - +finally: + if s is not None: + s.terminate() shutil.rmtree(farm_dir) - -if __name__ == '__main__': - main() diff --git a/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py b/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py --- a/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py +++ b/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py @@ -60,25 +60,34 @@ drop table lost_update_t1; drop table lost_update_t2; ''' -def main(): - s = server() - client(script1) - server_stop(s) +try: + try: + s = server() + client(script1) + server_stop(s) + finally: + s.terminate() - s = server() - client(script2) - time.sleep(20) # wait until log is flushed originally 60 sec - server_stop(s) + try: + s = server() + client(script2) + time.sleep(20) # wait until log is flushed originally 60 sec + server_stop(s) + finally: + s.terminate() - s = server() - client(script3) - server_stop(s) + try: + s = server() + client(script3) + server_stop(s) + finally: + s.terminate() - s = server() - client(cleanup) - server_stop(s) - + try: + s = server() + client(cleanup) + server_stop(s) + finally: + s.terminate() +finally: shutil.rmtree(farm_dir) - -if __name__ == '__main__': - main() diff --git a/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py b/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py --- a/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py +++ b/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py @@ -15,10 +15,13 @@ farm_dir = tempfile.mkdtemp() os.mkdir(os.path.join(farm_dir, 'db1')) myport = freeport() -s = process.server(args = ['--readonly'], mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, - stdout = process.PIPE, stderr = process.PIPE) -out, err = s.communicate() -sys.stdout.write(out) -sys.stderr.write(err) - -shutil.rmtree(farm_dir) +s = None +try: + s = process.server(args = ['--readonly'], mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) + out, err = s.communicate() + sys.stdout.write(out) + sys.stderr.write(err) +finally: + s.terminate() + shutil.rmtree(farm_dir) diff --git a/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py b/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py --- a/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py +++ b/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py @@ -17,25 +17,29 @@ farm_dir = tempfile.mkdtemp() os.mkdir(os.path.join(farm_dir, 'db1')) myport = freeport() -s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, - stdout = process.PIPE, stderr = process.PIPE) -out, err = s.communicate() -sys.stdout.write(out) -sys.stderr.write(err) -s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, - stdout = process.PIPE, stderr = process.PIPE) -c = process.client(lang = 'sqldump', - port=myport, - dbname='db1', - stdin = process.PIPE, - stdout = process.PIPE, - stderr = process.PIPE, - server = s) -out, err = c.communicate() -sys.stdout.write(out) -sys.stderr.write(err) -out, err = s.communicate() -sys.stdout.write(out) -sys.stderr.write(err) - -shutil.rmtree(farm_dir) +s = None +try: + s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) + out, err = s.communicate() + sys.stdout.write(out) + sys.stderr.write(err) + s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) + c = process.client(lang = 'sqldump', + port=myport, + dbname='db1', + stdin = process.PIPE, + stdout = process.PIPE, + stderr = process.PIPE, + server = s) + out, err = c.communicate() + sys.stdout.write(out) + sys.stderr.write(err) + out, err = s.communicate() + sys.stdout.write(out) + sys.stderr.write(err) +finally: + if s is not None: + s.terminate() + shutil.rmtree(farm_dir) diff --git a/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py b/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py --- a/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py +++ b/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py @@ -15,10 +15,12 @@ farm_dir = tempfile.mkdtemp() os.mkdir(os.path.join(farm_dir, 'db1')) myport = freeport() -s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, - stdout = process.PIPE, stderr = process.PIPE) -c = process.client('sql', port=myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) -out, err = c.communicate('''start transaction; +s = None +try: + s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) + c = process.client('sql', port=myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) + out, err = c.communicate('''start transaction; create table table3282 (i int); insert into table3282 values (0); insert into table3282 select * from table3282; @@ -45,31 +47,33 @@ insert into table3282 select * from tabl select * from table3282 offset 2097140; commit; ''') -sys.stdout.write(out) -sys.stderr.write(err) -out, err = s.communicate() -sys.stdout.write(out) -sys.stderr.write(err) -s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, - stdout = process.PIPE, stderr = process.PIPE) -c = process.client('sql', port=myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) -out, err = c.communicate('''select * from table3282 offset 2097140; + sys.stdout.write(out) + sys.stderr.write(err) + out, err = s.communicate() + sys.stdout.write(out) + sys.stderr.write(err) + s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) + c = process.client('sql', port=myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) + out, err = c.communicate('''select * from table3282 offset 2097140; ''') -sys.stdout.write(out) -sys.stderr.write(err) -out, err = s.communicate() -sys.stdout.write(out) -sys.stderr.write(err) -s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, - stdout = process.PIPE, stderr = process.PIPE) -c = process.client('sql', port=myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) -out, err = c.communicate('''select * from table3282 offset 2097140; -drop table table3282; + sys.stdout.write(out) + sys.stderr.write(err) + out, err = s.communicate() + sys.stdout.write(out) + sys.stderr.write(err) + s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list