campo-sirio/cb5/t4sort.c
alex a0f5e0898b This commit was generated by cvs2svn to compensate for changes in r975,
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
1995-02-06 15:33:45 +00:00

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 ;
}