diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2019-07-19 18:20:17 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2019-07-19 18:22:32 +0300 |
commit | 8ec4aa4b6b4d22a5907b81603141769b2c720bd2 (patch) | |
tree | 905353a9878b2fbcf2a012fda8a9c64ff6df5f8c /storage/rocksdb | |
parent | 53a3594b909a16dd57fa760ab6f729f0b7a19f41 (diff) | |
download | mariadb-git-8ec4aa4b6b4d22a5907b81603141769b2c720bd2.tar.gz |
MDEV#20107: rocksdb.check_ignore_unknown_options fails on OS X again
Rewrite the unportable sed/shell code in Perl.
Diffstat (limited to 'storage/rocksdb')
-rw-r--r-- | storage/rocksdb/mysql-test/rocksdb/t/check_ignore_unknown_options.test | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/storage/rocksdb/mysql-test/rocksdb/t/check_ignore_unknown_options.test b/storage/rocksdb/mysql-test/rocksdb/t/check_ignore_unknown_options.test index b39c022fc46..d502dd256b0 100644 --- a/storage/rocksdb/mysql-test/rocksdb/t/check_ignore_unknown_options.test +++ b/storage/rocksdb/mysql-test/rocksdb/t/check_ignore_unknown_options.test @@ -1,16 +1,44 @@ -# MariaDB: "xargs" is not present on windows builders. -# we could work around this but this is not a priority. ---source include/not_windows.inc - --disable_warnings let $MYSQLD_DATADIR= `select @@datadir`; let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; let $error_log= $MYSQLTEST_VARDIR/log/my_restart.err; select variable_name, variable_value from information_schema.global_variables where variable_name="rocksdb_ignore_unknown_options"; ---exec find $MYSQLD_DATADIR/#rocksdb/OPTIONS* | sort -t- -k 2 -n | tail -1 | xargs -0 -I {} -t sh -c "sed -i 's/rocksdb_version=.*/rocksdb_version=99.9.9/' {}" ---exec find $MYSQLD_DATADIR/#rocksdb/OPTIONS* | sort -t- -k 2 -n | tail -1 | xargs -0 -I {} -t sh -c "echo hello=world>>{}" +# +# MariaDB: The following shell commands are not portable so we are +# using perl instead: +#--exec find $MYSQLD_DATADIR/#rocksdb/OPTIONS* | sort -t- -k 2 -n | tail -1 | xargs -0 -I {} -t sh -c "sed -i 's/rocksdb_version=.*/rocksdb_version=99.9.9/' {}" +#--exec find $MYSQLD_DATADIR/#rocksdb/OPTIONS* | sort -t- -k 2 -n | tail -1 | xargs -0 -I {} -t sh -c "echo hello=world>>{}" + +perl; + my $path=$ENV{MYSQLTEST_VARDIR} . "/mysqld.1/data/\#rocksdb"; + opendir(my $dh, $path) || die "Can't opendir $some_dir: $!"; + my @files = grep { /^OPTIONS/ } readdir($dh); + closedir($dh); + sub compare_second_as_number { + local $aa= shift; + local $bb= shift; + $aa =~ s/OPTIONS-//; + $bb =~ s/OPTIONS-//; + return $aa <=> $bb; + } + + @sorted_files = sort { compare_second_as_number($a, $b); } @files; + my $last_file= $sorted_files[-1]; + + my $contents=""; + open(my $fh, "<", "$path/$last_file") || die ("Couldn't open $path/$last_file"); + while (<$fh>) { + $_ =~ s/rocksdb_version=.*/rocksdb_version=99.9.9/; + $contents .= $_; + } + close($fh); + $contents .= "hello=world\n"; + open(my $fh, ">", "$path/$last_file") || die("Can't open $path/$file for writing"); + print $fh $contents; + close($fh); +EOF --exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server 10 |