Commit 795736fa authored by wax@kishkin.ru's avatar wax@kishkin.ru

WL#964

_stricmp was replaved on sting_compare_func
added breakes for windows
parent 8a73a86e
...@@ -90,10 +90,20 @@ static char slave_socket[FN_REFLEN]= "./var/tmp/slave.sock"; ...@@ -90,10 +90,20 @@ static char slave_socket[FN_REFLEN]= "./var/tmp/slave.sock";
#endif #endif
#define MAX_COUNT_TESTES 1024 #define MAX_COUNT_TESTES 1024
#ifdef __WIN__
# define sting_compare_func _stricmp
#else
# ifdef HAVE_STRCASECMP
# define sting_compare_func strcasecmp
# else
# define sting_compare_func strcmp
# endif
#endif
/* comma delimited list of tests to skip or empty string */ /* comma delimited list of tests to skip or empty string */
#ifndef __WIN__ #ifndef __WIN__
static char skip_test[FN_REFLEN]= " lowercase_table3 , system_mysql_db_fix "; static char skip_test[FN_REFLEN]= " lowercase_table3 , system_mysql_db_fix ";
#define _stricmp strcasecmp
#else #else
/* /*
The most ignore testes contain the calls of system command The most ignore testes contain the calls of system command
...@@ -1439,7 +1449,7 @@ void setup(char *file __attribute__((unused))) ...@@ -1439,7 +1449,7 @@ void setup(char *file __attribute__((unused)))
*/ */
int compare( const void *arg1, const void *arg2 ) int compare( const void *arg1, const void *arg2 )
{ {
return _stricmp( * ( char** ) arg1, * ( char** ) arg2 ); return sting_compare_func( * ( char** ) arg1, * ( char** ) arg2 );
} }
...@@ -1520,7 +1530,9 @@ int main(int argc, char **argv) ...@@ -1520,7 +1530,9 @@ int main(int argc, char **argv)
else else
{ {
/* run all tests */ /* run all tests */
names= malloc(MAX_COUNT_TESTES*4); names= malloc(MAX_COUNT_TESTES*sizeof(void*));
if (!names)
die("can not allcate memory for sorting");
testes= names; testes= names;
name_index= 0; name_index= 0;
#ifndef __WIN__ #ifndef __WIN__
...@@ -1540,57 +1552,69 @@ int main(int argc, char **argv) ...@@ -1540,57 +1552,69 @@ int main(int argc, char **argv)
/* find the test suffix */ /* find the test suffix */
if ((position= strinstr(test, TEST_SUFFIX)) != 0) if ((position= strinstr(test, TEST_SUFFIX)) != 0)
{ {
/* null terminate at the suffix */ if (name_index < MAX_COUNT_TESTES)
*(test + position - 1)= '\0'; {
/* insert test */ /* null terminate at the suffix */
*names= malloc(FN_REFLEN); *(test + position - 1)= '\0';
strcpy(*names,test); /* insert test */
names++; *names= malloc(FN_REFLEN);
name_index++; strcpy(*names,test);
names++;
name_index++;
}
else
die("can not sort files, array is overloaded");
} }
} }
closedir(parent); closedir(parent);
} }
#else #else
struct _finddata_t dir; {
intptr_t handle; struct _finddata_t dir;
char test[FN_LEN]; int* handle;
char mask[FN_REFLEN]; char test[FN_LEN];
char *p; char mask[FN_REFLEN];
int position; char *p;
int position;
/* single test */ /* single test */
single_test= FALSE; single_test= FALSE;
snprintf(mask,FN_REFLEN,"%s/*.test",test_dir); snprintf(mask,FN_REFLEN,"%s/*.test",test_dir);
if ((handle=_findfirst(mask,&dir)) == -1L) if ((handle=_findfirst(mask,&dir)) == -1L)
{ {
die("Unable to open tests directory."); die("Unable to open tests directory.");
} }
do do
{
if (!(dir.attrib & _A_SUBDIR))
{ {
strcpy(test, strlwr(dir.name)); if (!(dir.attrib & _A_SUBDIR))
/* find the test suffix */
if ((position= strinstr(test, TEST_SUFFIX)) != 0)
{ {
/* null terminate at the suffix */ strcpy(test, strlwr(dir.name));
*(test + position - 1)= '\0';
/* insert test */ /* find the test suffix */
*names= malloc(FN_REFLEN); if ((position= strinstr(test, TEST_SUFFIX)) != 0)
strcpy(*names,test); {
names++; if (name_index < MAX_COUNT_TESTES)
name_index++; {
/* null terminate at the suffix */
*(test + position - 1)= '\0';
/* insert test */
*names= malloc(FN_REFLEN);
strcpy(*names,test);
names++;
name_index++;
}
else
die("can not sort files, array is overloaded");
}
} }
} }while (_findnext(handle,&dir) == 0);
}while (_findnext(handle,&dir) == 0);
_findclose(handle); _findclose(handle);
}
#endif #endif
qsort( (void *)testes, name_index, sizeof( char * ), compare ); qsort( (void *)testes, name_index, sizeof( char * ), compare );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment