polardbxengine/mysql-test/suite/memcached/include/ibd2sdi_common.inc

197 lines
5.9 KiB
PHP

# This include file needs two variables to be set
# IBD_FILE The ibd file to be used by tool
# DUMP_FILE The output file generated from tool
# SKIP_LARGE_DATA_FILE The file prepended with ">" to redirect large output from SDI
# For example: --let SKIP_LARGE_DATA_FILE = > $MYSQLD_VARDIR/log/ibd2sdi-large.err
--echo # 1. Read SDI with long option
--exec $IBD2SDI --skip-pretty $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 3. Read with specific id & type (long option)
--exec $IBD2SDI --skip-pretty --id=3 --type=3 $IBD_FILE 2>&1
--echo # 4. Read with specific id & type (short option)
--exec $IBD2SDI --skip-pretty -i 4 -t 4 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 5. Read with skip data
--exec $IBD2SDI --skip-data $IBD_FILE $SKIP_LARGE_DATA_FILE
--exec $IBD2SDI -s $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 6. Read SDI and dump into FILE
--exec $IBD2SDI --skip-pretty --dump-file=$DUMP_FILE $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
if (!$SKIP_LARGE_DATA_FILE) {
--cat_file $DUMP_FILE
}
--echo # 7. Read SDI and dump into FILE using short option
--exec $IBD2SDI --skip-pretty -s -d $DUMP_FILE $IBD_FILE 2>&1
if (!$SKIP_LARGE_DATA_FILE) {
--cat_file $DUMP_FILE
}
--echo # 8. Print all records matching type (short option)
--exec $IBD2SDI --skip-pretty -t 0 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 9. Print all records matching id (long option)
--exec $IBD2SDI --skip-pretty --id=3 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 10. Print version
--exec $IBD2SDI -v > $MYSQLTEST_VARDIR/tmp/ver_output
perl;
use strict;
use warnings;
use File::Copy;
my $dir = $ENV{'MYSQLTEST_VARDIR'};
my $in_file= $dir ."/tmp/ver_output";
# open file in write mode
open (IN_FILE, "<", $in_file) or die $!;
while(<IN_FILE>)
{
s/^(.*)ibd2sdi(\s+)(Ver\s\d\.\d\.\d+(-.*))(\s+for.*)$/IBD2SDI Ver #.#.#/;
print $_;
}
close(IN_FILE);
EOF
--remove_file $MYSQLTEST_VARDIR/tmp/ver_output
--echo # 11. Print help
--exec $IBD2SDI --help > $MYSQLTEST_VARDIR/tmp/help_output
perl;
use strict;
use warnings;
use File::Copy;
my $dir = $ENV{'MYSQLTEST_VARDIR'};
my $in_file= $dir ."/tmp/help_output";
# open file in write mode
open (IN_FILE, "<", $in_file) or die $!;
while(<IN_FILE>)
{
# Replacing path in Version output
s/^(.*)ibd2sdi(\s+)(Ver\s\d\.\d\.\d+(-.*))(\s+for.*)$/IBD2SDI Ver #.#.#/;
# Replacing path in Other lines
s/^Usage:(\s+.*)ibd2sdi(.*)$/IBD2SDI$2/;
s/(Copyright\s\(c\))\s([0-9]*),\s([0-9]*)(.*)/$1 YEAR, YEAR$4/g;
unless ($_=~ /^.*de?bug.*$/) {
print $_;
}
}
close(IN_FILE);
EOF
--remove_file $MYSQLTEST_VARDIR/tmp/help_output
--echo # 12. Print all records
--exec $IBD2SDI --skip-pretty $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 13. Retrieve explicit id & type
--exec $IBD2SDI --skip-pretty --id=3 --type=3 $IBD_FILE 2>&1
--echo # 14. Skip data and retrieve
--exec $IBD2SDI --skip-pretty --skip-data $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 15. Dump all records into outfile
--exec $IBD2SDI --skip-pretty --dump-file=$DUMP_FILE $IBD_FILE
if (!$SKIP_LARGE_DATA_FILE) {
--cat_file $DUMP_FILE
}
--echo # 16. Print all records matching type (short option)
--exec $IBD2SDI --skip-pretty -t 0 $IBD_FILE 2>&1
--echo # 17. Print all records matching id (long option)
--exec $IBD2SDI --skip-pretty --id=3 $IBD_FILE 2>&1
--echo # 18. Pass --no-check & --strict-check together
--error 1
--exec $IBD2SDI --skip-pretty --no-check --strict-check="crc32" $IBD_FILE 2>&1
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI --type=@ $IBD_FILE 2>&1
--replace_result $IBD2SDI IBD2SDI
--error 1
#with $IBD_FILE argument to -t missing:
--exec $IBD2SDI -t 2>&1
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI -t = $IBD_FILE 2>&1
--echo # 22. Test --type option with
--echo # 22.1 non numeric/Alphanumeric
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI --type=a $IBD_FILE 2>&1
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI -t b $IBD_FILE 2>&1
--echo # 22.2 numbers with +/-
--exec $IBD2SDI --skip-pretty --type=+0 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--exec $IBD2SDI --skip-pretty --type=-0 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--exec $IBD2SDI --skip-pretty --type=+1 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--exec $IBD2SDI --skip-pretty --type=-1 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--exec $IBD2SDI --skip-pretty --type=-15 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--exec $IBD2SDI --skip-pretty --type=+16 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 22.4 with no permitted values
--exec $IBD2SDI --skip-pretty --type=14 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--exec $IBD2SDI --skip-pretty --type=-14 $IBD_FILE $SKIP_LARGE_DATA_FILE 2>&1
--echo # 22.5 with very long value
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI --type=14324932470234893204293032 $IBD_FILE 2>&1
--echo # 22.6 with blank value
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI --type= $IBD_FILE 2>&1
--echo # 22.7 value with spaces
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI --type= 1 $IBD2SDI 2>&1
--echo # 23. Test for reading form more than type example (invalid): -t 0,1
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI --type=0,1 $IBD_FILE 2>&1
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI -t 2,3 $IBD_FILE 2>&1
--echo # 24. With misspelled --type
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI --tpe=0 $IBD2SDI 2>&1
--echo # 25. With Invalid file types
--echo # 25.1 With non IBD file
--write_file $MYSQL_TMP_DIR/invalid_file.txt
test
EOF
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI $MYSQL_TMP_DIR/invalid_file.txt 2>&1
--remove_file $MYSQL_TMP_DIR/invalid_file.txt
--echo # 25.2 with non existant file
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI non_existant_file.txt 2>&1
--echo # 25.3 with empty file
--write_file $MYSQL_TMP_DIR/empty_file.txt
EOF
--replace_result $IBD2SDI IBD2SDI
--error 1
--exec $IBD2SDI $MYSQL_TMP_DIR/empty_file.txt 2>&1
--remove_file $MYSQL_TMP_DIR/empty_file.txt