summaryrefslogtreecommitdiff
path: root/mysql-test/include
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2016-04-23 12:19:40 +0200
committerSergei Golubchik <serg@mariadb.org>2016-04-25 22:46:43 +0200
commita98ecc2aafcbc08f27a2f7faba872e7a0d25fee2 (patch)
treedccee08f32658c8fda9dcd06233e6c8238d268ae /mysql-test/include
parent2b7573ecdda4e542fc65e5d0992f5c05474975c0 (diff)
downloadmariadb-git-a98ecc2aafcbc08f27a2f7faba872e7a0d25fee2.tar.gz
support SEARCH_RANGE in search_pattern_in_file.inc
Backport a part of commit 439f75f Author: Kristian Nielsen <knielsen@knielsen-hq.org> Date: Mon Jun 30 13:59:21 2014 +0200 Fix test failures in rpl.rpl_checksum and rpl.rpl_gtid_errorlog.
Diffstat (limited to 'mysql-test/include')
-rw-r--r--mysql-test/include/search_pattern_in_file.inc17
1 files changed, 16 insertions, 1 deletions
diff --git a/mysql-test/include/search_pattern_in_file.inc b/mysql-test/include/search_pattern_in_file.inc
index c047b5bc499..0d09cdcd36e 100644
--- a/mysql-test/include/search_pattern_in_file.inc
+++ b/mysql-test/include/search_pattern_in_file.inc
@@ -10,6 +10,10 @@
# The environment variables SEARCH_FILE and SEARCH_PATTERN must be set
# before sourcing this routine.
#
+# Optionally, SEARCH_RANGE can be set to the max number of bytes of the file
+# to search. If negative, it will search that many bytes at the end of the
+# file. The default is to search only the first 50000 bytes of the file.
+#
# In case of
# - SEARCH_FILE and/or SEARCH_PATTERN is not set
# - SEARCH_FILE cannot be opened
@@ -38,6 +42,7 @@
# --error 0,1
# --remove_file $error_log
# let SEARCH_FILE= $error_log;
+# let SEARCH_RANGE= -50000;
# # Stop the server
# let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
# --exec echo "wait" > $restart_file
@@ -57,8 +62,18 @@ perl;
use strict;
my $search_file= $ENV{'SEARCH_FILE'} or die "SEARCH_FILE not set";
my $search_pattern= $ENV{'SEARCH_PATTERN'} or die "SEARCH_PATTERN not set";
+ my $search_range= $ENV{'SEARCH_RANGE'};
+ my $file_content;
+ $search_range= 50000 unless $search_range =~ /-?[0-9]+/;
open(FILE, "$search_file") or die("Unable to open '$search_file': $!\n");
- read(FILE, my $file_content, 50000, 0);
+ if ($search_range >= 0) {
+ read(FILE, $file_content, $search_range, 0);
+ } else {
+ my $size= -s $search_file;
+ $search_range = -$size if $size > -$search_range;
+ seek(FILE, $search_range, 2);
+ read(FILE, $file_content, -$search_range, 0);
+ }
close(FILE);
if ( not $file_content =~ m{$search_pattern} ) {
die("# ERROR: The file '$search_file' does not contain the expected pattern $search_pattern\n->$file_content<-\n");