Commit graph

943 commits

Author SHA1 Message Date
Davi Arnaut
a56ab623ba Fix warnings generated by SunStudio and GCC.
Based upon patch contributed by Stewart Smith

mysql-test/lib/My/SafeProcess/safe_process.cc:
  Fix style -- remove unneeded spaces.
  Specify C linkage for the signal handling functions.
  Check return value from read()/write().
2009-07-08 09:31:22 -03:00
Sergey Vojtovich
9f78d5857c Expanded list of directories to seach for InnoDB plugin. With
this fix it is possible to test InnoDB plugin from binary
distribution. As well as on pb.
2009-06-25 14:34:37 +05:00
Sergey Vojtovich
b4ac7f8c15 This patch implements testing InnoDB plugin milestone.
mysql-test/lib/mtr_cases.pm:
  Expand test cases list with test cases to test
  InnoDB plugin.
mysql-test/mysql-test-run.pl:
  Added "innodb" suite to default list of suites.
mysql-test/suite/innodb/include/have_innodb_plugin.inc:
  This file determines if innodb plugin is available.
mysql-test/suite/innodb/my.cnf:
  Removed temporary my.cnf, which was added for testing. Not
  needed anymore - options are substituted by mtr.
mysql-test/suite/innodb/t/innodb-analyze.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb-timeout.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt:
  Use "loose" prefix with mysqld options. This makes this
  test skipped properly when no innodb is available.
mysql-test/suite/innodb/t/innodb-use-sys-malloc.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb-zip.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb_bug36169.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb_bug36172.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb_information_schema.test:
  This test can only be run with InnoDB plugin.
2009-06-24 22:18:58 +05:00
Bjorn Munch
a9b438b222 Bug #43780 mysql-test-run uses deprecated server options
Updated to use general_log[_file] and slow_query_log[_file]
2009-06-22 16:27:05 +02:00
Bjorn Munch
ad365a5c07 Bug #45190 mtr should report some statistics even if aborting after too many tests fail
Added calls to mtr_report_stats() also after timeout or too many failures
2009-06-02 10:00:45 +02:00
Bjorn Munch
cf6aeea48c merge from 5.1 main 2009-05-29 13:04:02 +02:00
Bjorn Munch
4404b6a915 Bug #43659 MTR2 should report worker data for tests when using --parallel > 1
Adding "w# " before the test result
Also enable --parallel=2 so this can be tested.
2009-05-28 13:02:03 +02:00
Bjorn Munch
d7d3c56aee merge from 5.1-mtr 2009-05-25 22:58:31 +02:00
Vladislav Vaintroub
f4b8ae3b45 merge 2009-05-15 13:47:36 +02:00
Vladislav Vaintroub
e3bdffe100 Bug #44775 MTR fails to bootstrap mysqld on Windows in Pushbuild 2.
Suspected reason for the failure is that safe_process.exe already runs in a job that does not allow breakaways. 
The fix is to use a fallback -  make newly created process the root of the new process group. This allows to kill process together with descendants via GenerateConsoleCtrlEvent (CTRL_BREAK_EVENT, pid)
2009-05-14 21:56:53 +02:00
Kristofer Pettersson
baeac87623 Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors
Fix bug in mtr_cases.pm script visible only when InnoDB isn't configured.

mysql-test/lib/mtr_cases.pm:
  If InnoDB isn't configured the help texts won't show the "innodb" option and mysqld_variables will not contain any "innodb" entry.
2009-05-17 22:16:21 +02:00
Kristofer Pettersson
afee63222a Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors
It is not possible to prevent the server from starting if a mandatory
built-in plugin fails to start. This can in some cases lead to data
corruption when the old table name space suddenly is used by a different
storage engine.

A boolean command line option in the form of --foobar is automatically
created for every existing plugin "foobar". By changing this command line
option from a boolean to a tristate { OFF, ON, FORCE } it is possible to
specify the plugin loading policy for each plugin.

The behavior is specified as follows:
   OFF   = Disable the plugin and start the server
   ON    = Enable the plugin and start the server even if an error occurrs
           during plugin initialization.
   FORCE = Enable the plugin but don't start the server if an error occurrs
           during plugin initialization.


mysql-test/lib/mtr_cases.pm:
  * Changed --<pluginname> from a boolean to a tristate.
mysys/my_getopt.c:
  * Changed --<pluginname> from boolean to tristate. Optional arguments
    must still work for tristates. It is praxis that disable means value 0
    and enable is value 1. Since plugin name is the only tristate with
    optional arguments this principle will still hold.
sql/sql_plugin.cc:
  * Changed --<pluginname> option from a boolean type to a tristate.
    - FORCE will now terminate the server if the plugin fails to
      initialize properly.
  * Refactored prototypes for test_plugin_options() and construct_options()
    to get rid of the 'enable' value pointer.
  * Cleaned up code related to option name constructing.
  * Added documentation
sql/sql_plugin.h:
  * Introduced new member to st_plugin_int structure.
2009-05-14 14:03:33 +02:00
Bjorn Munch
2f9155296d Bug #42988 MTR2's --help output does not document --parallel
Several options were not documented
Added missing options and removed a few
Fixed use of --skip-combinations
2009-05-12 14:53:46 +02:00
Vladislav Vaintroub
9e9d9bf9d7 Fix regression on pushbuild 1. The cygwin perl is ancient there, and Net::Ping does not have port_number method (port_number was introduced around 2007). The fix is to check if port_number is present. Otherwise, fallback to the slow connect(). 2009-05-08 01:10:53 +02:00
Bjorn Munch
261066e251 Bug #44511 MTR2: add an option not to kill other servers when one from the group exits
MTR would die as soon as one server terminates
Implemented --wait-all option and associated subroutine
2009-04-29 16:13:38 +02:00
Vladislav Vaintroub
ca0e746d3b Bug #44530 mtr v2 startup very slow on Windows.
MTR is stuck for about 20 seconds checking for free ports.
The reason is that perl's connect()  takes 1 second on windows
if port is not opened.

This patch fixes the mtr_ping_port implementation on Windows
to use Net::Ping for the port checking with small (0.1sec) timeout.

This patch also removes pointless second call to check_ports_free() 
in case of auto build thread.
2009-04-28 23:06:36 +02:00
Vladislav Vaintroub
2943d2b7e9 Bug #42804 --parallel option does not work for MTR under ActiveState
perl 

The problem here was the method how MTR gets its unique thread ids.
Prior to this patch, the method to do it was to maintain a global 
table of pid,mtr_unique_id) pairs. The table was backed by a text 
file. The table was cleaned up one in a while and dead processes leaking
unique_ids were determined with with kill(0) or with scripting tasklist
on Windows.

This method is flawed specifically on native Windows Perl. fork() is 
implemented with starting a new thread, give it a syntetic negative PID
(threadID*(-1)), until this thread creates a new process with exec()
However,  neither tasklist nor any other native Windows tool can cope with
negative perl PIDs. This lead to incorrect determination of dead process 
and reusing already used mtr_unique_id.

The patch introduces alternative portable  method of solving unique-id 
problem. When a process needs a unique id in range [min...max], it just 
starts  to open files named min, min+1,...max in a loop . After file is 
opened, we do non-blocking flock(). When flock() succeeds, process has 
allocated the ID. When process dies, file is unlocked . Checks for zombies 
are not necessary.

Since the change would create a co-existence problems with older version
of MTR, because of different way to calculate IDs, the default ID range
is changed from 250-299 to 300-349.

Another fix that was necessary enable --parallel option was to serialize 
spawn() calls on Windows. specifically, IO redirects needed to be protected.

This patch also fixes hanging CRTL-C (as described in Bug #38629) for the
"new"  MTR. The fix was already in 6.0 and is now downported.
2009-04-23 13:35:02 +02:00
Bjorn Munch
c43af0353e Bug #41649 sporadic pb failure: mtr stopped, message "TIMEOUT (1200 seconds), ABORTING."
Potentially infinite loop in check_expected_crash_and_restart 
Replace with finite loop and some additional logic
2009-04-08 14:54:36 +02:00
Bjorn Munch
c3a43bcaa6 Bug #43570 MTR2 hangs when test fails and named pipe created
Hangs when trying to copy the pipe
Amend copytree() to only copy regular files
2009-04-01 16:23:10 +02:00
Bjorn Munch
ba70e8eac7 Bug #43917 MTR2 does not report accurate test statistics when using the 'repeat=n'
option
In practice, only the last run of the test was counted
Add a separate counter rep_failures for failures before last run
2009-04-01 13:58:30 +02:00
Bjorn Munch
fd6beee8d7 Bug #42807 MTR: './mtr somesuite.sometest' fails if somesuite is not in DEFAULT_SUITES
If suite specified as part of test name, collect from that suite too.
2009-03-27 11:25:24 +01:00
Vladislav Vaintroub
37085905e5 change order of cdb parameters to workaround a bug , where command (-c) is not evaluated if -i ,-y or -z contains an invalid path.
cdb would hang then waiting for user input, which is bad for use in scripts
2009-03-24 14:44:21 +01:00
Bjorn Munch
dd6356acca Bug #43074 MTR2 is not accessing core dumps when a path is too long
Executable path is truncated in core
If we see truncated path, try to guess using strings and grep
If that doesn't work either, use known mysqld path
2009-03-20 16:39:06 +01:00
Bjorn Munch
9f32fdd9e2 merge from main 2009-03-18 13:44:05 +01:00
Bjorn Munch
8b9502ae58 Bug #43597 Fix for Bug 43410 breaks build on Power Mac due to incomplete sys/resource.h
Added include of sys/time.h
2009-03-12 16:07:13 +01:00
Georgi Kodinov
fb36c97705 merged 5.1-main -> 5.1-bugteam 2009-03-11 15:03:25 +02:00
Bjorn Munch
4cab491915 Bug #43410 --skip-core-file has no effect if core file size is set
Would not prevent mysqld from core dumping
Passes --nocore arg to safe_process, which then sets rlimit core to 0 for child
2009-03-09 14:31:39 +01:00
Bjorn Munch
3cf777e1a2 Bug #43148 MTR2 + PB2 should display correct number of failures
Retried tests are reported the same as ordinary ones
Prepend "retry-" to fail or pass for retried tests
2009-03-09 12:59:34 +01:00
Daniel Fischer
a0aa574d31 merge 42888 to 5.1-mtr 2009-03-09 11:11:27 +01:00
Bjorn Munch
60dd4e8da4 Bug #43132 Pusbbuild 2 host sol10 sparc64 max is not running tests due to port unavailble
MTR gives up if wanted port not available
Try next range if set to 'auto'
Also, use next number for additional threads if explicitly set
2009-03-04 11:34:47 +01:00
Bjorn Munch
6293a2ea93 Bug #40978 Error log gets truncated during testsuite, prevents debugging
Error log gets truncated when mysqld is restarted by MTR

mysql-test/include/check-warnings.test:
  Since server doesn't have log-error, get it from env. var. set by MTR
mysql-test/lib/My/ConfigFactory.pm:
  "Hide" log-error in a comment
mysql-test/mysql-test-run.pl:
  "Hide" log-error in my.cnf by comment
  add --console to arguments on Windows
  Move .err file to var/log
2009-03-02 13:48:35 +01:00
Ingo Struewing
9573707ffa Bug#40446 - mysql-test-run --gcov is broken
Some variable values were missing and perl constructs failed.

Initialized the variables and refactored the gcov functions.


.bzrignore:
  Bug#40446 - mysql-test-run --gcov is broken
  Added gcov log files.
mysql-test/lib/mtr_gcov.pl:
  Bug#40446 - mysql-test-run --gcov is broken
  Refactored the gcov functions.
mysql-test/mysql-test-run.pl:
  Bug#40446 - mysql-test-run --gcov is broken
  Initialized gcov variables.
  Added usage information.
2009-02-27 12:20:53 +01:00
Daniel Fischer
fff57e9dfc address review comments 2009-02-25 15:00:17 +01:00
Bjorn Munch
e0c6aad83a Bug #43172 MTR leaves test files in /tmp after check_socket_path_length finds path too long
Faulty logic in cleanup
Put test file into tmpdir, cleanup by removing tmpdir
2009-02-25 10:32:13 +01:00
Daniel Fischer
bde5f92b31 Bug#42888 for MySQL 5.1. Add collections of test runs to make it both configurable and transparent what kinds of tests we run during integration testing. Implement filter list in mysql-test-run.pl to filter out failures of experimental test cases, using a new status code "exp-fail", so we can tell regressions ("fail") from failures of test cases that are still in development ("exp-fail"). 2009-02-24 12:53:34 +01:00
Vladislav Vaintroub
34d066a21c Bug#42788 lib\My\CoreDump.pm needs to be ported for Windows.
- output callstacks from crash using cdb debugger which is part 
of "Debugging Tools for Windows". Output  other interesting 
information - function parameters, possibly source code fragment
and other goodies of  "!analyze" cdb extension.
2009-02-12 17:13:56 +01:00
Vladislav Vaintroub
20e5719574 Bug#42709: safe_process_win.cc does not print correct system error messages.
Fix: use FormatMessage() to output system errors , not strerror()
2009-02-09 19:24:48 +01:00
Vladislav Vaintroub
461cad77b4 Bug#42427 : MTR v2 fails with "can't write to /tmp/mysql-test-ports.sem" on Windows
- /tmp directory is not guaranteed to exist on Windows. 
Use the value of environment variable TEMP here
2009-02-09 13:10:34 +01:00
Magnus Svensson
aca7ca6bba Bug#42641 mtr.pl fails to run within JobObject
- Allow the new process to break away from any job that this
   process is part of so that it can be assigned to the new JobObject
   we just created. This is safe since the new JobObject is created with
   the JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE flag, making sure it will be
   terminated when the last handle to it is closed(which is owned by
   this process).
2009-02-06 08:38:24 +01:00
Bjorn Munch
d3f4c75e55 Bug #42535 MTR2 output format for skipped tests should be identical to MTR 1
Changed [ skip ] to [ skipped ] and removed optional .
2009-02-02 11:26:19 +01:00
Luis Soares
0030ff1457 BUG#42485: Pushbuild2 and some build tools do not work together with MTR2
It seems that the length of the thick line printed by mtr when printing the 
suite name differs from mtr1 and mtr2, affecting the mtr filtering by PB2.
      
This patch addresses it by restoring the thick line length to 78 (original
length) instead of 60 (the one in mtr2).
2009-02-01 14:14:39 +01:00
Magnus Svensson
ad94278ba0 WL#4198 mtr.pl v2
- Improve error message for "found warnings in server log file"
2009-01-28 10:28:48 +01:00
Magnus Svensson
8a73a4beca Merge 2009-01-27 15:10:15 +01:00
Magnus Svensson
b3e1ca1f2c WL#4189 mtr.pl v2
- Add a "skip-ssl=1" to [mysqltest] section so that 
   mysqltest will not run with ssl turned on by default 
   but stil be able to turn it on when requested
 - This avoids that check_warnings and check_testcase
   connects to the server woth SSL turned on
2009-01-27 14:21:18 +01:00
Luis Soares
47e19cf2d5 merge: 5.1-rpl (with merge from main) -> 5.1-rpl 2009-01-26 17:06:39 +01:00
Magnus Svensson
66bf048dd3 mtr.pl v2
- extend debug prints for "permission denied"
2009-01-24 15:07:57 +01:00
Magnus Svensson
bbdd0576ee WL#4189 mtr.pl v2
- Clear test variables "comment" and "logfile" to make sure thay aren't
  already set from previous run of same test
 - Print warning if test result already set and set it anyway
2009-01-24 13:02:27 +01:00
Magnus Svensson
0cb63777a7 WL#4189 mtr.pl v2
- fix typo
2009-01-24 13:00:50 +01:00
Magnus Svensson
0226941c09 mtr.pl v2
- Add debug prints for analyzing mkdir "Permission denied" failure
2009-01-24 11:05:38 +01:00
Luis Soares
df8543868d merge: 5.1 -> 5.1-rpl
conflicts:
  Text conflict in client/mysqltest.cc
  Text conflict in mysql-test/include/wait_until_connected_again.inc
  Text conflict in mysql-test/lib/mtr_report.pm
  Text conflict in mysql-test/mysql-test-run.pl
  Text conflict in mysql-test/r/events_bugs.result
  Text conflict in mysql-test/r/log_state.result
  Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
  Text conflict in mysql-test/r/mysqlcheck.result
  Text conflict in mysql-test/r/query_cache.result
  Text conflict in mysql-test/r/status.result
  Text conflict in mysql-test/suite/binlog/r/binlog_index.result
  Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
  Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
  Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
  Text conflict in mysql-test/t/disabled.def
  Text conflict in mysql-test/t/events_bugs.test
  Text conflict in mysql-test/t/log_state.test
  Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
  Text conflict in mysql-test/t/mysqlcheck.test
  Text conflict in mysql-test/t/query_cache.test
  Text conflict in mysql-test/t/rpl_init_slave_func.test
  Text conflict in mysql-test/t/status.test
2009-01-23 13:22:05 +01:00