2013-02-22 11:06 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
+ support '-version', for local consistency with other
(regular) double dashed options
+ will now warn if .lib/.a extension is used with -hblib/-hbimplib
modes or .dll extension with -hbdyn/-hbdynvm modes in -o option value.
It's unnecessary unless you want to make your .hbp file non-portable.
* contrib/hbtest/core.prg
! fixed to trim line ending spaces in output
! fixed to handle RTEs with values containing control chars
* use hb_StrReplace() instead of repeated StrTran()s
! set language to EN while evaluating the test expressions
so that RTEs come in one common language
! fixed to escape more control chars in strings
! control char escaping missing for Memo strings
* hbformatted (with 1 manual correction)
* utils/hbtest/hbtest.prg
! fixed to trim line ending spaces in output
! fixed to handle RTEs with values containing control chars
* made more hbformat friendly
* contrib/hbtest/tests/test.prg
+ added self-tests
* contrib/xhb/xhbmemo.prg
* space
This commit is contained in:
@@ -10,6 +10,35 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
2013-02-22 11:06 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ support '-version', for local consistency with other
|
||||
(regular) double dashed options
|
||||
+ will now warn if .lib/.a extension is used with -hblib/-hbimplib
|
||||
modes or .dll extension with -hbdyn/-hbdynvm modes in -o option value.
|
||||
It's unnecessary unless you want to make your .hbp file non-portable.
|
||||
|
||||
* contrib/hbtest/core.prg
|
||||
! fixed to trim line ending spaces in output
|
||||
! fixed to handle RTEs with values containing control chars
|
||||
* use hb_StrReplace() instead of repeated StrTran()s
|
||||
! set language to EN while evaluating the test expressions
|
||||
so that RTEs come in one common language
|
||||
! fixed to escape more control chars in strings
|
||||
! control char escaping missing for Memo strings
|
||||
* hbformatted (with 1 manual correction)
|
||||
|
||||
* utils/hbtest/hbtest.prg
|
||||
! fixed to trim line ending spaces in output
|
||||
! fixed to handle RTEs with values containing control chars
|
||||
* made more hbformat friendly
|
||||
|
||||
* contrib/hbtest/tests/test.prg
|
||||
+ added self-tests
|
||||
|
||||
* contrib/xhb/xhbmemo.prg
|
||||
* space
|
||||
|
||||
2013-02-21 23:31 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* src/compiler/ppcomp.c
|
||||
+ '#pragma nostartproc=' / '#pragma -n' will now return
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Regression tests for the runtime library (main)
|
||||
* Regression tests for the runtime library
|
||||
*
|
||||
* Copyright 1999-2012 Viktor Szakats (harbour syenar.net)
|
||||
* Copyright 1999-2013 Viktor Szakats (harbour syenar.net)
|
||||
* www - http://harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -56,7 +56,6 @@
|
||||
#define TEST_RESULT_COL2_WIDTH 15
|
||||
#define TEST_RESULT_COL3_WIDTH 40
|
||||
#define TEST_RESULT_COL4_WIDTH 85
|
||||
#define TEST_RESULT_COL5_WIDTH 85
|
||||
|
||||
THREAD STATIC t_hParams := { => }
|
||||
|
||||
@@ -77,10 +76,13 @@ PROCEDURE hbtest_Call( cBlock, bBlock, xResultExpected )
|
||||
LOCAL xResult
|
||||
LOCAL oError
|
||||
LOCAL lPPError
|
||||
LOCAL lRTE
|
||||
LOCAL lFailed
|
||||
|
||||
LOCAL bOut
|
||||
|
||||
LOCAL cLangOld
|
||||
|
||||
IF HB_ISSTRING( cBlock )
|
||||
lPPError := .F.
|
||||
ELSE
|
||||
@@ -88,46 +90,59 @@ PROCEDURE hbtest_Call( cBlock, bBlock, xResultExpected )
|
||||
lPPError := .T.
|
||||
ENDIF
|
||||
|
||||
cLangOld := hb_langSelect( "EN" ) /* to always have RTEs in one language */
|
||||
|
||||
BEGIN SEQUENCE WITH ErrorBlock( {| oError | Break( oError ) } )
|
||||
xResult := Eval( bBlock )
|
||||
lRTE := .F.
|
||||
RECOVER USING oError
|
||||
xResult := ErrorMessage( oError )
|
||||
lRTE := .T.
|
||||
END SEQUENCE
|
||||
|
||||
IF !( ValType( xResult ) == ValType( xResultExpected ) )
|
||||
IF HB_ISSTRING( xResultExpected ) .AND. ValType( xResult ) $ "ABOHPS"
|
||||
lFailed := !( XToStr( xResult, .F. ) == xResultExpected )
|
||||
ELSE
|
||||
lFailed := .T.
|
||||
ENDIF
|
||||
hb_langSelect( cLangOld )
|
||||
|
||||
IF lRTE
|
||||
lFailed := !( XToStr( xResult, .F. ) == XToStr( xResultExpected, .F. ) )
|
||||
ELSE
|
||||
lFailed := !( xResult == xResultExpected )
|
||||
IF !( ValType( xResult ) == ValType( xResultExpected ) )
|
||||
IF HB_ISSTRING( xResultExpected ) .AND. ValType( xResult ) $ "ABOHPS"
|
||||
lFailed := !( XToStr( xResult, .F. ) == xResultExpected )
|
||||
ELSE
|
||||
lFailed := .T.
|
||||
ENDIF
|
||||
ELSE
|
||||
lFailed := !( xResult == xResultExpected )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF lFailed .OR. lPPError .OR. hb_HGetDef( t_hParams, "showall", .T. )
|
||||
bOut := hb_HGetDef( t_hParams, "output", {| cMsg | OutStd( cMsg ) } )
|
||||
IF lFailed
|
||||
Eval( bOut, PadR( iif( lFailed, "!", " " ), TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( ProcName( 1 ) + "(" + hb_ntos( ProcLine( 1 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) +;
|
||||
hb_eol() +;
|
||||
Space( 5 ) + " Result: " + XToStr( xResult, .F. ) +;
|
||||
hb_eol() +;
|
||||
Space( 5 ) + "Expected: " + XToStr( xResultExpected, .F. ) +;
|
||||
hb_eol() )
|
||||
Eval( bOut, ;
|
||||
PadR( iif( lFailed, "!", " " ), TEST_RESULT_COL1_WIDTH ) + " " + ;
|
||||
PadR( ProcName( 1 ) + "(" + hb_ntos( ProcLine( 1 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " + ;
|
||||
RTrim( cBlock ) + ;
|
||||
hb_eol() + ;
|
||||
Space( 5 ) + " Result: " + XToStr( xResult, .F. ) + ;
|
||||
hb_eol() + ;
|
||||
Space( 5 ) + "Expected: " + XToStr( xResultExpected, .F. ) + ;
|
||||
hb_eol() )
|
||||
ELSE
|
||||
Eval( bOut, PadR( iif( lFailed, "!", " " ), TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( ProcName( 1 ) + "(" + hb_ntos( ProcLine( 1 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) + " -> " +;
|
||||
PadR( XToStr( xResult, .F. ), TEST_RESULT_COL4_WIDTH ) + " | " +;
|
||||
PadR( XToStr( xResultExpected, .F. ), TEST_RESULT_COL5_WIDTH ) +;
|
||||
hb_eol() )
|
||||
Eval( bOut, ;
|
||||
PadR( iif( lFailed, "!", " " ), TEST_RESULT_COL1_WIDTH ) + " " + ;
|
||||
PadR( ProcName( 1 ) + "(" + hb_ntos( ProcLine( 1 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " + ;
|
||||
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) + " -> " + ;
|
||||
PadR( XToStr( xResult, .F. ), TEST_RESULT_COL4_WIDTH ) + " | " + ;
|
||||
XToStr( xResultExpected, .F. ) + ;
|
||||
hb_eol() )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION ErrorMessage( oError )
|
||||
|
||||
LOCAL cMessage := ""
|
||||
LOCAL tmp
|
||||
|
||||
@@ -195,21 +210,26 @@ STATIC FUNCTION ErrorMessage( oError )
|
||||
|
||||
STATIC FUNCTION XToStr( xValue, lInString )
|
||||
|
||||
STATIC sc_hReplace := { ;
|
||||
Chr( 0 ) => '" + Chr( 0 ) + "', ;
|
||||
Chr( 7 ) => '" + Chr( 7 ) + "', ;
|
||||
Chr( 8 ) => '" + Chr( 8 ) + "', ;
|
||||
Chr( 9 ) => '" + Chr( 9 ) + "', ;
|
||||
Chr( 10 ) => '" + Chr( 10 ) + "', ;
|
||||
Chr( 11 ) => '" + Chr( 11 ) + "', ;
|
||||
Chr( 12 ) => '" + Chr( 12 ) + "', ;
|
||||
Chr( 13 ) => '" + Chr( 13 ) + "' }
|
||||
|
||||
SWITCH ValType( xValue )
|
||||
CASE "C"
|
||||
|
||||
xValue := StrTran( xValue, Chr( 0 ), '" + Chr( 0 ) + "' )
|
||||
xValue := StrTran( xValue, Chr( 9 ), '" + Chr( 9 ) + "' )
|
||||
xValue := StrTran( xValue, Chr( 10 ), '" + Chr( 10 ) + "' )
|
||||
xValue := StrTran( xValue, Chr( 13 ), '" + Chr( 13 ) + "' )
|
||||
xValue := StrTran( xValue, Chr( 26 ), '" + Chr( 26 ) + "' )
|
||||
|
||||
RETURN iif( lInString, xValue, '"' + xValue + '"' )
|
||||
|
||||
CASE "N" ; RETURN hb_ntos( xValue )
|
||||
CASE "D" ; RETURN iif( lInString, "0d" + iif( Empty( xValue ), "00000000", DToS( xValue ) ), 'hb_SToD("' + DToS( xValue ) + '")' )
|
||||
CASE "D" ; RETURN iif( lInString, "0d" + iif( Empty( xValue ), "00000000", DToS( xValue ) ), 'hb_SToD( "' + DToS( xValue ) + '" )' )
|
||||
CASE "U" ; RETURN "NIL"
|
||||
CASE "M" ; RETURN "M:" + iif( lInString, xValue, '"' + xValue + '"' )
|
||||
CASE "C"
|
||||
xValue := hb_StrReplace( xValue, sc_hReplace )
|
||||
RETURN iif( lInString, xValue, '"' + xValue + '"' )
|
||||
CASE "M"
|
||||
xValue := hb_StrReplace( xValue, sc_hReplace )
|
||||
RETURN "M:" + iif( lInString, xValue, '"' + xValue + '"' )
|
||||
ENDSWITCH
|
||||
|
||||
RETURN hb_CStr( xValue )
|
||||
|
||||
@@ -6,7 +6,17 @@
|
||||
|
||||
PROCEDURE Main()
|
||||
|
||||
HBTEST 2 + 2 IS 4
|
||||
HBTEST 2 + 2 IS 5
|
||||
HBTEST 2 + 2 IS 4
|
||||
HBTEST 2 + 2 IS 5
|
||||
HBTEST "a" + "b" IS "ab"
|
||||
HBTEST 2 + "" IS "E 1 BASE 1081 Argument error (+) OS:0 #:0 A:2:N:2;C: F:S"
|
||||
HBTEST 2 + Chr( 9 ) IS "E 1 BASE 1081 Argument error (+) OS:0 #:0 A:2:N:2;C:" + Chr( 9 ) + " F:S"
|
||||
HBTEST Chr( 0 ) IS Chr( 0 )
|
||||
HBTEST 0d20111213 IS 0d20111213
|
||||
HBTEST NIL IS NIL
|
||||
HBTEST .T. IS .T.
|
||||
HBTEST .T. IS .F.
|
||||
HBTEST .T. - .F. IS "E 1 BASE 1082 Argument error (-) OS:0 #:0 A:2:L:.T.;L:.F. F:S"
|
||||
HBTEST " " + " " IS " "
|
||||
|
||||
RETURN
|
||||
|
||||
@@ -104,7 +104,7 @@ METHOD MemoInit( xUDF ) CLASS xhb_TMemoEditor
|
||||
K_BS, ;
|
||||
K_CTRL_BS, ;
|
||||
K_TAB, ;
|
||||
K_SH_TAB }
|
||||
K_SH_TAB }
|
||||
|
||||
::aAsciiKeys := Array( 255 - 31 ) // asc codes greater than space.
|
||||
AEval( ::aAsciiKeys, {| c, i | iif( Empty( c ), ::aAsciiKeys[ i ] := i + 31, ) } )
|
||||
|
||||
@@ -1585,7 +1585,8 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
RETURN _EXIT_OK
|
||||
#endif
|
||||
|
||||
CASE cParamL == "--version"
|
||||
CASE cParamL == "-version" .OR. ;
|
||||
cParamL == "--version"
|
||||
|
||||
ShowHeader( hbmk )
|
||||
RETURN _EXIT_OK
|
||||
@@ -2871,8 +2872,11 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
IF ! Empty( tmp )
|
||||
tmp := hb_DirSepToOS( tmp )
|
||||
hb_FNameSplit( tmp, @cDir, @cName, @cExt )
|
||||
IF Lower( cExt ) == ".exe" .AND. hbmk_TARGETTYPE( hbmk ) == "hbexe"
|
||||
_hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Non-portable option value: %1$s. Delete '.exe' extension." ), ParamToString( aParam ) ) )
|
||||
tmp1 := hbmk_TARGETTYPE( hbmk )
|
||||
IF ( Lower( cExt ) == ".exe" .AND. tmp1 == "hbexe" ) .OR. ;
|
||||
( Lower( cExt ) == ".dll" .AND. HBMK_IS_IN( tmp1, "hbdyn|hbdynvm" ) ) .OR. ;
|
||||
( HBMK_IS_IN( Lower( cExt ), ".lib|.a" ) .AND. HBMK_IS_IN( tmp1, "hblib|hbimplib" ) )
|
||||
_hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Non-portable option value: %1$s. Delete '%2$s' extension." ), ParamToString( aParam ), cExt ) )
|
||||
ENDIF
|
||||
DO CASE
|
||||
CASE Empty( cDir )
|
||||
@@ -15443,7 +15447,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lFull, lLong )
|
||||
{ "-harbourhelp" , hb_StrFormat( I_( "Harbour compiler help (all Harbour compiler options are accepted as is by %1$s)" ), _SELF_NAME_ ) }, ;
|
||||
{ "-credits" , I_( "display credits (via Harbour compiler)" ) }, ;
|
||||
{ "-build" , I_( "display detailed build information (via Harbour compiler)" ) }, ;
|
||||
{ "--version" , I_( "display version header only" ) } }
|
||||
{ "-version|--version" , I_( "display version header only" ) } }
|
||||
|
||||
LOCAL aHdr_Exit := { ;
|
||||
"", ;
|
||||
|
||||
@@ -198,12 +198,14 @@ STATIC PROCEDURE Main_LAST()
|
||||
RETURN
|
||||
|
||||
STATIC PROCEDURE TEST_BEGIN( cParam )
|
||||
|
||||
LOCAL bErrorOld
|
||||
|
||||
s_nStartTime := Seconds()
|
||||
|
||||
s_lShowAll := "/ALL" $ Upper( cParam ) .OR. ;
|
||||
"-ALL" $ Upper( cParam )
|
||||
s_lShowAll := ;
|
||||
"/ALL" $ Upper( cParam ) .OR. ;
|
||||
"-ALL" $ Upper( cParam )
|
||||
|
||||
s_aSkipList := ListToNArray( CMDLGetValue( Upper( cParam ), "/SKIP:", "" ) )
|
||||
IF Empty( s_aSkipList )
|
||||
@@ -236,23 +238,27 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
|
||||
|
||||
/* Feedback */
|
||||
|
||||
OutMsg( s_nFhnd, "---------------------------------------------------------------------------" + hb_eol() +;
|
||||
" Version: " + Version() + hb_eol() )
|
||||
OutMsg( s_nFhnd, ;
|
||||
"---------------------------------------------------------------------------" + hb_eol() +;
|
||||
" Version: " + Version() + hb_eol() )
|
||||
#ifdef __HARBOUR__
|
||||
OutMsg( s_nFhnd, " Compiler: " + hb_Compiler() + hb_eol() )
|
||||
OutMsg( s_nFhnd, ;
|
||||
" Compiler: " + hb_Compiler() + hb_eol() )
|
||||
#endif
|
||||
OutMsg( s_nFhnd, " OS: " + OS() + hb_eol() +;
|
||||
" Date, Time: " + DToC( Date() ) + " " + Time() + hb_eol() +;
|
||||
"Shortcut opt.: " + iif( s_lShortcut, "ON", "OFF" ) + hb_eol() +;
|
||||
" Switches: " + cParam + hb_eol() +;
|
||||
"===========================================================================" + hb_eol() )
|
||||
OutMsg( s_nFhnd, ;
|
||||
" OS: " + OS() + hb_eol() +;
|
||||
" Date, Time: " + DToC( Date() ) + " " + Time() + hb_eol() +;
|
||||
"Shortcut opt.: " + iif( s_lShortcut, "ON", "OFF" ) + hb_eol() +;
|
||||
" Switches: " + cParam + hb_eol() +;
|
||||
"===========================================================================" + hb_eol() )
|
||||
|
||||
OutMsg( s_nFhnd, PadR( "R", TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( "No. Line", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
PadR( "TestCall()", TEST_RESULT_COL3_WIDTH ) + " -> " +;
|
||||
PadR( "Result", TEST_RESULT_COL4_WIDTH ) + " | " +;
|
||||
PadR( "Expected", TEST_RESULT_COL5_WIDTH ) + hb_eol() +;
|
||||
"---------------------------------------------------------------------------" + hb_eol() )
|
||||
OutMsg( s_nFhnd, ;
|
||||
PadR( "R", TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( "No. Line", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
PadR( "TestCall()", TEST_RESULT_COL3_WIDTH ) + " -> " +;
|
||||
PadR( "Result", TEST_RESULT_COL4_WIDTH ) + " | " +;
|
||||
"Expected" + hb_eol() +;
|
||||
"---------------------------------------------------------------------------" + hb_eol() )
|
||||
|
||||
/* NOTE: mxNotHere intentionally not declared */
|
||||
PUBLIC mcLongerNameThen10Chars := "Long String Name!"
|
||||
@@ -280,7 +286,7 @@ STATIC PROCEDURE TEST_BEGIN( cParam )
|
||||
PUBLIC maArray := { 9898 }
|
||||
|
||||
#ifndef __XPP__
|
||||
//rddSetDefault( "DBFCDX" )
|
||||
// rddSetDefault( "DBFCDX" )
|
||||
#endif
|
||||
|
||||
bErrorOld := ErrorBlock( {| oError | Break( oError ) } )
|
||||
@@ -330,10 +336,12 @@ FUNCTION TEST_DBFAvail()
|
||||
RETURN s_lDBFAvail
|
||||
|
||||
PROCEDURE TEST_CALL( cBlock, bBlock, xResultExpected )
|
||||
|
||||
LOCAL xResult
|
||||
LOCAL oError
|
||||
LOCAL bOldError
|
||||
LOCAL lPPError
|
||||
LOCAL lRTE
|
||||
LOCAL lFailed
|
||||
LOCAL lSkipped
|
||||
|
||||
@@ -359,20 +367,26 @@ PROCEDURE TEST_CALL( cBlock, bBlock, xResultExpected )
|
||||
|
||||
BEGIN SEQUENCE
|
||||
xResult := Eval( bBlock )
|
||||
lRTE := .F.
|
||||
RECOVER USING oError
|
||||
xResult := ErrorMessage( oError )
|
||||
lRTE := .T.
|
||||
END SEQUENCE
|
||||
|
||||
ErrorBlock( bOldError )
|
||||
|
||||
IF !( ValType( xResult ) == ValType( xResultExpected ) )
|
||||
IF ValType( xResultExpected ) == "C" .AND. ValType( xResult ) $ "ABMO"
|
||||
lFailed := !( XToStr( xResult ) == xResultExpected )
|
||||
ELSE
|
||||
lFailed := .T.
|
||||
ENDIF
|
||||
IF lRTE
|
||||
lFailed := !( XToStr( xResult ) == XToStr( xResultExpected ) )
|
||||
ELSE
|
||||
lFailed := !( xResult == xResultExpected )
|
||||
IF !( ValType( xResult ) == ValType( xResultExpected ) )
|
||||
IF ValType( xResultExpected ) == "C" .AND. ValType( xResult ) $ "ABMO"
|
||||
lFailed := !( XToStr( xResult ) == xResultExpected )
|
||||
ELSE
|
||||
lFailed := .T.
|
||||
ENDIF
|
||||
ELSE
|
||||
lFailed := !( xResult == xResultExpected )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
ENDIF
|
||||
@@ -380,25 +394,23 @@ PROCEDURE TEST_CALL( cBlock, bBlock, xResultExpected )
|
||||
IF s_lShowAll .OR. lFailed .OR. lSkipped .OR. lPPError
|
||||
|
||||
IF lFailed
|
||||
|
||||
OutMsg( s_nFhnd, PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) +;
|
||||
hb_eol() +;
|
||||
Space( 5 ) + " Result: " + XToStr( xResult ) +;
|
||||
hb_eol() +;
|
||||
Space( 5 ) + "Expected: " + XToStr( xResultExpected ) +;
|
||||
hb_eol() )
|
||||
|
||||
OutMsg( s_nFhnd, ;
|
||||
PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
RTrim( cBlock ) +;
|
||||
hb_eol() +;
|
||||
Space( 5 ) + " Result: " + XToStr( xResult ) +;
|
||||
hb_eol() +;
|
||||
Space( 5 ) + "Expected: " + XToStr( xResultExpected ) +;
|
||||
hb_eol() )
|
||||
ELSE
|
||||
|
||||
OutMsg( s_nFhnd, PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) + " -> " +;
|
||||
PadR( XToStr( xResult ), TEST_RESULT_COL4_WIDTH ) + " | " +;
|
||||
PadR( XToStr( xResultExpected ), TEST_RESULT_COL5_WIDTH ) +;
|
||||
hb_eol() )
|
||||
|
||||
OutMsg( s_nFhnd, ;
|
||||
PadR( iif( lFailed, "!", iif( lSkipped, "S", " " ) ), TEST_RESULT_COL1_WIDTH ) + " " +;
|
||||
PadR( Str( s_nCount, 4 ) + " " + ProcName( 1 ) + "(" + LTrim( Str( ProcLine( 1 ), 5 ) ) + ")", TEST_RESULT_COL2_WIDTH ) + " " +;
|
||||
PadR( cBlock, TEST_RESULT_COL3_WIDTH ) + " -> " +;
|
||||
PadR( XToStr( xResult ), TEST_RESULT_COL4_WIDTH ) + " | " +;
|
||||
RTrim( XToStr( xResultExpected ) ) +;
|
||||
hb_eol() )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -424,20 +436,23 @@ STATIC PROCEDURE TEST_END()
|
||||
|
||||
s_nEndTime := Seconds()
|
||||
|
||||
OutMsg( s_nFhnd, "===========================================================================" + hb_eol() +;
|
||||
"Test calls passed: " + Str( s_nPass ) + " ( " + LTrim( Str( ( 1 - ( s_nFail / s_nPass ) ) * 100, 6, 2 ) ) + " % )" + hb_eol() +;
|
||||
"Test calls failed: " + Str( s_nFail ) + " ( " + LTrim( Str( ( s_nFail / s_nPass ) * 100, 6, 2 ) ) + " % )" + hb_eol() +;
|
||||
" ----------" + hb_eol() +;
|
||||
" Total: " + Str( s_nPass + s_nFail ) +;
|
||||
" ( Time elapsed: " + LTrim( Str( s_nEndTime - s_nStartTime ) ) + " seconds )" + hb_eol() +;
|
||||
hb_eol() )
|
||||
OutMsg( s_nFhnd, ;
|
||||
"===========================================================================" + hb_eol() +;
|
||||
"Test calls passed: " + Str( s_nPass ) + " ( " + LTrim( Str( ( 1 - ( s_nFail / s_nPass ) ) * 100, 6, 2 ) ) + " % )" + hb_eol() +;
|
||||
"Test calls failed: " + Str( s_nFail ) + " ( " + LTrim( Str( ( s_nFail / s_nPass ) * 100, 6, 2 ) ) + " % )" + hb_eol() +;
|
||||
" ----------" + hb_eol() +;
|
||||
" Total: " + Str( s_nPass + s_nFail ) +;
|
||||
" ( Time elapsed: " + LTrim( Str( s_nEndTime - s_nStartTime ) ) + " seconds )" + hb_eol() +;
|
||||
hb_eol() )
|
||||
|
||||
IF s_nFail != 0
|
||||
IF "CLIPPER (R)" $ Upper( Version() )
|
||||
OutMsg( s_nFhnd, "WARNING ! Failures detected using CA-Cl*pper." + hb_eol() +;
|
||||
"Please fix those expected results which are not bugs in CA-Cl*pper itself." + hb_eol() )
|
||||
OutMsg( s_nFhnd, ;
|
||||
"WARNING ! Failures detected using CA-Cl*pper." + hb_eol() +;
|
||||
"Please fix those expected results which are not bugs in CA-Cl*pper itself." + hb_eol() )
|
||||
ELSE
|
||||
OutMsg( s_nFhnd, "WARNING ! Failures detected" + hb_eol() )
|
||||
OutMsg( s_nFhnd, ;
|
||||
"WARNING ! Failures detected" + hb_eol() )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@@ -450,6 +465,7 @@ STATIC PROCEDURE TEST_END()
|
||||
RETURN
|
||||
|
||||
FUNCTION XToStr( xValue )
|
||||
|
||||
LOCAL cType := ValType( xValue )
|
||||
|
||||
DO CASE
|
||||
@@ -476,6 +492,7 @@ FUNCTION XToStr( xValue )
|
||||
RETURN ""
|
||||
|
||||
FUNCTION XToStrE( xValue )
|
||||
|
||||
LOCAL cType := ValType( xValue )
|
||||
|
||||
DO CASE
|
||||
@@ -502,6 +519,7 @@ FUNCTION XToStrE( xValue )
|
||||
RETURN ""
|
||||
|
||||
FUNCTION XToStrX( xValue )
|
||||
|
||||
LOCAL cType := ValType( xValue )
|
||||
|
||||
LOCAL tmp
|
||||
@@ -543,6 +561,7 @@ FUNCTION XToStrX( xValue )
|
||||
RETURN ""
|
||||
|
||||
STATIC FUNCTION ErrorMessage( oError )
|
||||
|
||||
LOCAL cMessage := ""
|
||||
LOCAL tmp
|
||||
|
||||
@@ -609,6 +628,7 @@ STATIC FUNCTION ErrorMessage( oError )
|
||||
RETURN cMessage
|
||||
|
||||
STATIC FUNCTION ListToNArray( cString )
|
||||
|
||||
LOCAL aArray := {}
|
||||
LOCAL nPos
|
||||
|
||||
@@ -624,6 +644,7 @@ STATIC FUNCTION ListToNArray( cString )
|
||||
RETURN aArray
|
||||
|
||||
STATIC FUNCTION CMDLGetValue( cCommandLine, cName, cRetVal )
|
||||
|
||||
LOCAL tmp, tmp1
|
||||
|
||||
IF ( tmp := At( cName, cCommandLine ) ) > 0
|
||||
@@ -645,6 +666,7 @@ FUNCTION hb_SToD( cDate )
|
||||
#ifndef __XPP__
|
||||
|
||||
FUNCTION hb_SToD( cDate )
|
||||
|
||||
LOCAL cOldDateFormat
|
||||
LOCAL dDate
|
||||
|
||||
|
||||
Reference in New Issue
Block a user