20000403-16:35 GMT+1 Victor Szakats <info@szelvesz.hu>

This commit is contained in:
Viktor Szakats
2000-04-03 14:34:35 +00:00
parent 1be74da400
commit 90cbb32858
12 changed files with 269 additions and 13 deletions

View File

@@ -1,3 +1,22 @@
20000403-16:35 GMT+1 Victor Szakats <info@szelvesz.hu>
* utils/hbtest/*
+ utils/hbtest/make_xpp.bat
+ utils/hbtest/make_xpp.cmd
+ HBTEST made compatible with XBase++ 1.10. Check the results.
Comparison:
Platform Filename Size Passes Failures Total
--------------- ------------- --------- ------ -------- -----
CA-Clipper 5.2e hbtest5x.exe 504.832 2976 25 3001
Harbour (BCC55) hbtest.exe 566.272 3186 82 3268
XBase++ 1.10 hbtestxp.exe 1.375.232 1977 771 2748
* source/rtl/philesx.c
! CURDRIVE() error handling made more like XBase++. Retry is allowed,
a the error text is the same. (not tested)
20000403-13:07 GMT+1 Victor Szakats <info@szelvesz.hu>
* source/rtl/tgetlist.prg

View File

@@ -37,6 +37,7 @@
#include "hbapi.h"
#include "hbapifs.h"
#include "hbapierr.h"
#ifdef HB_COMPAT_XPP
@@ -52,9 +53,12 @@ HB_FUNC( CURDRIVE )
if( ISCHAR( 1 ) && hb_parclen( 1 ) > 0 )
{
if( hb_fsChDrv( ( BYTE )( toupper( *hb_parc( 1 ) ) - 'A' ) ) != 0 )
while( hb_fsChDrv( ( BYTE )( toupper( *hb_parc( 1 ) ) - 'A' ) ) != 0 )
{
/* TODO: Throw some XBase++ like runtime error. [vszakats] */
USHORT uiAction = hb_errRT_BASE_Ext1( EG_OPEN, 9999, "Operating system error", "CURDRIVE", 0, EF_CANDEFAULT | EF_CANRETRY );
if( uiAction != E_RETRY )
break;
}
}

View File

@@ -111,8 +111,11 @@ FUNCTION Main( cPar1, cPar2 )
Main_TRANS()
Comp_Str()
Exact_Str()
#ifdef __HARBOUR__
New_STRINGS()
#ifdef __HARBOUR__
Long_STRINGS()
#endif
#ifdef __XPP__
Long_STRINGS()
#endif
Main_ARRAY()
@@ -138,12 +141,18 @@ FUNCTION Main( cPar1, cPar2 )
STATIC FUNCTION Main_LAST()
TEST_LINE( MEMVARBLOCK( "mcString" ) , "{||...}" )
#ifndef __XPP__
TEST_LINE( __MRestore() , "E BASE 2007 Argument error __MRESTORE " )
#endif
TEST_LINE( MEMVARBLOCK( "mcString" ) , "{||...}" )
#ifndef __XPP__
TEST_LINE( __MSave() , "E BASE 2008 Argument error __MSAVE " )
TEST_LINE( __MRestore( "$NOTHERE.MEM", .F. ) , "E BASE 2005 Open error $NOTHERE.MEM F:DR" )
#endif
TEST_LINE( MEMVARBLOCK( "mcString" ) , NIL )
#ifndef __XPP__
TEST_LINE( __MSave( "*BADNAM*.MEM", "*", .T. ) , "E BASE 2006 Create error *BADNAM*.MEM F:DR" )
#endif
RETURN NIL
@@ -175,8 +184,13 @@ STATIC FUNCTION TEST_BEGIN( cParam )
CASE "CLIPPER (R)" $ Upper( Version() ) ; s_cFileName := "rtl_test.c5x"
ENDCASE
s_nFhnd := 1 /* FHND_STDOUT */
#ifdef __XPP__
s_cFileName := "hbtest.xpp"
s_nFhnd := FCreate( s_cFileName )
#else
s_cFileName := "(stdout)"
s_nFhnd := 1 /* FHND_STDOUT */
#endif
s_nCount := 0
s_nPass := 0
@@ -240,7 +254,9 @@ STATIC FUNCTION TEST_BEGIN( cParam )
PUBLIC mbBlockC := sbBlockC
PUBLIC maArray := { 9898 }
#ifndef __XPP__
rddSetDefault( "DBFNTX" )
#endif
dbCreate( "!TEMP!.DBF",;
{ { "TYPE_C" , "C", 15, 0 } ,;
@@ -371,6 +387,10 @@ STATIC FUNCTION TEST_END()
ENDIF
ENDIF
#ifdef __XPP__
FClose( s_nFhnd )
#endif
ErrorLevel( iif( s_nFail != 0, 1, 0 ) )
RETURN NIL
@@ -392,7 +412,11 @@ FUNCTION XToStr( xValue )
CASE cType == "N" ; RETURN LTrim( Str( xValue ) )
CASE cType == "D" ; RETURN 'SToD("' + DToS( xValue ) + '")'
CASE cType == "L" ; RETURN iif( xValue, ".T.", ".F." )
#ifdef __XPP__
CASE cType == "O" ; RETURN xValue:className() + "Object"
#else
CASE cType == "O" ; RETURN xValue:className + " Object"
#endif
CASE cType == "U" ; RETURN "NIL"
CASE cType == "B" ; RETURN '{||...}'
CASE cType == "A" ; RETURN '{.[' + LTrim( Str( Len( xValue ) ) ) + '].}'
@@ -413,9 +437,13 @@ STATIC FUNCTION ErrorMessage( oError )
CASE oError:severity == ES_CATASTROPHIC ; cMessage += "C "
ENDCASE
ENDIF
#ifdef __XPP__
cMessage += "BASE" + " "
#else
IF ValType( oError:subsystem ) == "C"
cMessage += oError:subsystem() + " "
ENDIF
#endif
IF ValType( oError:subCode ) == "N"
cMessage += LTrim( Str( oError:subCode ) ) + " "
ENDIF

View File

@@ -0,0 +1,18 @@
@echo off
rem
rem $Id$
rem
xpp hbtest.prg /w /n
xpp rt_array.prg /w /n
xpp rt_date.prg /w /n
xpp rt_file.prg /w /n
xpp rt_hvm.prg /w /n
xpp rt_math.prg /w /n
xpp rt_misc.prg /w /n
xpp rt_str.prg /w /n
xpp rt_trans.prg /w /n
alink /out:hbtestxp hbtest rt_array rt_date rt_file rt_hvm rt_math rt_misc rt_str rt_trans
del *.obj

View File

@@ -0,0 +1,18 @@
@echo off
rem
rem $Id$
rem
xpp hbtest.prg /w /n
xpp rt_array.prg /w /n
xpp rt_date.prg /w /n
xpp rt_file.prg /w /n
xpp rt_hvm.prg /w /n
xpp rt_math.prg /w /n
xpp rt_misc.prg /w /n
xpp rt_str.prg /w /n
xpp rt_trans.prg /w /n
alink /out:hbtestxp hbtest rt_array rt_date rt_file rt_hvm rt_math rt_misc rt_str rt_trans
del *.obj

View File

@@ -42,76 +42,100 @@ FUNCTION Main_ARRAY()
/* ARRAY function error conditions. */
#ifndef __XPP__
TEST_LINE( aCopy() , NIL )
#endif
TEST_LINE( aCopy({}, "C") , NIL )
TEST_LINE( aCopy("C", {}) , NIL )
TEST_LINE( aCopy({}, {}) , "{.[0].}" )
TEST_LINE( aCopy({}, ErrorNew()) , "ERROR Object" )
TEST_LINE( aCopy(ErrorNew(), {}) , "{.[0].}" )
#ifndef __XPP__
TEST_LINE( aClone() , NIL )
#endif
TEST_LINE( aClone( NIL ) , NIL )
TEST_LINE( aClone( {} ) , "{.[0].}" )
TEST_LINE( aClone( ErrorNew() ) , NIL )
#ifndef __XPP__
TEST_LINE( aEval() , "E BASE 2017 Argument error AEVAL " )
TEST_LINE( aEval( NIL ) , "E BASE 2017 Argument error AEVAL " )
TEST_LINE( aEval( {} ) , "E BASE 2017 Argument error AEVAL " )
#endif
TEST_LINE( aEval( {}, NIL ) , "E BASE 2017 Argument error AEVAL " )
TEST_LINE( aEval( {}, {|| NIL } ) , "{.[0].}" )
TEST_LINE( aEval( ErrorNew(), {|| NIL } ) , "ERROR Object" )
#ifndef __XPP__
TEST_LINE( aScan() , 0 )
TEST_LINE( aScan( NIL ) , 0 )
TEST_LINE( aScan( "A" ) , 0 )
TEST_LINE( aScan( {} ) , 0 )
#endif
TEST_LINE( aScan( {}, "" ) , 0 )
TEST_LINE( aScan( ErrorNew(), "NOT_FOUND") , 0 )
#ifndef __XPP__
TEST_LINE( aSort() , NIL )
#endif
TEST_LINE( aSort(10) , NIL )
TEST_LINE( aSort({}) , "{.[0].}" )
TEST_LINE( aSort(ErrorNew()) , NIL )
#ifdef HARBOUR_STRICT_CLIPPER_COMPATIBILITY
#ifndef __XPP__
TEST_LINE( aFill() , "E BASE 2017 Argument error AEVAL " )
#endif
TEST_LINE( aFill( NIL ) , "E BASE 2017 Argument error AEVAL " )
#else
#ifndef __XPP__
TEST_LINE( aFill() , "E BASE 9999 Argument error AFILL " )
#endif
TEST_LINE( aFill( NIL ) , "E BASE 9999 Argument error AFILL " )
#endif
TEST_LINE( aFill( {} ) , "{.[0].}" )
TEST_LINE( aFill( {}, 1 ) , "{.[0].}" )
TEST_LINE( aFill( ErrorNew() ) , "ERROR Object" )
TEST_LINE( aFill( ErrorNew(), 1 ) , "ERROR Object" )
#ifndef __XPP__
TEST_LINE( aDel() , NIL )
TEST_LINE( aDel( NIL ) , NIL )
TEST_LINE( aDel( { 1 } ) , "{.[1].}" )
#endif
TEST_LINE( aDel( { 1 }, 0 ) , "{.[1].}" )
TEST_LINE( aDel( { 1 }, 100 ) , "{.[1].}" )
TEST_LINE( aDel( { 1 }, 1 ) , "{.[1].}" )
TEST_LINE( aDel( { 1 }, -1 ) , "{.[1].}" )
TEST_LINE( aDel( { 1 }, 0 ) , "{.[1].}" )
TEST_LINE( aDel( { 1 }, NIL ) , "{.[1].}" )
#ifndef __XPP__
TEST_LINE( aDel( ErrorNew() ) , "ERROR Object" )
#endif
TEST_LINE( aDel( ErrorNew(), 0 ) , "ERROR Object" )
TEST_LINE( aDel( ErrorNew(), 100 ) , "ERROR Object" )
TEST_LINE( aDel( ErrorNew(), 1 ) , "ERROR Object" )
TEST_LINE( aDel( ErrorNew(), -1 ) , "ERROR Object" )
TEST_LINE( aDel( ErrorNew(), 0 ) , "ERROR Object" )
TEST_LINE( aDel( ErrorNew(), NIL ) , "ERROR Object" )
#ifndef __XPP__
TEST_LINE( aIns() , NIL )
TEST_LINE( aIns( NIL ) , NIL )
TEST_LINE( aIns( { 1 } ) , "{.[1].}" )
#endif
TEST_LINE( aIns( { 1 }, 0 ) , "{.[1].}" )
TEST_LINE( aIns( { 1 }, 100 ) , "{.[1].}" )
TEST_LINE( aIns( { 1 }, 1 ) , "{.[1].}" )
TEST_LINE( aIns( { 1 }, -1 ) , "{.[1].}" )
TEST_LINE( aIns( { 1 }, 0 ) , "{.[1].}" )
TEST_LINE( aIns( { 1 }, NIL ) , "{.[1].}" )
#ifndef __XPP__
TEST_LINE( aIns( ErrorNew() ) , "ERROR Object" )
#endif
TEST_LINE( aIns( ErrorNew(), 0 ) , "ERROR Object" )
TEST_LINE( aIns( ErrorNew(), 100 ) , "ERROR Object" )
TEST_LINE( aIns( ErrorNew(), 1 ) , "ERROR Object" )
TEST_LINE( aIns( ErrorNew(), -1 ) , "ERROR Object" )
TEST_LINE( aIns( ErrorNew(), 0 ) , "ERROR Object" )
TEST_LINE( aIns( ErrorNew(), NIL ) , "ERROR Object" )
#ifndef __XPP__
TEST_LINE( aTail() , NIL )
#endif
TEST_LINE( aTail( NIL ) , NIL )
TEST_LINE( aTail( "" ) , NIL )
TEST_LINE( aTail( {} ) , NIL )
@@ -121,10 +145,12 @@ FUNCTION Main_ARRAY()
#else
TEST_LINE( aTail( ErrorNew() ) , NIL )
#endif
#ifndef __XPP__
TEST_LINE( aSize() , "E BASE 2023 Argument error ASIZE " )
TEST_LINE( aSize( NIL ) , "E BASE 2023 Argument error ASIZE " )
TEST_LINE( aSize( {} ) , "E BASE 2023 Argument error ASIZE " )
TEST_LINE( aSize( ErrorNew() ) , "E BASE 2023 Argument error ASIZE " )
#endif
TEST_LINE( aSize( NIL, 0 ) , "E BASE 2023 Argument error ASIZE " )
TEST_LINE( aSize( {}, 0 ) , "{.[0].}" )
TEST_LINE( aSize( ErrorNew(), 0 ) , "ERROR Object" )
@@ -149,7 +175,9 @@ FUNCTION Main_ARRAY()
TEST_LINE( aAdd( {}, "A" ) , "A" )
TEST_LINE( aAdd( ErrorNew(), NIL ) , NIL )
TEST_LINE( aAdd( ErrorNew(), "A" ) , "A" )
#ifndef __XPP__
TEST_LINE( Array() , NIL )
#endif
TEST_LINE( Array( 0 ) , "{.[0].}" )
#ifdef __HARBOUR__
TEST_LINE( Array( 5000 ) , "{.[5000].}" )
@@ -267,9 +295,11 @@ FUNCTION Main_ARRAY()
/* ASCAN() */
#ifndef __XPP__
TEST_LINE( aScan() , 0 )
TEST_LINE( aScan( NIL ) , 0 )
TEST_LINE( aScan( "A" ) , 0 )
#endif
TEST_LINE( aScan( "A", "A" ) , 0 )
TEST_LINE( aScan( "A", {|| .F. } ) , 0 )
TEST_LINE( aScan( {1,2,3}, {|x| NIL } ) , 0 )

View File

@@ -58,7 +58,9 @@ FUNCTION Main_FILE()
TEST_LINE( FError() , 0 )
TEST_LINE( TESTFIER( FWrite( fhnd, ">1234567890<" ) ) , "E: 0 R: 12" )
TEST_LINE( TESTFIER( FWrite( fhnd, "(123" + Chr(0) + "4567890)" ) ) , "E: 0 R: 13" )
#ifndef __XPP__
TEST_LINE( TESTFIER( FSeek( fhnd ) ) , "E: 0 R: 0" )
#endif
TEST_LINE( TESTFIER( FSeek( fhnd, 5 ) ) , "E: 0 R: 5" )
TEST_LINE( TESTFIER( FSeek( fhnd, -1, FS_SET ) ) , "E: 25 R: 5" )
TEST_LINE( TESTFIER( FSeek( fhnd, -10, FS_SET ) ) , "E: 25 R: 5" )
@@ -77,9 +79,13 @@ FUNCTION Main_FILE()
TEST_LINE( TESTFIER( FSeek( fhnd, -1, FS_END ) ) , "E: 0 R: 28" )
TEST_LINE( TESTFIER( FWrite( fhnd, "F" ) ) , "E: 0 R: 1" )
TEST_LINE( TESTFIER( FSeek( fhnd, 0 ) ) , "E: 0 R: 0" )
#ifndef __XPP__
TEST_LINE( TESTFIER( FRead( fhnd, mnLongP ) ) , "E: 0 R: 0" )
#endif
TEST_LINE( TESTFIER( FRead( fhnd, @mnLongP, 2 ) ) , "E: 0 R: 0" )
#ifndef __XPP__
TEST_LINE( TESTFIER( FRead( fhnd, cBuff4 ) ) , "E: 0 R: 0" )
#endif
TEST_LINE( TESTFIER( FRead( fhnd, cBuff4, 2 ) ) , "E: 0 R: 0" )
#ifdef __CLIPPER__
// TEST_LINE( TESTFIER( FRead( fhnd, @cBuff4, Len( cBuff4 ) + 1 ) ) , "E: 0 R: 0" )
@@ -105,7 +111,9 @@ FUNCTION Main_FILE()
TEST_LINE( TESTFIER( FWrite( fhnd, "V" ) ) , 'E: 0 R: 1' )
TEST_LINE( TESTFIER( FSeek( fhnd, -3, FS_END ) ) , 'E: 0 R: 43' )
TEST_LINE( TESTFIER( FWrite( fhnd, "W" ) ) , 'E: 0 R: 1' )
#ifndef __XPP__
TEST_LINE( TESTFIER( FClose() ) , 'E: 0 R: .F.' )
#endif
TEST_LINE( TESTFIER( FClose( fhnd ) ) , 'E: 0 R: .T.' )
TEST_LINE( TESTFIER( FClose( fhnd ) ) , 'E: 6 R: .F.' )
TEST_LINE( TESTFIER( FErase( "NOT_HERE.$$$" ) ) , 'E: 2 R: -1' )
@@ -119,7 +127,9 @@ FUNCTION Main_FILE()
TEST_LINE( FError() , 0 )
TEST_LINE( TESTFIER( FWrite( fhnd, ">1234567890<" ) ) , "E: 0 R: 12" )
TEST_LINE( TESTFIER( FWrite( fhnd, "(123" + Chr(0) + "4567890)" ) ) , "E: 0 R: 13" )
#ifndef __XPP__
TEST_LINE( TESTFIER( FSeek( fhnd ) ) , "E: 0 R: 0" )
#endif
TEST_LINE( TESTFIER( FSeek( fhnd, 5 ) ) , "E: 0 R: 5" )
TEST_LINE( TESTFIER( FSeek( fhnd, -1, FS_SET ) ) , "E: 25 R: 5" )
TEST_LINE( TESTFIER( FSeek( fhnd, -10, FS_SET ) ) , "E: 25 R: 5" )
@@ -138,9 +148,13 @@ FUNCTION Main_FILE()
TEST_LINE( TESTFIER( FSeek( fhnd, -1, FS_END ) ) , "E: 0 R: 49" )
TEST_LINE( TESTFIER( FWrite( fhnd, "F" ) ) , "E: 0 R: 1" )
TEST_LINE( TESTFIER( FSeek( fhnd, 0 ) ) , "E: 0 R: 0" )
#ifndef __XPP__
TEST_LINE( TESTFIER( FRead( fhnd, mnLongP ) ) , "E: 0 R: 0" )
#endif
TEST_LINE( TESTFIER( FRead( fhnd, @mnLongP, 2 ) ) , "E: 0 R: 0" )
#ifndef __XPP__
TEST_LINE( TESTFIER( FRead( fhnd, cBuff4 ) ) , "E: 0 R: 0" )
#endif
TEST_LINE( TESTFIER( FRead( fhnd, cBuff4, 2 ) ) , "E: 0 R: 0" )
#ifdef __CLIPPER__
// TEST_LINE( TESTFIER( FRead( fhnd, @cBuff4, Len( cBuff4 ) + 1 ) ) , "E: 0 R: 0" )
@@ -168,7 +182,9 @@ FUNCTION Main_FILE()
TEST_LINE( TESTFIER( FWrite( fhnd, "W" ) ) , 'E: 0 R: 1' )
TEST_LINE( TESTFIER( FWrite( fhnd, "" ) ) , 'E: 0 R: 0' )
TEST_LINE( TESTFIER( FSeek( fhnd, 0, FS_END ) ) , 'E: 0 R: 65' )
#ifndef __XPP__
TEST_LINE( TESTFIER( FClose() ) , 'E: 0 R: .F.' )
#endif
TEST_LINE( TESTFIER( FClose( fhnd ) ) , 'E: 0 R: .T.' )
TEST_LINE( TESTFIER( FClose( fhnd ) ) , 'E: 6 R: .F.' )
TEST_LINE( TESTFIER( FErase( "NOT_HERE.$$$" ) ) , 'E: 2 R: -1' )

View File

@@ -139,9 +139,11 @@ FUNCTION Main_HVM()
/* TYPE() */
#ifndef __XPP__
TEST_LINE( Type( NIL ) , "E BASE 1121 Argument error TYPE F:S" )
TEST_LINE( Type( 100 ) , "E BASE 1121 Argument error TYPE F:S" )
TEST_LINE( Type( {} ) , "E BASE 1121 Argument error TYPE F:S" )
#endif
TEST_LINE( Type( "w_TEST->TYPE_C" ) , "C" )
TEST_LINE( Type( "w_TEST->TYPE_D" ) , "D" )
TEST_LINE( Type( "w_TEST->TYPE_M" ) , "M" )
@@ -173,8 +175,11 @@ FUNCTION Main_HVM()
/* Harbour compiler not yet handles these */
#ifndef __HARBOUR__
#ifndef __XPP__
TEST_LINE( NIL:className , "NIL" )
#endif
#endif )
#ifndef __XPP__
TEST_LINE( "":className , "CHARACTER" )
TEST_LINE( 0:className , "NUMERIC" )
TEST_LINE( SToD( "" ):className , "DATE" )
@@ -182,10 +187,14 @@ FUNCTION Main_HVM()
TEST_LINE( {|| NIL }:className , "BLOCK" )
TEST_LINE( {}:className , "ARRAY" )
TEST_LINE( ErrorNew():className , "ERROR" )
#endif
/* Harbour compiler not yet handles these */
#ifndef __HARBOUR__
#ifndef __XPP__
TEST_LINE( NIL:classH , 0 )
#endif
#endif
#ifndef __XPP__
TEST_LINE( "":classH , 0 )
TEST_LINE( 0:classH , 0 )
TEST_LINE( SToD( "" ):classH , 0 )
@@ -193,11 +202,15 @@ FUNCTION Main_HVM()
TEST_LINE( {|| NIL }:classH , 0 )
TEST_LINE( {}:classH , 0 )
TEST_LINE( ErrorNew():classH > 0 , .T. )
#endif
/* Harbour compiler not yet handles these */
#ifndef __HARBOUR__
#ifndef __XPP__
TEST_LINE( suNIL:className , "NIL" )
#endif
#endif
#ifndef __XPP__
TEST_LINE( scString:className , "CHARACTER" )
TEST_LINE( snIntP:className , "NUMERIC" )
TEST_LINE( sdDateE:className , "DATE" )
@@ -205,10 +218,14 @@ FUNCTION Main_HVM()
TEST_LINE( sbBlock:className , "BLOCK" )
TEST_LINE( saArray:className , "ARRAY" )
TEST_LINE( soObject:className , "ERROR" )
#endif
/* Harbour compiler not yet handles these */
#ifndef __HARBOUR__
#ifndef __XPP__
TEST_LINE( suNIL:classH , 0 )
#endif
#endif
#ifndef __XPP__
TEST_LINE( scString:classH , 0 )
TEST_LINE( snIntP:classH , 0 )
TEST_LINE( sdDateE:classH , 0 )
@@ -216,6 +233,7 @@ FUNCTION Main_HVM()
TEST_LINE( sbBlock:classH , 0 )
TEST_LINE( saArray:classH , 0 )
TEST_LINE( soObject:classH > 0 , .T. )
#endif
/* (operators) */
@@ -661,8 +679,10 @@ FUNCTION Main_HVM()
TEST_LINE( ++{ 1, 2 }[ ( 2, 1 ) ] , 2 )
TEST_LINE( { 1, 2 }[ 1 ]++ , 1 )
TEST_LINE( ++{ 1, 2 }[ 1 ] , 2 )
#ifndef __XPP__
TEST_LINE( ({ 1, 2 }[ 1 ])++ , 1 )
TEST_LINE( ++({ 1, 2 }[ 1 ]) , 2 )
#endif
#endif
/* Operator precedence */
@@ -709,6 +729,8 @@ FUNCTION Main_HVM()
TEST_LINE( "bd" $ "bcde" , .F. )
TEST_LINE( "BD" $ "bcde" , .F. )
#ifndef __XPP__
IF TEST_OPT_Z()
/* With the shortcut optimization *ON* */
@@ -783,13 +805,16 @@ FUNCTION Main_HVM()
ENDIF
#endif
TEST_LINE( .NOT. .T. , .F. )
TEST_LINE( .NOT. .F. , .T. )
TEST_LINE( .NOT. 1 , "E BASE 1077 Argument error .NOT. F:S" )
#ifndef __HARBOUR__
// this error is reported at compile time
#ifndef __HARBOUR__ // this error is reported at compile time
#ifndef __XPP__ // this error is reported at compile time
TEST_LINE( iif( "A", ":T:", ":F:" ) , "E BASE 1066 Argument error conditional " )
#endif
#endif
TEST_LINE( iif( .T., ":T:", ":F:" ) , ":T:" )
TEST_LINE( iif( .F., ":T:", ":F:" ) , ":F:" )
@@ -834,6 +859,7 @@ FUNCTION Main_HVM()
TEST_LINE( (SToD(""))->NOFIELD , "E BASE 1065 Argument error & F:S" )
TEST_LINE( (ErrorNew())->NOFIELD , "E BASE 1065 Argument error & F:S" )
#ifndef __XPP__
TEST_LINE( ("NOTHERE")->(Eof()) , .T. )
TEST_LINE( (mcString)->(Eof()) , .T. )
TEST_LINE( ({})->(Eof()) , .T. )
@@ -845,6 +871,7 @@ FUNCTION Main_HVM()
TEST_LINE( (2.5)->(Eof()) , .T. )
TEST_LINE( (SToD(""))->(Eof()) , .T. )
TEST_LINE( (ErrorNew())->(Eof()) , .T. )
#endif
TEST_LINE( NOTHERE->NOFIELD , "E BASE 1002 Alias does not exist NOTHERE F:R" )
TEST_LINE( NOTHERE->("NOFIELD") , "E BASE 1002 Alias does not exist NOTHERE F:R" )

View File

@@ -44,7 +44,7 @@ FUNCTION Main_MATH()
TEST_LINE( Log("A") , "E BASE 1095 Argument error LOG F:S" )
TEST_LINE( Str(Log(-1)) , "***********************" )
// TEST_LINE( Str(Log(0)) , "***********************" )
// TEST_LINE( Str(Log(0)) , "***********************" )
TEST_LINE( Str(Log(1)) , " 0.00" )
TEST_LINE( Str(Log(12)) , " 2.48" )
TEST_LINE( Str(Log(snIntP)) , " 2.30" )

View File

@@ -84,6 +84,7 @@ FUNCTION Main_MISC()
TEST_LINE( TSTRING(1000) , "00:16:40" )
#ifndef __XPP__
TEST_LINE( SoundEx() , "0000" )
TEST_LINE( SoundEx( 10 ) , "0000" )
TEST_LINE( SoundEx( @scString ) , "H400" )
@@ -102,10 +103,13 @@ FUNCTION Main_MISC()
TEST_LINE( SoundEx( "C"+Chr(0)+"olt" ) , "C430" )
TEST_LINE( SoundEx( "µ A<C2A0>" ) , "A000" )
TEST_LINE( SoundEx( "12345" ) , "0000" )
#endif
/* NATION functions (do not exist in 5.2e US) */
#ifndef __XPP__
TEST_LINE( NationMsg() , "Invalid argument" )
#endif
TEST_LINE( NationMsg("A") , "" )
TEST_LINE( NationMsg(-1) , "" ) /* CA-Cl*pper bug: 5.3 may return trash. */
TEST_LINE( NationMsg(0) , "" )
@@ -127,6 +131,8 @@ FUNCTION Main_MISC()
TEST_LINE( NationMsg(200) , "" ) /* Bug in CA-Cl*pper, it will return "74?" or other trash */
#endif
#ifndef __XPP__
/* These will cause a GPF in CA-Cl*pper (5.2e International, 5.3b) */
#ifndef __CLIPPER__
TEST_LINE( IsAffirm() , .F. )
@@ -165,6 +171,8 @@ FUNCTION Main_MISC()
TEST_LINE( IsNegative("no") , .T. )
TEST_LINE( IsNegative("NO") , .T. )
#endif /* __XPP__ */
/* FOR/NEXT */
TEST_LINE( TFORNEXT( .F., .T., NIL ) , "E BASE 1086 Argument error ++ F:S" )
@@ -242,7 +250,9 @@ FUNCTION Main_MISC()
}
*/
#ifndef __XPP__
TEST_LINE( SToD() , SToD(" ") )
#endif
TEST_LINE( SToD(1) , SToD(" ") )
TEST_LINE( SToD(NIL) , SToD(" ") )
TEST_LINE( SToD("") , SToD(" ") )
@@ -271,8 +281,10 @@ FUNCTION Main_MISC()
/* DESCEND() */
#ifndef __CLIPPER__
TEST_LINE( Descend() , NIL ) /* Bug in CA-Cl*pper, it returns undefined trash */
#ifndef __CLIPPER__ /* Bug in CA-Cl*pper, it returns undefined trash */
#ifndef __XPP__ /* Compiler time error */
TEST_LINE( Descend() , NIL )
#endif
#endif
TEST_LINE( Descend( NIL ) , NIL )
TEST_LINE( Descend( { "A", "B" } ) , NIL )
@@ -348,6 +360,8 @@ FUNCTION Main_MISC()
#endif
#ifndef __XPP__
/* FKMAX(), FKLABEL() */
TEST_LINE( FKMax() , 40 )
@@ -364,13 +378,17 @@ FUNCTION Main_MISC()
TEST_LINE( FKLabel( 40 ) , "F40" )
TEST_LINE( FKLabel( 41 ) , "" )
#endif /* __XPP__ */
/* NOTE: BIN2*() functions are quite untable in CA-Cl*pper when the passed
parameter is smaller than the required length. */
/* BIN2I() */
#ifndef __CLIPPER__
#ifndef __XPP__
TEST_LINE( BIN2I() , 0 ) /* Bug in CA-Cl*pper, this causes a GPF */
#endif
TEST_LINE( BIN2I(100) , 0 ) /* Bug in CA-Cl*pper, this causes a GPF */
TEST_LINE( BIN2I("") , 0 ) /* Bug in CA-Cl*pper, it will return trash */
#endif
@@ -386,7 +404,9 @@ FUNCTION Main_MISC()
/* BIN2W() */
#ifndef __CLIPPER__
#ifndef __XPP__
TEST_LINE( BIN2W() , 0 ) /* Bug in CA-Cl*pper, this causes a GPF */
#endif
TEST_LINE( BIN2W(100) , 0 ) /* Bug in CA-Cl*pper, this causes a GPF */
TEST_LINE( BIN2W("") , 0 ) /* Bug in CA-Cl*pper, it will return trash */
#endif
@@ -402,7 +422,9 @@ FUNCTION Main_MISC()
/* BIN2L() */
#ifndef __CLIPPER__
#ifndef __XPP__
TEST_LINE( BIN2L() , 0 ) /* Bug in CA-Cl*pper, this causes a GPF */
#endif
TEST_LINE( BIN2L(100) , 0 ) /* Bug in CA-Cl*pper, this causes a GPF */
TEST_LINE( BIN2L("") , 0 ) /* Bug in CA-Cl*pper, it will return trash */
#endif
@@ -420,7 +442,9 @@ FUNCTION Main_MISC()
/* I2BIN() */
#ifndef __XPP__
TEST_LINE( I2BIN() , ""+Chr(0)+""+Chr(0)+"" )
#endif
TEST_LINE( I2BIN("" ) , ""+Chr(0)+""+Chr(0)+"" )
TEST_LINE( I2BIN(0 ) , ""+Chr(0)+""+Chr(0)+"" )
TEST_LINE( I2BIN(16961 ) , "AB" )
@@ -434,7 +458,9 @@ FUNCTION Main_MISC()
/* L2BIN() */
#ifndef __XPP__
TEST_LINE( L2BIN() , ""+Chr(0)+""+Chr(0)+""+Chr(0)+""+Chr(0)+"" )
#endif
TEST_LINE( L2BIN("") , ""+Chr(0)+""+Chr(0)+""+Chr(0)+""+Chr(0)+"" )
TEST_LINE( L2BIN(0 ) , ""+Chr(0)+""+Chr(0)+""+Chr(0)+""+Chr(0)+"" )
TEST_LINE( L2BIN(1145258561 ) , "ABCD" )
@@ -447,6 +473,8 @@ FUNCTION Main_MISC()
TEST_LINE( L2BIN(4407873 ) , "ABC"+Chr(0)+"" )
TEST_LINE( L2BIN(1145258561 ) , "ABCD" )
#ifndef __XPP__
/* __COPYFILE() */
FClose(FCreate("$$COPYFR.TMP"))
@@ -465,6 +493,10 @@ FUNCTION Main_MISC()
FErase("$$COPYFR.TMP")
FErase("$$COPYTO.TMP")
#endif /* __XPP__ */
#ifndef __XPP__
/* __RUN() */
/* NOTE: Only error cases are tested. */
@@ -473,6 +505,8 @@ FUNCTION Main_MISC()
TEST_LINE( __RUN( NIL ) , NIL )
TEST_LINE( __RUN( 10 ) , NIL )
#endif /* __XPP__ */
/* MEMVARBLOCK() */
TEST_LINE( MEMVARBLOCK() , NIL )
@@ -490,7 +524,9 @@ FUNCTION Main_MISC()
/* HARDCR() */
#ifndef __XPP__
TEST_LINE( HardCR() , "" )
#endif
TEST_LINE( HardCR(NIL) , "" )
TEST_LINE( HardCR(100) , "" )
#ifdef __HARBOUR__
@@ -501,7 +537,9 @@ FUNCTION Main_MISC()
/* MEMOTRAN() */
#ifndef __XPP__
TEST_LINE( MemoTran() , "" )
#endif
TEST_LINE( MemoTran(NIL) , "" )
TEST_LINE( MemoTran(100) , "" )
TEST_LINE( MemoTran(100,"1","2") , "" )
@@ -516,8 +554,10 @@ FUNCTION Main_MISC()
/* MEMOWRITE()/MEMOREAD() */
#ifndef __XPP__
TEST_LINE( MemoWrit() , .F. )
TEST_LINE( MemoWrit("$$MEMOFI.TMP") , .F. )
#endif
TEST_LINE( MemoWrit("$$MEMOFI.TMP","") , .T. )
TEST_LINE( MemoRead("$$MEMOFI.TMP") , "" )
TEST_LINE( MemoWrit("$$MEMOFI.TMP",scStringZ) , .T. )
@@ -527,7 +567,9 @@ FUNCTION Main_MISC()
TEST_LINE( MemoWrit("$$MEMOFI.TMP",scStringW) , .T. )
TEST_LINE( MemoRead("$$MEMOFI.TMP") , ""+Chr(13)+""+Chr(10)+"<22>"+Chr(10)+""+Chr(9)+"" )
TEST_LINE( MemoWrit("*INVALI*.TMP",scStringZ) , .F. )
#ifndef __XPP__
TEST_LINE( MemoRead() , "" )
#endif
TEST_LINE( MemoRead("*INVALI*.TMP") , "" )
FErase("$$MEMOFI.TMP")

View File

@@ -163,7 +163,9 @@ FUNCTION Main_STR()
/* ISDIGIT() */
#ifndef __XPP__
TEST_LINE( IsDigit() , .F. )
#endif
TEST_LINE( IsDigit( 100 ) , .F. )
#ifdef __HARBOUR__
TEST_LINE( IsDigit( @scString ) , .F. ) /* Bug in CA-Cl*pper, it will always return .F. */
@@ -182,7 +184,9 @@ FUNCTION Main_STR()
/* ISALPHA() */
#ifndef __XPP__
TEST_LINE( IsAlpha() , .F. )
#endif
TEST_LINE( IsAlpha( 100 ) , .F. )
#ifdef __HARBOUR__
TEST_LINE( IsAlpha( @scString ) , .T. ) /* Bug in CA-Cl*pper, it will always return .F. */
@@ -209,7 +213,9 @@ FUNCTION Main_STR()
/* ISUPPER() */
#ifndef __XPP__
TEST_LINE( IsUpper() , .F. )
#endif
TEST_LINE( IsUpper( 100 ) , .F. )
#ifdef __HARBOUR__
TEST_LINE( IsUpper( @scString ) , .T. ) /* Bug in CA-Cl*pper, it will always return .F. */
@@ -227,7 +233,9 @@ FUNCTION Main_STR()
/* ISLOWER() */
#ifndef __XPP__
TEST_LINE( IsLower() , .F. )
#endif
TEST_LINE( IsLower( 100 ) , .F. )
#ifdef __HARBOUR__
TEST_LINE( IsLower( @scString ) , .F. ) /* Bug in CA-Cl*pper, it will always return .F. */
@@ -346,9 +354,11 @@ FUNCTION Main_STR()
the error handler, so the error is thrown, but we can't catch it.
This bug is fixed in CA-Clipper 5.3 [vszel] */
#ifndef __CLIPPER__
#ifndef __XPP__
TEST_LINE( StrTran() , "E BASE 1126 Argument error STRTRAN F:S" ) /* CA-Cl*pper bug, it will exit on this */
TEST_LINE( StrTran( NIL ) , "E BASE 1126 Argument error STRTRAN F:S" ) /* CA-Cl*pper bug, it will exit on this */
TEST_LINE( StrTran( 100 ) , "E BASE 1126 Argument error STRTRAN F:S" ) /* CA-Cl*pper bug, it will exit on this */
#endif
TEST_LINE( StrTran( "AA", 1 ) , "E BASE 1126 Argument error STRTRAN F:S" ) /* CA-Cl*pper bug, it will exit on this */
#endif
TEST_LINE( StrTran( "AA", "A" ) , "" )
@@ -488,22 +498,26 @@ FUNCTION Main_STR()
TEST_LINE( SubStr("abcdef", 2, 1) , "b" )
TEST_LINE( SubStr("abcdef", 2, 7) , "bcdef" )
TEST_LINE( SubStr("abcdef", 2) , "bcdef" )
#ifndef __XPP__
TEST_LINE( SubStr("abcdef", -2, -1) , "" )
TEST_LINE( SubStr("abcdef", -2, 0) , "" )
TEST_LINE( SubStr("abcdef", -2, 1) , "e" )
TEST_LINE( SubStr("abcdef", -2, 7) , "ef" )
TEST_LINE( SubStr("abcdef", -2) , "ef" )
#endif
TEST_LINE( SubStr("abcdef", 10, -1) , "" )
TEST_LINE( SubStr("abcdef", 10, 0) , "" )
TEST_LINE( SubStr("abcdef", 10, 1) , "" )
TEST_LINE( SubStr("abcdef", 10, 7) , "" )
TEST_LINE( SubStr("abcdef", 10) , "" )
#ifndef __XPP__
TEST_LINE( SubStr("abcdef", -10, -1) , "" )
TEST_LINE( SubStr("abcdef", -10, 0) , "" )
TEST_LINE( SubStr("abcdef", -10, 1) , "a" )
TEST_LINE( SubStr("abcdef", -10, 7) , "abcdef" )
TEST_LINE( SubStr("abcdef", -10, 15) , "abcdef" )
TEST_LINE( SubStr("abcdef", -10) , "abcdef" )
#endif
TEST_LINE( SubStr("ab" + Chr(0) + "def", 2, 3) , "b" + Chr(0) + "d" )
TEST_LINE( SubStr("abc" + Chr(0) + "def", 3, 1) , "c" )
TEST_LINE( SubStr("abc" + Chr(0) + "def", 4, 1) , "" + Chr(0) + "" )
@@ -548,8 +562,10 @@ FUNCTION Main_STR()
TEST_LINE( Pad(@scString, 10) , "HELLO " ) /* Bug in CA-Cl*pper, it will return "" */
TEST_LINE( Pad(scString, @snIntP) , "HELLO " ) /* Bug in CA-Cl*pper, it will return "" */
#endif
#ifndef __XPP__
TEST_LINE( Pad("abcdef", "A") , "" )
TEST_LINE( Pad("abcdef", -5) , "" )
#endif
TEST_LINE( Pad("abcdef", 0) , "" )
TEST_LINE( Pad("abcdef", 5) , "abcde" )
TEST_LINE( Pad("abcdef", 10) , "abcdef " )
@@ -573,8 +589,10 @@ FUNCTION Main_STR()
TEST_LINE( PadR(@scString, 10) , "HELLO " ) /* Bug in CA-Cl*pper, it will return "" */
TEST_LINE( PadR(scString, @snIntP) , "HELLO " ) /* Bug in CA-Cl*pper, it will return "" */
#endif
#ifndef __XPP__
TEST_LINE( PadR("abcdef", "A") , "" )
TEST_LINE( PadR("abcdef", -5) , "" )
#endif
TEST_LINE( PadR("abcdef", 0) , "" )
TEST_LINE( PadR("abcdef", 5) , "abcde" )
TEST_LINE( PadR("abcdef", 10) , "abcdef " )
@@ -598,8 +616,10 @@ FUNCTION Main_STR()
TEST_LINE( PadL(@scString, 10) , " HELLO" ) /* Bug in CA-Cl*pper, it will return "" */
TEST_LINE( PadL(scString, @snIntP) , " HELLO" ) /* Bug in CA-Cl*pper, it will return "" */
#endif
#ifndef __XPP__
TEST_LINE( PadL("abcdef", "A") , "" )
TEST_LINE( PadL("abcdef", -5) , "" )
#endif
TEST_LINE( PadL("abcdef", 0) , "" )
TEST_LINE( PadL("abcdef", 5) , "abcde" ) /* QUESTION: CA-Cl*pper "bug", should return: "bcdef" ? */
TEST_LINE( PadL("abcdef", 10) , " abcdef" )
@@ -623,8 +643,10 @@ FUNCTION Main_STR()
TEST_LINE( PadC(@scString, 10) , " HELLO " ) /* Bug in CA-Cl*pper, it will return "" */
TEST_LINE( PadC(scString, @snIntP) , " HELLO " ) /* Bug in CA-Cl*pper, it will return "" */
#endif
#ifndef __XPP__
TEST_LINE( PadC("abcdef", "A") , "" )
TEST_LINE( PadC("abcdef", -5) , "" )
#endif
TEST_LINE( PadC("abcdef", 0) , "" )
TEST_LINE( PadC("abcdef", 2) , "ab" ) /* QUESTION: CA-Cl*pper "bug", should return: "cd" ? */
TEST_LINE( PadC("abcdef", 5) , "abcde" )
@@ -635,8 +657,10 @@ FUNCTION Main_STR()
/* STUFF() */
#ifndef __XPP__
TEST_LINE( Stuff() , "" )
TEST_LINE( Stuff( 100 ) , "" )
#endif
TEST_LINE( Stuff("ABCDEF", -6, -5, "xyz") , "ABCDEFxyz" )
TEST_LINE( Stuff("ABCDEF", -6, -2, "xyz") , "ABCDEFxyz" )
TEST_LINE( Stuff("ABCDEF", -6, 0, "xyz") , "ABCDEFxyz" )
@@ -726,6 +750,7 @@ FUNCTION Main_STR()
TEST_LINE( Str(-100000, 5) , "*****" )
TEST_LINE( Str(-100000, 6) , "******" )
TEST_LINE( Str(-100000, 8) , " -100000" )
#ifndef __XPP__ /* Internal structures corrupted */
TEST_LINE( Str(10, -5) , " 10" )
TEST_LINE( Str(10.0, -5) , " 10" )
TEST_LINE( Str(10.00, -5) , " 10" )
@@ -739,6 +764,7 @@ FUNCTION Main_STR()
TEST_LINE( Str(-100000, -5) , " -100000" )
TEST_LINE( Str(-100000, -6) , " -100000" )
TEST_LINE( Str(-100000, -8) , " -100000" )
#endif
TEST_LINE( Str(10, 5, 0) , " 10" )
TEST_LINE( Str(10.0, 5, 0) , " 10" )
TEST_LINE( Str(10.00, 5, 0) , " 10" )
@@ -763,6 +789,7 @@ FUNCTION Main_STR()
TEST_LINE( Str(-100000, 5, 1) , "*****" )
TEST_LINE( Str(-100000, 6, 1) , "******" )
TEST_LINE( Str(-100000, 8, 1) , "********" )
#ifndef __XPP__ /* Internal structures corrupted */
TEST_LINE( Str(10, 5, -1) , " 10" )
TEST_LINE( Str(10.0, 5, -1) , " 10" )
TEST_LINE( Str(10.00, 5, -1) , " 10" )
@@ -775,6 +802,7 @@ FUNCTION Main_STR()
TEST_LINE( Str(-100000, 5, -1) , "*****" )
TEST_LINE( Str(-100000, 6, -1) , "******" )
TEST_LINE( Str(-100000, 8, -1) , " -100000" )
#endif
/* STRZERO() */
@@ -814,6 +842,7 @@ FUNCTION Main_STR()
TEST_LINE( StrZero(-100000, 5) , "*****" )
TEST_LINE( StrZero(-100000, 6) , "******" )
TEST_LINE( StrZero(-100000, 8) , "-0100000" )
#ifndef __XPP__ /* Internal structures corrupted */
TEST_LINE( StrZero(10, -5) , "0000000010" )
TEST_LINE( StrZero(10.0, -5) , "0000000010" )
TEST_LINE( StrZero(10.00, -5) , "0000000010" )
@@ -827,6 +856,7 @@ FUNCTION Main_STR()
TEST_LINE( StrZero(-100000, -5) , "-000100000" )
TEST_LINE( StrZero(-100000, -6) , "-000100000" )
TEST_LINE( StrZero(-100000, -8) , "-000100000" )
#endif
TEST_LINE( StrZero(10, 5, 0) , "00010" )
TEST_LINE( StrZero(10.0, 5, 0) , "00010" )
TEST_LINE( StrZero(10.50, 5, 0) , "00011" )
@@ -849,6 +879,7 @@ FUNCTION Main_STR()
TEST_LINE( StrZero(-100000, 5, 1) , "*****" )
TEST_LINE( StrZero(-100000, 6, 1) , "******" )
TEST_LINE( StrZero(-100000, 8, 1) , "********" )
#ifndef __XPP__ /* Internal structures corrupted */
TEST_LINE( StrZero(10, 5, -1) , "00010" )
TEST_LINE( StrZero(10.0, 5, -1) , "00010" )
TEST_LINE( StrZero(10.50, 5, -1) , "00011" )
@@ -860,6 +891,7 @@ FUNCTION Main_STR()
TEST_LINE( StrZero(-100000, 5, -1) , "*****" )
TEST_LINE( StrZero(-100000, 6, -1) , "******" )
TEST_LINE( StrZero(-100000, 8, -1) , "-0100000" )
#endif
RETURN NIL
@@ -1087,10 +1119,10 @@ FUNCTION Exact_Str()
SET( _SET_EXACT, old_exact )
RETURN NIL
#ifdef __HARBOUR__
FUNCTION New_STRINGS()
#ifdef __HARBOUR__
TEST_LINE( HB_ValToStr( 4 ) , " 4" )
TEST_LINE( HB_ValToStr( 4.0 / 2 ) , " 2.00" )
TEST_LINE( HB_ValToStr( "String" ) , "String" )
@@ -1099,6 +1131,8 @@ FUNCTION New_STRINGS()
TEST_LINE( HB_ValToStr( .F. ) , ".F." )
TEST_LINE( HB_ValToStr( .T. ) , ".T." )
#endif
RETURN NIL
FUNCTION Long_STRINGS()
@@ -1109,7 +1143,5 @@ FUNCTION Long_STRINGS()
RETURN NIL
#endif
/* Don't change the position of this #include. */
#include "rt_init.ch"

View File

@@ -58,35 +58,51 @@ FUNCTION Main_TRANS()
TEST_LINE( Transform( "", "" ) , "" )
TEST_LINE( Transform( "", "@" ) , "" )
#ifndef __XPP__
TEST_LINE( Transform( "", NIL ) , "" )
#endif
TEST_LINE( Transform( "", 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( "hello", "" ) , "hello" )
TEST_LINE( Transform( "hello", "@" ) , "hello" )
#ifndef __XPP__
TEST_LINE( Transform( "hello", NIL ) , "hello" )
#endif
TEST_LINE( Transform( "hello", 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( 100.2, "" ) , " 100.2" )
TEST_LINE( Transform( 100.2, "@" ) , " 100.2" )
#ifndef __XPP__
TEST_LINE( Transform( 100.2, NIL ) , " 100.2" )
#endif
TEST_LINE( Transform( 100.2, 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( 100.20, "" ) , " 100.20" )
TEST_LINE( Transform( 100.20, "@" ) , " 100.20" )
#ifndef __XPP__
TEST_LINE( Transform( 100.20, NIL ) , " 100.20" )
#endif
TEST_LINE( Transform( 100.20, 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( Val("100.2"), "" ) , "100.2" )
TEST_LINE( Transform( Val("100.2"), "@" ) , "100.2" )
#ifndef __XPP__
TEST_LINE( Transform( Val("100.2"), NIL ) , "100.2" )
#endif
TEST_LINE( Transform( Val("100.2"), 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( Val("100.20"), "" ) , "100.20" )
// TEST_LINE( Transform( Val("100.20"), "@" ) , "100.20" )
#ifndef __XPP__
TEST_LINE( Transform( Val("100.20"), NIL ) , "100.20" )
#endif
TEST_LINE( Transform( Val("100.20"), 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( sdDate, "" ) , "1984.03.25" )
TEST_LINE( Transform( sdDate, "@" ) , "1984.03.25" )
#ifndef __XPP__
TEST_LINE( Transform( sdDate, NIL ) , "1984.03.25" )
#endif
TEST_LINE( Transform( sdDate, 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( .T., "" ) , "T" )
TEST_LINE( Transform( .T., "@" ) , "T" )
#ifndef __XPP__
TEST_LINE( Transform( .F., NIL ) , "F" )
#endif
TEST_LINE( Transform( .F., 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform( scStringM , "!!!!!" ) , "HELLO" )
@@ -96,7 +112,9 @@ FUNCTION Main_TRANS()
TEST_LINE( Transform( @scStringM, "@!" ) , "HELLO" ) /* Bug in CA-Cl*pper, it returns: "E BASE 1122 Argument error TRANSFORM F:S" */
#endif
TEST_LINE( Transform( scStringM , "" ) , "Hello" )
#ifndef __XPP__
TEST_LINE( Transform( scStringM , NIL ) , "Hello" )
#endif
TEST_LINE( Transform( scStringM , 100 ) , "E BASE 1122 Argument error TRANSFORM F:S" )
TEST_LINE( Transform("abcdef", "@! !lkm!") , "ABkmE" )
@@ -264,7 +282,9 @@ FUNCTION Main_TRANS()
TEST_LINE( Transform("abcdefghijklmnopqrstuvwxyz", "@! abcdefghijklmnopqrstuvwxyz") , "AbcdefghijkLmNopqrstuvwXYz" )
// Harbour PP fails on this.
#ifndef __HARBOUR__
#ifndef __XPP__
TEST_LINE( Transform("abcdefghijklmnopqrstuvwxyz", "@! `~!@#$%^&*()_+-={}[]\|;':") , "`~C@E$%^&*()_+-={}[]\|;':" )
#endif
#endif
TEST_LINE( Transform("abcdefghijklmnopqrstuvwxyz", "@! ,./<>?") , ",./<>?" )
TEST_LINE( Transform("abcdefghijklmnopqrstuvwxyz", "@R! ,./<>?" ) , ",./<>?ABCDEFGHIJKLMNOPQRSTUVWXYZ" )
@@ -397,7 +417,9 @@ FUNCTION Main_TRANS()
TEST_LINE( Transform(0, "@B(X $99999") , "$ 0" )
TEST_LINE( Transform(0, "@B(ZX $99999") , " " )
#ifndef __XPP__
TEST_LINE( Transform(sdDate, NIL) , "84.03.25" )
#endif
TEST_LINE( Transform(sdDate, "") , "84.03.25" )
TEST_LINE( Transform(sdDate, "@Z") , " " )