Server IP : 185.86.78.101 / Your IP : 216.73.216.213 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/server/mysql/mysql-test/include/ |
Upload File : |
# ==== Purpose ==== # # Grep a file for a pattern, produce a single string out of the # matching lines, and assert that the string matches a given regular # expression. # # ==== Usage ==== # # --let $assert_text= TEXT # --let $assert_file= FILE # --let $assert_select= REGEX # [--let $assert_match= REGEX | --let $assert_count= NUMBER] # [--let $assert_only_after= REGEX] # --source include/assert_grep.inc # # Parameters: # # $assert_text # Text that describes what is being checked. This text is written to # the query log so it should not contain non-deterministic elements. # # $assert_file # File to search. # # $assert_select # All lines matching this text will be checked. # # $assert_match # The script will find all lines that match $assert_select, # concatenate them to a long string, and assert that it matches # $assert_match. # # $assert_count # Instead of asserting that the selected lines match # $assert_match, assert that there were exactly $assert_count # matching lines. # # $assert_only_after # Reset all the lines matched and the counter when finding this pattern. # It is useful for searching things in the mysqld.err log file just # after the last server restart for example (discarding the log content # of previous server executions). if (!$assert_text) { --die !!!ERROR IN TEST: you must set $assert_text } if (!$assert_file) { --die !!!ERROR IN TEST: you must set $assert_file } if (!$assert_select) { --die !!!ERROR IN TEST: you must set $assert_select } if ($assert_match == '') { if ($assert_count == '') { --die !!!ERROR IN TEST: you must set either $assert_match or $assert_count } } if ($assert_match != '') { if ($assert_count != '') { --echo assert_text='$assert_text' assert_count='$assert_count' --die !!!ERROR IN TEST: you must set only one of $assert_match or $assert_count } } --let $include_filename= assert_grep.inc [$assert_text] --source include/begin_include_file.inc --let _AG_ASSERT_TEXT= $assert_text --let _AG_ASSERT_FILE= $assert_file --let _AG_ASSERT_SELECT= $assert_select --let _AG_ASSERT_MATCH= $assert_match --let _AG_ASSERT_COUNT= $assert_count --let _AG_OUT= `SELECT CONCAT('$MYSQLTEST_VARDIR/tmp/_ag_', UUID())` --let _AG_ASSERT_ONLY_AFTER= $assert_only_after --perl use strict; use warnings; my $file= $ENV{'_AG_ASSERT_FILE'}; my $assert_select= $ENV{'_AG_ASSERT_SELECT'}; my $assert_match= $ENV{'_AG_ASSERT_MATCH'}; my $assert_count= $ENV{'_AG_ASSERT_COUNT'}; my $assert_only_after= $ENV{'_AG_ASSERT_ONLY_AFTER'}; my $out= $ENV{'_AG_OUT'}; if (!defined($assert_count)) { $assert_count = ''; } my $result= ''; my $count= 0; open(FILE, "$file") or die("Error $? opening $file: $!\n"); while (<FILE>) { my $line = $_; if ($assert_only_after && $line =~ /$assert_only_after/) { $result = ""; $count = 0; } if ($line =~ /$assert_select/) { if ($assert_count ne '') { $count++; } else { $result .= $line; } } } close(FILE) or die("Error $? closing $file: $!"); open OUT, "> $out" or die("Error $? opening $out: $!"); if ($assert_count ne '' && ($count != $assert_count)) { print OUT ($count) or die("Error $? writing $out: $!"); } elsif ($assert_count eq '' && $result !~ /$assert_match/) { print OUT ($result) or die("Error $? writing $out: $!"); } else { print OUT ("assert_grep.inc ok"); } close OUT or die("Error $? closing $out: $!"); EOF --let $_ag_outcome= `SELECT LOAD_FILE('$_AG_OUT')` if ($_ag_outcome != 'assert_grep.inc ok') { --source include/show_rpl_debug_info.inc --echo include/assert_grep.inc failed! --echo assert_text: '$assert_text' --echo assert_file: '$assert_file' --echo assert_select: '$assert_select' --echo assert_match: '$assert_match' --echo assert_count: '$assert_count' --echo assert_only_after: '$assert_only_after' if ($assert_match != '') { --echo matching lines: '$_ag_outcome' } if ($assert_count != '') { --echo number of matching lines: $_ag_outcome } --die assert_grep.inc failed. } --let $include_filename= include/assert_grep.inc [$assert_text] --source include/end_include_file.inc