Loading client/mysqltest.c +12 −11 Original line number Diff line number Diff line Loading @@ -2472,17 +2472,13 @@ static st_error global_error_names[] = #include <mysqld_ername.h> { 0, 0 } }; #define HAVE_MYSQLD_ERNAME #endif uint get_errcode_from_name(char *error_name, char *error_end) { DBUG_ENTER("get_errcode_from_name"); #ifdef HAVE_MYSQLD_ERNAME /* SQL error as string */ st_error *e= global_error_names; DBUG_ENTER("get_errcode_from_name"); DBUG_PRINT("enter", ("error_name: %s", error_name)); /* Loop through the array of known error names */ Loading @@ -2501,13 +2497,17 @@ uint get_errcode_from_name(char *error_name, char *error_end) } if (!e->name) die("Unknown SQL error name '%s'", error_name); DBUG_RETURN(0); } #else LINT_INIT(error_name); LINT_INIT(error_end); uint get_errcode_from_name(char *error_name __attribute__((unused)), char *error_end __attribute__((unused))) { abort_not_in_this_version(); #endif DBUG_RETURN(0);; return 0; /* Never reached */ } #endif void do_get_errcodes(struct st_command *command) Loading Loading @@ -2536,6 +2536,8 @@ void do_get_errcodes(struct st_command *command) if (*p == 'S') { char *to_ptr= to->code.sqlstate; /* SQLSTATE string - Must be SQLSTATE_LENGTH long Loading @@ -2546,7 +2548,6 @@ void do_get_errcodes(struct st_command *command) die("The sqlstate must be exactly %d chars long", SQLSTATE_LENGTH); /* Check sqlstate string validity */ char *to_ptr= to->code.sqlstate; while (*p && p != end) { if (my_isdigit(charset_info, *p) || my_isupper(charset_info, *p)) Loading mysql-test/lib/mtr_cases.pl +52 −18 Original line number Diff line number Diff line Loading @@ -159,37 +159,71 @@ sub collect_test_cases ($) { { my %sort_criteria; my $tinfo; # Make a mapping of test name to a string that represents how that test # should be sorted among the other tests. Put the most important criterion # first, then a sub-criterion, then sub-sub-criterion, et c. foreach $tinfo (@$cases) foreach my $tinfo (@$cases) { my @this_criteria = (); my @criteria = (); # Look for tests that muct be in run in a defined order # that is defined by test having the same name except for # the ending digit # Put variables into hash my $test_name= $tinfo->{'name'}; my $depend_on_test_name; if ( $test_name =~ /^([\D]+)([0-9]{1})$/ ) { my $base_name= $1; my $idx= $2; mtr_verbose("$test_name => $base_name idx=$idx"); if ( $idx > 1 ) { $idx-= 1; $base_name= "$base_name$idx"; mtr_verbose("New basename $base_name"); } foreach my $tinfo2 (@$cases) { if ( $tinfo2->{'name'} eq $base_name ) { mtr_verbose("found dependent test $tinfo2->{'name'}"); $depend_on_test_name=$base_name; } } } if ( defined $depend_on_test_name ) { mtr_verbose("Giving $test_name same critera as $depend_on_test_name"); $sort_criteria{$test_name} = $sort_criteria{$depend_on_test_name}; } else { # # Append the criteria for sorting, in order of importance. # push(@this_criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0")); push(@this_criteria, "restart=" . ($tinfo->{'master_restart'} ? "1" : "0")); # Group test with similar options together. push(@criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0")); push(@criteria, "restart=" . ($tinfo->{'master_restart'} ? "1" : "0")); # Group test with equal options together. # Ending with "~" makes empty sort later than filled push(@this_criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~"); push(@criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~"); # Finally, order by the name push(@this_criteria, $tinfo->{'name'}); $sort_criteria{$tinfo->{"name"}} = join(" ", @this_criteria); $sort_criteria{$test_name} = join(" ", @criteria); } } @$cases = sort { $sort_criteria{$a->{"name"}} cmp $sort_criteria{$b->{"name"}}; } @$cases; @$cases = sort { $sort_criteria{$a->{'name'}} . $a->{'name'} cmp $sort_criteria{$b->{'name'}} . $b->{'name'}; } @$cases; if ( $::opt_script_debug ) { # For debugging the sort-order foreach $tinfo (@$cases) foreach my $tinfo (@$cases) { print("$sort_criteria{$tinfo->{'name'}} -> \t$tinfo->{'name'}\n"); } Loading Loading
client/mysqltest.c +12 −11 Original line number Diff line number Diff line Loading @@ -2472,17 +2472,13 @@ static st_error global_error_names[] = #include <mysqld_ername.h> { 0, 0 } }; #define HAVE_MYSQLD_ERNAME #endif uint get_errcode_from_name(char *error_name, char *error_end) { DBUG_ENTER("get_errcode_from_name"); #ifdef HAVE_MYSQLD_ERNAME /* SQL error as string */ st_error *e= global_error_names; DBUG_ENTER("get_errcode_from_name"); DBUG_PRINT("enter", ("error_name: %s", error_name)); /* Loop through the array of known error names */ Loading @@ -2501,13 +2497,17 @@ uint get_errcode_from_name(char *error_name, char *error_end) } if (!e->name) die("Unknown SQL error name '%s'", error_name); DBUG_RETURN(0); } #else LINT_INIT(error_name); LINT_INIT(error_end); uint get_errcode_from_name(char *error_name __attribute__((unused)), char *error_end __attribute__((unused))) { abort_not_in_this_version(); #endif DBUG_RETURN(0);; return 0; /* Never reached */ } #endif void do_get_errcodes(struct st_command *command) Loading Loading @@ -2536,6 +2536,8 @@ void do_get_errcodes(struct st_command *command) if (*p == 'S') { char *to_ptr= to->code.sqlstate; /* SQLSTATE string - Must be SQLSTATE_LENGTH long Loading @@ -2546,7 +2548,6 @@ void do_get_errcodes(struct st_command *command) die("The sqlstate must be exactly %d chars long", SQLSTATE_LENGTH); /* Check sqlstate string validity */ char *to_ptr= to->code.sqlstate; while (*p && p != end) { if (my_isdigit(charset_info, *p) || my_isupper(charset_info, *p)) Loading
mysql-test/lib/mtr_cases.pl +52 −18 Original line number Diff line number Diff line Loading @@ -159,37 +159,71 @@ sub collect_test_cases ($) { { my %sort_criteria; my $tinfo; # Make a mapping of test name to a string that represents how that test # should be sorted among the other tests. Put the most important criterion # first, then a sub-criterion, then sub-sub-criterion, et c. foreach $tinfo (@$cases) foreach my $tinfo (@$cases) { my @this_criteria = (); my @criteria = (); # Look for tests that muct be in run in a defined order # that is defined by test having the same name except for # the ending digit # Put variables into hash my $test_name= $tinfo->{'name'}; my $depend_on_test_name; if ( $test_name =~ /^([\D]+)([0-9]{1})$/ ) { my $base_name= $1; my $idx= $2; mtr_verbose("$test_name => $base_name idx=$idx"); if ( $idx > 1 ) { $idx-= 1; $base_name= "$base_name$idx"; mtr_verbose("New basename $base_name"); } foreach my $tinfo2 (@$cases) { if ( $tinfo2->{'name'} eq $base_name ) { mtr_verbose("found dependent test $tinfo2->{'name'}"); $depend_on_test_name=$base_name; } } } if ( defined $depend_on_test_name ) { mtr_verbose("Giving $test_name same critera as $depend_on_test_name"); $sort_criteria{$test_name} = $sort_criteria{$depend_on_test_name}; } else { # # Append the criteria for sorting, in order of importance. # push(@this_criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0")); push(@this_criteria, "restart=" . ($tinfo->{'master_restart'} ? "1" : "0")); # Group test with similar options together. push(@criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0")); push(@criteria, "restart=" . ($tinfo->{'master_restart'} ? "1" : "0")); # Group test with equal options together. # Ending with "~" makes empty sort later than filled push(@this_criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~"); push(@criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~"); # Finally, order by the name push(@this_criteria, $tinfo->{'name'}); $sort_criteria{$tinfo->{"name"}} = join(" ", @this_criteria); $sort_criteria{$test_name} = join(" ", @criteria); } } @$cases = sort { $sort_criteria{$a->{"name"}} cmp $sort_criteria{$b->{"name"}}; } @$cases; @$cases = sort { $sort_criteria{$a->{'name'}} . $a->{'name'} cmp $sort_criteria{$b->{'name'}} . $b->{'name'}; } @$cases; if ( $::opt_script_debug ) { # For debugging the sort-order foreach $tinfo (@$cases) foreach my $tinfo (@$cases) { print("$sort_criteria{$tinfo->{'name'}} -> \t$tinfo->{'name'}\n"); } Loading