which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
146 lines
3.2 KiB
C
Executable File
146 lines
3.2 KiB
C
Executable File
/* t4sort.c (c)Copyright Sequiter Software Inc., 1990-1993. All rights reserved. */
|
|
/* Tests sorting. */
|
|
|
|
#include "d4all.h"
|
|
#ifdef __TURBOC__
|
|
#pragma hdrstop
|
|
#endif
|
|
|
|
#include "t4test.h"
|
|
|
|
CODE4 cb;
|
|
DATA4 *data;
|
|
FIELD4 *field ;
|
|
TAG4 *tag ;
|
|
SORT4 sort ;
|
|
|
|
static int test_sort( D4DISPLAY *display, long num_sort )
|
|
{
|
|
char sort_val[7] ;
|
|
long sort_record_no, i_rec ;
|
|
char *other_ptr, *data_ptr ;
|
|
int rc ;
|
|
|
|
/* sort4init() must be called before sort4put(). */
|
|
/* The sort data length is one; there is no extra data */
|
|
|
|
if ( sort4init( &sort, &cb, 6, 0 ) != 0 )
|
|
t4severe( t4err_sort, "01" ) ;
|
|
|
|
d4display_str( display, " Putting Item: ", 1 ) ;
|
|
|
|
for ( i_rec = 1; i_rec <= num_sort; i_rec++ )
|
|
{
|
|
if ( d4display_quit( display ) )
|
|
return 1 ;
|
|
|
|
if ( i_rec % 2000 == 0 || i_rec == num_sort )
|
|
{
|
|
display->x = (int) 0 ;
|
|
d4display_str( display, " Putting Item: ", 0 ) ;
|
|
d4display_num( display, i_rec, 0 ) ;
|
|
}
|
|
|
|
c4ltoa45( i_rec, sort_val, 6 ) ;
|
|
sort_val[6] = '\0' ;
|
|
|
|
if ( sort4put( &sort, i_rec, sort_val, "" ) != 0 )
|
|
t4severe( t4err_sort, "02" ) ;
|
|
}
|
|
|
|
/* Specify that there will be no more calls to sort4put() */
|
|
|
|
d4display_str( display, " Initializing for gets . . . ", 1 ) ;
|
|
|
|
if ( sort4get_init( &sort ) < 0 )
|
|
t4severe( t4err_sort, "03" ) ;
|
|
|
|
for ( i_rec = 1; i_rec <= num_sort; i_rec++ )
|
|
{
|
|
if ( d4display_quit( display ) )
|
|
return 1 ;
|
|
|
|
if ( i_rec % 2000 == 0 || i_rec == num_sort )
|
|
{
|
|
display->x = (int) 0 ;
|
|
d4display_str( display, " Getting Item: ", 0 ) ;
|
|
d4display_num( display, i_rec, 0 ) ;
|
|
}
|
|
|
|
rc = sort4get( &sort, &sort_record_no, (void **) &data_ptr, (void **) &other_ptr ) ;
|
|
if ( rc < 0 )
|
|
t4severe( t4err_sort, "04" ) ;
|
|
|
|
c4ltoa45( i_rec, sort_val, 6 ) ;
|
|
|
|
if ( memcmp( data_ptr, sort_val, 6) != 0 )
|
|
t4severe( t4err_sort, "05" ) ;
|
|
|
|
if ( sort_record_no != i_rec )
|
|
t4severe( t4err_sort, "06" ) ;
|
|
}
|
|
|
|
rc = sort4get( &sort, &sort_record_no, (void **) &data_ptr, (void **) &other_ptr ) ;
|
|
if ( rc < 0 )
|
|
t4severe( t4err_sort, "07" ) ;
|
|
|
|
if ( d4close_all( &cb ) != 0 )
|
|
t4severe( t4err_close, "08" ) ;
|
|
return 0 ;
|
|
}
|
|
|
|
|
|
static int test_with_mem_check( D4DISPLAY *display, long num_sort )
|
|
{
|
|
d4init( &cb ) ;
|
|
|
|
cb.hWnd = (unsigned) display->hWnd ;
|
|
#ifdef S4DLL
|
|
cb.hInst = (unsigned) display->hInst ;
|
|
#endif
|
|
|
|
if ( test_sort( display, num_sort ) ) return 1 ;
|
|
|
|
#ifdef S4DEBUG
|
|
mem4check_memory() ;
|
|
#endif
|
|
|
|
mem4reset() ;
|
|
|
|
#ifdef S4DEBUG
|
|
|
|
#ifndef S4DLL
|
|
if ( mem4free_check(100) != 0 )
|
|
t4severe( t4err_memory, "09" ) ;
|
|
#endif
|
|
#endif
|
|
|
|
return 0 ;
|
|
}
|
|
|
|
|
|
int S4FUNCTION t4test( D4DISPLAY *display )
|
|
{
|
|
long num_sort = 20000L ;
|
|
|
|
#ifndef S4NO_PARMS
|
|
num_sort = atol( d4parsestring_nparm( &display->parse_str ) ) ;
|
|
if ( num_sort <= 0 )
|
|
num_sort = 70000L ;
|
|
#endif
|
|
|
|
d4display_str( display, "T4SORT Test ", 1 ) ;
|
|
d4display_str( display, " ", 1 ) ;
|
|
d4display_str( display, "Number to Sort: ", 1 ) ;
|
|
d4display_num( display, (long) num_sort, 0 ) ;
|
|
d4display_str( display, "", 1 ) ;
|
|
|
|
if ( test_with_mem_check( display, num_sort ) )
|
|
t4severe( t4err_general, "10" ) ;
|
|
|
|
display->y += 2 ;
|
|
d4display_str( display, "T4SORT: SUCCESS", 1 ) ;
|
|
d4display_str( display, "", 1) ;
|
|
return 1 ;
|
|
}
|