Stefan Manegold wrote:
Hi,
this any all other tests that were ported from .sh/.bat to .py yesterday now fail on platforms that have a pyhton installed without subprocess; cf., http://monetdb.cwi.nl/testing/projects/monetdb/Stable/sql/.mTests103/index_s...
To solve the problem, in all newly added .py scripts, ======== import subprocess ======== should be replaced by ======== try: import subprocess except ImportError: # use private copy for old Python versions import MonetDB.subprocess26 as subprocess ======== as in Mtest.py[.in] to fall-back to the subprocess that we provide with MonetDB in case there is none available on the respective system.
However, before checking in, please coordinate with Sjoerd, first! I can do the change. Thanks for the help, but I think until monday Sjoerd does not allow me to commit.
Regards, Romulo
Stefan
On Fri, Oct 12, 2007 at 09:53:41AM +0000, Romulo Goncalves wrote:
Update of /cvsroot/monetdb/sql/src/test/BugDay_2005-10-06_2.8/Tests In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv31626
Modified Files: Tag: SQL_2-20 MapiClient-dump.SF-905851.SQL.py Log Message: On windows the stdout and stderr of a python subprocess is not automatically redirect to main process stdout and stderr. The proper way is to use Popen and then use a PIPE to read the stderr and stdout from the subprocess.
NOTE: This script was tested on windows and Linux, and the test became green on both platforms. ;)
Index: MapiClient-dump.SF-905851.SQL.py =================================================================== RCS file: /cvsroot/monetdb/sql/src/test/BugDay_2005-10-06_2.8/Tests/MapiClient-dump.SF-905851.SQL.py,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- MapiClient-dump.SF-905851.SQL.py 11 Oct 2007 14:40:50 -0000 1.1.2.1 +++ MapiClient-dump.SF-905851.SQL.py 12 Oct 2007 09:53:39 -0000 1.1.2.2 @@ -1,15 +1,21 @@ -import os, sys +import os, sys, subprocess + + +def client(cmd): + clt = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + sys.stdout.write(clt.stdout.read()) + clt.stdout.close() + sys.stderr.write(clt.stderr.read()) + clt.stderr.close() +
def main(): clcmd = ("%s/bin/Mlog -x " % os.getenv('MONETDB_PREFIX')) + str(os.getenv('SQL_CLIENT')) + "< %s" % ('%s/JdbcClient_create_tables.sql' % os.getenv('RELSRCDIR')) clcmd1 = ("%s/bin/Mlog -x " % os.getenv('MONETDB_PREFIX')) + str(os.getenv('SQL_CLIENT')) + "< %s" % ('%s/JdbcClient_inserts_selects.sql' % os.getenv('RELSRCDIR')) clcmd2 = ("%s/bin/Mlog -x " % os.getenv('MONETDB_PREFIX')) + str(os.getenv('SQL_DUMP')) - clt = os.popen(clcmd, 'w') - clt.close() - clt1 = os.popen(clcmd1, 'w') - clt1.close() - clt2 = os.popen(clcmd2, 'w') - clt2.close() + client(clcmd) + client(clcmd1) + client(clcmd2)
main()
------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Monetdb-sql-checkins mailing list Monetdb-sql-checkins@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins