Hi,

Alex Budovski has done some work to debug why some tests (binlog tests in
particular) are failing on Windows, and found that this is because
mysql-test-run.pl set the TZ variable. This interacts poorly with the Windows
Operating System.

It's actually only a few test cases that need to set TZ. Here is a quick patch
that avoids the need to set TZ except for tests that specifically requests it
(with the already existing --timezone=XXX mechanism in -master.opt).

Opinions?

 - Kristian.

=== modified file 'mysql-test/include/ps_conv.inc'
--- mysql-test/include/ps_conv.inc	2007-07-04 09:20:53 +0000
+++ mysql-test/include/ps_conv.inc	2010-01-16 11:40:42 +0000
@@ -30,6 +30,9 @@
 --disable_warnings
 drop table if exists t5 ;
 --enable_warnings
+--disable_query_log
+SET TIME_ZONE= '+03:00';
+--enable_query_log
 set @arg01= 8;
 set @arg02= 8.0;
 set @arg03= 80.00000000000e-1;

=== modified file 'mysql-test/mysql-test-run.pl'
--- mysql-test/mysql-test-run.pl	2010-01-06 21:27:53 +0000
+++ mysql-test/mysql-test-run.pl	2010-01-16 11:53:58 +0000
@@ -3425,7 +3425,7 @@ sub restart_forced_by_test
 # Return timezone value of tinfo or default value
 sub timezone {
   my ($tinfo)= @_;
-  return $tinfo->{timezone} || "GMT-3";
+  return $tinfo->{timezone} || "DEFAULT";
 }
 
 
@@ -3455,7 +3455,9 @@ sub run_testcase ($$) {
   # Init variables that can change between each test case
   # -------------------------------------------------------
   my $timezone= timezone($tinfo);
-  $ENV{'TZ'}= $timezone;
+  if ($timezone ne 'DEFAULT') {
+    $ENV{'TZ'}= $timezone;
+  }
   mtr_verbose("Setting timezone: $timezone");
 
   if ( ! using_extern() )

=== modified file 'mysql-test/suite/binlog/r/binlog_unsafe.result'
--- mysql-test/suite/binlog/r/binlog_unsafe.result	2010-01-15 15:27:55 +0000
+++ mysql-test/suite/binlog/r/binlog_unsafe.result	2010-01-16 11:36:09 +0000
@@ -380,6 +380,7 @@ INSERT INTO t1 VALUES (VERSION());
 Warnings:
 Note	1592	Statement may not be safe to log in statement format.
 DELETE FROM t1;
+SET TIME_ZONE= '+03:00';
 SET TIMESTAMP=1000000;
 INSERT INTO t1 VALUES
 (CURDATE()),

=== modified file 'mysql-test/suite/binlog/t/binlog_unsafe.test'
--- mysql-test/suite/binlog/t/binlog_unsafe.test	2010-01-15 15:27:55 +0000
+++ mysql-test/suite/binlog/t/binlog_unsafe.test	2010-01-16 11:35:52 +0000
@@ -422,6 +422,7 @@ DELETE FROM t1;
 # following following functions depend on the TIMESTAMP variable and
 # don't generate a warning.
 
+SET TIME_ZONE= '+03:00';
 SET TIMESTAMP=1000000;
 INSERT INTO t1 VALUES
   (CURDATE()),

=== modified file 'mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result'
--- mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result	2008-11-04 17:07:14 +0000
+++ mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result	2010-01-16 11:33:22 +0000
@@ -18,6 +18,7 @@ Server_id	Host	Port	Rpl_recovery_rank	Ma
 drop table t1;
 stop slave;
 create table t2(id int auto_increment primary key, created datetime);
+SET TIME_ZONE= '+03:00';
 set timestamp=12345;
 insert into t2 set created=now();
 select * from t2;

=== modified file 'mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test'
--- mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test	2007-06-27 12:28:02 +0000
+++ mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test	2010-01-16 11:32:56 +0000
@@ -23,6 +23,7 @@ connection master;
 # Test replication of timestamp
 
 create table t2(id int auto_increment primary key, created datetime);
+SET TIME_ZONE= '+03:00';
 set timestamp=12345;
 insert into t2 set created=now();
 select * from t2;

=== added file 'mysql-test/t/mysqlbinlog2-master.opt'
--- mysql-test/t/mysqlbinlog2-master.opt	1970-01-01 00:00:00 +0000
+++ mysql-test/t/mysqlbinlog2-master.opt	2010-01-16 12:00:07 +0000
@@ -0,0 +1 @@
+--timezone=GMT-3

_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to