summaryrefslogtreecommitdiffstats
path: root/mysql-test/lib/t/Options.t
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/lib/t/Options.t')
-rw-r--r--mysql-test/lib/t/Options.t130
1 files changed, 130 insertions, 0 deletions
diff --git a/mysql-test/lib/t/Options.t b/mysql-test/lib/t/Options.t
new file mode 100644
index 00000000..d0a52e0c
--- /dev/null
+++ b/mysql-test/lib/t/Options.t
@@ -0,0 +1,130 @@
+# -*- cperl -*-
+
+# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
+
+use Test::More qw(no_plan);
+use strict;
+
+use_ok("My::Options");
+
+my @tests=
+(
+ [
+ ['--binlog-format=row', '--loose-skip-innodb', '--binlog-format=ms'],
+ ['--binlog-format=row', '--loose-skip-innodb', '--binlog-format=statement'],
+ ['--binlog-format=statement']
+ ],
+
+ [
+ ['--binlog-format=row', '--loose-skip-innodb', '--binlog-format=statement'],
+ ['--binlog-format=row', '--loose-skip-innodb', '--binlog-format=mixed'],
+ ['--binlog-format=mixed']
+ ],
+
+ [
+ ['--binlog-format=row', '--loose-skip-innodb', '--binlog-format=mixed'],
+ ['--binlog-format=row', '--loose-skip-innodb', '--binlog-format=statement'],
+ ['--binlog-format=statement']
+ ],
+
+ [
+ ['--binlog-format=mixed', '--loose-skip-innodb', '--binlog-format=row'],
+ ['--binlog-format=statement', '--loose-skip-innodb', '--binlog-format=row'],
+ [ ]
+ ],
+
+ [
+ ['--binlog-format=row'],
+ [ ],
+ ['--binlog-format=default']
+ ],
+
+ [
+ [ ],
+ ['--binlog-format=row'],
+ ['--binlog-format=row']
+ ],
+
+ [
+ [ ],
+ ['--max_binlog_size=1' ]
+ ],
+
+ [
+ [ ],
+ ['--max_binlog_size=default' ]
+ ],
+
+ [
+ [ ],
+ ['--max_binlog_size=1', '--binlog-format=row' ]
+ ],
+ [
+ ['--binlog-format=statement' ],
+ ['--max_binlog_size=1', '--binlog-format=row']
+ ],
+
+ [
+ [ '--binlog-format=statement' ],
+ ['--max_binlog_size=1' ]
+ ],
+
+ [
+ [ '--binlog-format=statement' ],
+ ['--max_binlog_size=1' ]
+ ],
+
+ [
+ [ '--binlog-format=statement' ],
+ ['--relay-log=/path/to/a/relay-log', '--binlog-format=row'],
+ ['--relay-log=/path/to/a/relay-log', '--binlog-format=row' ]
+ ],
+
+
+ [
+ [ '--binlog-format=statement' ],
+ ['--relay-log=/path/to/a/relay-log', '--max_binlog_size=1'],
+ ['--max_binlog_size=1', '--relay-log=/path/to/a/relay-log', '--binlog-format=default' ]
+ ],
+
+ [
+ [ '--slow-query-log=0' ],
+ [ '--slow-query-log' ],
+ [ '--slow-query-log' ]
+ ],
+
+
+);
+
+
+my $test_no= 0;
+foreach my $test (@tests){
+ print "test", $test_no++, "\n";
+ foreach my $opts (@$test){
+ print My::Options::toStr("", @$opts);
+ }
+ my $from= $test->[0];
+ my $to= $test->[1];
+ my @result= My::Options::diff($from, $to);
+ ok(My::Options::same(\@result, $test->[2]));
+ if (!My::Options::same(\@result, $test->[2])){
+ print "failed\n";
+ print My::Options::toStr("result", @result);
+ print My::Options::toStr("expect", @{$test->[2]});
+ }
+ print My::Options::toSQL(@result), "\n";
+ print "\n";
+}