Commit a3a05104 authored by unknown's avatar unknown
Browse files

Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint

into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


client/mysqltest.c:
  Auto merged
mysql-test/lib/mtr_cases.pl:
  Auto merged
parents e96241a4 5adb9347
Loading
Loading
Loading
Loading
+12 −11
Original line number Diff line number Diff line
@@ -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 */
@@ -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)
@@ -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
@@ -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))
+52 −18
Original line number Diff line number Diff line
@@ -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");
      }