* *
* partial sync with the 3.4 fork codebase. These are the things
synces for the most part:
- copyright headers
- grammar/typos in comments and some readmes
- comment/whitespace/decorations
- variable scoping in C files
- DO CASE/SWITCH and some other alternate syntax usage
- minimal amount of human readable text in strings
- minor code updates
- HB_TRACE() void * casts for pointers and few other changes to
avoid C compiler warnings
- various other, minor code cleanups
- only Harbour/C code/headers were touched in src, utils, contrib,
include. No 3rd party code, no make files, and with just a few
exceptions, no 'tests' code was touched.
- certain components were not touched were 3.4 diverged too much
already, like f.e. hbmk2, hbssl, hbcurl, hbexpat
- the goal was that no actual program logic should be altered by
these changes. Except some possible minor exceptions, any such
change is probably a bug in this patch.
It's a massive patch, if you find anything broken after it, please
open an Issue with the details. Build test was done on macOS.
The goal is make it easier to see what actual code/logic was changed
in 3.4 compared to 3.2 and to make patches easier to apply in both
ways.
1444 lines
62 KiB
Plaintext
1444 lines
62 KiB
Plaintext
/*
|
|
* Harbour class/OOP test
|
|
*
|
|
* Copyright 2006 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file LICENSE.txt. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301 USA (or visit https://www.gnu.org/licenses/).
|
|
*
|
|
* As a special exception, the Harbour Project gives permission for
|
|
* additional uses of the text contained in its release of Harbour.
|
|
*
|
|
* The exception is that, if you link the Harbour libraries with other
|
|
* files to produce an executable, this does not by itself cause the
|
|
* resulting executable to be covered by the GNU General Public License.
|
|
* Your use of that executable is in no way restricted on account of
|
|
* linking the Harbour library code into it.
|
|
*
|
|
* This exception does not however invalidate any other reasons why
|
|
* the executable file might be covered by the GNU General Public License.
|
|
*
|
|
* This exception applies only to the code released by the Harbour
|
|
* Project under the name Harbour. If you copy code from other
|
|
* Harbour Project or Free Software Foundation releases into a copy of
|
|
* Harbour, as the General Public License permits, the exception does
|
|
* not apply to the code that you add in this way. To avoid misleading
|
|
* anyone as to the status of such modified files, you must delete
|
|
* this exception notice from them.
|
|
*
|
|
* If you write modifications of your own for Harbour, it is your choice
|
|
* whether to permit this exception to apply to your modifications.
|
|
* If you do not wish that, delete this exception notice.
|
|
*
|
|
*/
|
|
|
|
#include "rt_main.ch"
|
|
|
|
/* Don't change the position of this #include. */
|
|
#include "rt_vars.ch"
|
|
|
|
|
|
#include "hbclass.ch"
|
|
|
|
MEMVAR objHolder, cDtorResult
|
|
|
|
PROCEDURE Main_CLASS()
|
|
|
|
LOCAL oValue, aRef
|
|
|
|
PRIVATE objHolder, cDtorResult
|
|
|
|
#ifdef __HARBOUR__
|
|
|
|
/* Test destructors */
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 0 )
|
|
HBTEST oValue:type IS 0
|
|
HBTEST oValue := NIL IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS "No references to self."
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 1 )
|
|
HBTEST oValue:type IS 1
|
|
HBTEST oValue := NIL IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS "Reference to self in instance variable."
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 2 )
|
|
HBTEST oValue:type IS 2
|
|
HBTEST oValue := NIL IS "E 45 BASE 1301 Object destructor failure (Reference to freed block) OS:0 #:0 "
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS "Reference to self in class variable."
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 3 )
|
|
HBTEST oValue:type IS 3
|
|
HBTEST oValue := NIL IS "E 45 BASE 1301 Object destructor failure (Reference to freed block) OS:0 #:0 "
|
|
HBTEST ValType( objHolder ) IS "A"
|
|
HBTEST Len( objHolder ) IS 0
|
|
HBTEST cDtorResult IS "Reference to self in private memvar."
|
|
|
|
|
|
/* Tests with cross references and releasing by Garbage Collector */
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 0 )
|
|
HBTEST oValue:type IS 0
|
|
/* create cross reference */
|
|
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
|
|
HBTEST oValue := NIL IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS ""
|
|
HBTEST hb_gcAll() IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS "No references to self."
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 1 )
|
|
HBTEST oValue:type IS 1
|
|
/* create cross reference */
|
|
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
|
|
HBTEST oValue := NIL IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS ""
|
|
HBTEST hb_gcAll() IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS "Reference to self in instance variable."
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 2 )
|
|
HBTEST oValue:type IS 2
|
|
/* create cross reference */
|
|
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
|
|
HBTEST oValue := NIL IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS ""
|
|
HBTEST hb_gcAll() IS "E 45 BASE 1302 Object destructor failure (Reference to freed block) OS:0 #:0 "
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS "Reference to self in class variable."
|
|
|
|
HBTEST cDtorResult := "" IS ""
|
|
HBTEST objHolder := NIL IS NIL
|
|
oValue := DTORCLASS():NEW( 3 )
|
|
HBTEST oValue:type IS 3
|
|
/* create cross reference */
|
|
aRef := { oValue, NIL }; aRef[ 2 ] := aRef; aRef := NIL
|
|
HBTEST oValue := NIL IS NIL
|
|
HBTEST objHolder IS NIL
|
|
HBTEST cDtorResult IS ""
|
|
HBTEST hb_gcAll() IS "E 45 BASE 1302 Object destructor failure (Reference to freed block) OS:0 #:0 "
|
|
HBTEST ValType( objHolder ) IS "A"
|
|
HBTEST Len( objHolder ) IS 0
|
|
HBTEST cDtorResult IS "Reference to self in private memvar."
|
|
|
|
|
|
|
|
/* Test instance area allocating and casting */
|
|
|
|
oValue := IVARSCLASS4():new()
|
|
|
|
HBTEST oValue:x1 IS "(x1)"
|
|
HBTEST oValue:y1 IS "(y1)"
|
|
HBTEST oValue:z1 IS "(z1)"
|
|
HBTEST oValue:x2 IS "(x2)"
|
|
HBTEST oValue:y2 IS "(y2)"
|
|
HBTEST oValue:z2 IS "(z2)"
|
|
HBTEST oValue:x3 IS "(x3)"
|
|
HBTEST oValue:y3 IS "(y3)"
|
|
HBTEST oValue:z3 IS "(z3)"
|
|
HBTEST oValue:x4 IS "(x4)"
|
|
HBTEST oValue:y4 IS "(y4)"
|
|
HBTEST oValue:z4 IS "(z4)"
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: (x1) (y1) (z1) (x2) (y2) (z2) (x3) (y3) (z3) (x4) (y4) (z4)"
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* simple assignment... */
|
|
HBTEST oValue:x1 := " X1 " IS " X1 "
|
|
HBTEST oValue:y1 := " Y1 " IS " Y1 "
|
|
HBTEST oValue:z1 := " Z1 " IS " Z1 "
|
|
HBTEST oValue:x2 := " X2 " IS " X2 "
|
|
HBTEST oValue:y2 := " Y2 " IS " Y2 "
|
|
HBTEST oValue:z2 := " Z2 " IS " Z2 "
|
|
HBTEST oValue:x3 := " X3 " IS " X3 "
|
|
HBTEST oValue:y3 := " Y3 " IS " Y3 "
|
|
HBTEST oValue:z3 := " Z3 " IS " Z3 "
|
|
HBTEST oValue:x4 := " X4 " IS " X4 "
|
|
HBTEST oValue:y4 := " Y4 " IS " Y4 "
|
|
HBTEST oValue:z4 := " Z4 " IS " Z4 "
|
|
|
|
HBTEST oValue:x1 IS " X1 "
|
|
HBTEST oValue:y1 IS " Y1 "
|
|
HBTEST oValue:z1 IS " Z1 "
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: X1 Y1 Z1 X2 Y2 Z2 X3 Y3 Z3 X4 Y4 Z4 "
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting IVARSCLASS1 instance variables... */
|
|
HBTEST oValue:IVARSCLASS1:x1 := "[X1]" IS "[X1]"
|
|
HBTEST oValue:IVARSCLASS1:y1 := "[Y1]" IS "[Y1]"
|
|
HBTEST oValue:IVARSCLASS1:z1 := "[Z1]" IS "[Z1]"
|
|
|
|
HBTEST oValue:x1 IS "[X1]"
|
|
HBTEST oValue:y1 IS "[Y1]"
|
|
HBTEST oValue:z1 IS "[Z1]"
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: [X1] [Y1] [Z1] X2 Y2 Z2 X3 Y3 Z3 X4 Y4 Z4 "
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting IVARSCLASS2 instance variables... */
|
|
HBTEST oValue:IVARSCLASS2:x2 := "[X2]" IS "[X2]"
|
|
HBTEST oValue:IVARSCLASS2:y2 := "[Y2]" IS "[Y2]"
|
|
HBTEST oValue:IVARSCLASS2:z2 := "[Z2]" IS "[Z2]"
|
|
|
|
HBTEST oValue:x1 IS "[X1]"
|
|
HBTEST oValue:y1 IS "[Y1]"
|
|
HBTEST oValue:z1 IS "[Z1]"
|
|
HBTEST oValue:x2 IS "[X2]"
|
|
HBTEST oValue:y2 IS "[Y2]"
|
|
HBTEST oValue:z2 IS "[Z2]"
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: [X1] [Y1] [Z1] [X2] [Y2] [Z2] X3 Y3 Z3 X4 Y4 Z4 "
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting IVARSCLASS3 instance variables... */
|
|
HBTEST oValue:IVARSCLASS3:x3 := "[X3]" IS "[X3]"
|
|
HBTEST oValue:IVARSCLASS3:y3 := "[Y3]" IS "[Y3]"
|
|
HBTEST oValue:IVARSCLASS3:z3 := "[Z3]" IS "[Z3]"
|
|
|
|
HBTEST oValue:x1 IS "[X1]"
|
|
HBTEST oValue:y1 IS "[Y1]"
|
|
HBTEST oValue:z1 IS "[Z1]"
|
|
HBTEST oValue:x2 IS "[X2]"
|
|
HBTEST oValue:y2 IS "[Y2]"
|
|
HBTEST oValue:z2 IS "[Z2]"
|
|
HBTEST oValue:x3 IS "[X3]"
|
|
HBTEST oValue:y3 IS "[Y3]"
|
|
HBTEST oValue:z3 IS "[Z3]"
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: [X1] [Y1] [Z1] [X2] [Y2] [Z2] [X3] [Y3] [Z3] X4 Y4 Z4 "
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting IVARSCLASS4 instance variables... */
|
|
HBTEST oValue:IVARSCLASS4:x4 := "[X4]" IS "[X4]"
|
|
HBTEST oValue:IVARSCLASS4:y4 := "[Y4]" IS "[Y4]"
|
|
HBTEST oValue:IVARSCLASS4:z4 := "[Z4]" IS "[Z4]"
|
|
|
|
HBTEST oValue:x1 IS "[X1]"
|
|
HBTEST oValue:y1 IS "[Y1]"
|
|
HBTEST oValue:z1 IS "[Z1]"
|
|
HBTEST oValue:x2 IS "[X2]"
|
|
HBTEST oValue:y2 IS "[Y2]"
|
|
HBTEST oValue:z2 IS "[Z2]"
|
|
HBTEST oValue:x3 IS "[X3]"
|
|
HBTEST oValue:y3 IS "[Y3]"
|
|
HBTEST oValue:z3 IS "[Z3]"
|
|
HBTEST oValue:x4 IS "[X4]"
|
|
HBTEST oValue:y4 IS "[Y4]"
|
|
HBTEST oValue:z4 IS "[Z4]"
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: [X1] [Y1] [Z1] [X2] [Y2] [Z2] [X3] [Y3] [Z3] [X4] [Y4] [Z4]"
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting IVARSCLASS3:IVARSCLASS1 instance variables... */
|
|
HBTEST oValue:IVARSCLASS3:IVARSCLASS1:x1 := "<X1>" IS "<X1>"
|
|
HBTEST oValue:IVARSCLASS3:IVARSCLASS1:y1 := "<Y1>" IS "<Y1>"
|
|
HBTEST oValue:IVARSCLASS3:IVARSCLASS1:z1 := "<Z1>" IS "<Z1>"
|
|
|
|
HBTEST oValue:x1 IS "<X1>"
|
|
HBTEST oValue:y1 IS "<Y1>"
|
|
HBTEST oValue:z1 IS "<Z1>"
|
|
HBTEST oValue:x2 IS "[X2]"
|
|
HBTEST oValue:y2 IS "[Y2]"
|
|
HBTEST oValue:z2 IS "[Z2]"
|
|
HBTEST oValue:x3 IS "[X3]"
|
|
HBTEST oValue:y3 IS "[Y3]"
|
|
HBTEST oValue:z3 IS "[Z3]"
|
|
HBTEST oValue:x4 IS "[X4]"
|
|
HBTEST oValue:y4 IS "[Y4]"
|
|
HBTEST oValue:z4 IS "[Z4]"
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: <X1> <Y1> <Z1> [X2] [Y2] [Z2] [X3] [Y3] [Z3] [X4] [Y4] [Z4]"
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting IVARSCLASS3:IVARSCLASS2 instance variables... */
|
|
HBTEST oValue:IVARSCLASS3:IVARSCLASS2:x2 := "<X2>" IS "<X2>"
|
|
HBTEST oValue:IVARSCLASS3:IVARSCLASS2:y2 := "<Y2>" IS "<Y2>"
|
|
HBTEST oValue:IVARSCLASS3:IVARSCLASS2:z2 := "<Z2>" IS "<Z2>"
|
|
|
|
HBTEST oValue:x1 IS "<X1>"
|
|
HBTEST oValue:y1 IS "<Y1>"
|
|
HBTEST oValue:z1 IS "<Z1>"
|
|
HBTEST oValue:x2 IS "<X2>"
|
|
HBTEST oValue:y2 IS "<Y2>"
|
|
HBTEST oValue:z2 IS "<Z2>"
|
|
HBTEST oValue:x3 IS "[X3]"
|
|
HBTEST oValue:y3 IS "[Y3]"
|
|
HBTEST oValue:z3 IS "[Z3]"
|
|
HBTEST oValue:x4 IS "[X4]"
|
|
HBTEST oValue:y4 IS "[Y4]"
|
|
HBTEST oValue:z4 IS "[Z4]"
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: <X1> <Y1> <Z1> <X2> <Y2> <Z2> [X3] [Y3] [Z3] [X4] [Y4] [Z4]"
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting SUPER instance variables... */
|
|
HBTEST oValue:super:x1 := "{X1}" IS "{X1}"
|
|
HBTEST oValue:super:y1 := "{Y1}" IS "{Y1}"
|
|
HBTEST oValue:super:z1 := "{Z1}" IS "{Z1}"
|
|
HBTEST oValue:super:x2 := "{X2}" IS "{X2}"
|
|
HBTEST oValue:super:y2 := "{Y2}" IS "{Y2}"
|
|
HBTEST oValue:super:z2 := "{Z2}" IS "{Z2}"
|
|
HBTEST oValue:super:x3 := "{X3}" IS "{X3}"
|
|
HBTEST oValue:super:y3 := "{Y3}" IS "{Y3}"
|
|
HBTEST oValue:super:z3 := "{Z3}" IS "{Z3}"
|
|
|
|
HBTEST oValue:x1 IS "{X1}"
|
|
HBTEST oValue:y1 IS "{Y1}"
|
|
HBTEST oValue:z1 IS "{Z1}"
|
|
HBTEST oValue:x2 IS "{X2}"
|
|
HBTEST oValue:y2 IS "{Y2}"
|
|
HBTEST oValue:z2 IS "{Z2}"
|
|
HBTEST oValue:x3 IS "{X3}"
|
|
HBTEST oValue:y3 IS "{Y3}"
|
|
HBTEST oValue:z3 IS "{Z3}"
|
|
HBTEST oValue:x4 IS "[X4]"
|
|
HBTEST oValue:y4 IS "[Y4]"
|
|
HBTEST oValue:z4 IS "[Z4]"
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[12]: {X1} {Y1} {Z1} {X2} {Y2} {Z2} {X3} {Y3} {Z3} [X4] [Y4] [Z4]"
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:IVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
|
|
/* Test class variables allocating and casting */
|
|
|
|
oValue := CVARSCLASS4():new()
|
|
|
|
HBTEST oValue:x1 IS "(x1)"
|
|
HBTEST oValue:y1 IS "(y1)"
|
|
HBTEST oValue:z1 IS "(z1)"
|
|
HBTEST oValue:x2 IS "(x2)"
|
|
HBTEST oValue:y2 IS "(y2)"
|
|
HBTEST oValue:z2 IS "(z2)"
|
|
HBTEST oValue:x3 IS "(x3)"
|
|
HBTEST oValue:y3 IS "(y3)"
|
|
HBTEST oValue:z3 IS "(z3)"
|
|
HBTEST oValue:x4 IS "(x4)"
|
|
HBTEST oValue:y4 IS "(y4)"
|
|
HBTEST oValue:z4 IS "(z4)"
|
|
HBTEST oValue:CVARSCLASS1:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS1:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS1:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS2:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS2:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS2:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS2:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS2:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS2:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS3:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS3:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS3:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS3:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS3:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS3:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS3:x3 IS "(x3)"
|
|
HBTEST oValue:CVARSCLASS3:y3 IS "(y3)"
|
|
HBTEST oValue:CVARSCLASS3:z3 IS "(z3)"
|
|
HBTEST oValue:CVARSCLASS4:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS4:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS4:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS4:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS4:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS4:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS4:x3 IS "(x3)"
|
|
HBTEST oValue:CVARSCLASS4:y3 IS "(y3)"
|
|
HBTEST oValue:CVARSCLASS4:z3 IS "(z3)"
|
|
HBTEST oValue:CVARSCLASS4:x4 IS "(x4)"
|
|
HBTEST oValue:CVARSCLASS4:y4 IS "(y4)"
|
|
HBTEST oValue:CVARSCLASS4:z4 IS "(z4)"
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS2:classH ) IS 6
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS3:classH ) IS 9
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS4:classH ) IS 12
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 12
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* simple assignment... */
|
|
HBTEST oValue:x1 := " X1 " IS " X1 "
|
|
HBTEST oValue:y1 := " Y1 " IS " Y1 "
|
|
HBTEST oValue:z1 := " Z1 " IS " Z1 "
|
|
HBTEST oValue:x2 := " X2 " IS " X2 "
|
|
HBTEST oValue:y2 := " Y2 " IS " Y2 "
|
|
HBTEST oValue:z2 := " Z2 " IS " Z2 "
|
|
HBTEST oValue:x3 := " X3 " IS " X3 "
|
|
HBTEST oValue:y3 := " Y3 " IS " Y3 "
|
|
HBTEST oValue:z3 := " Z3 " IS " Z3 "
|
|
HBTEST oValue:x4 := " X4 " IS " X4 "
|
|
HBTEST oValue:y4 := " Y4 " IS " Y4 "
|
|
HBTEST oValue:z4 := " Z4 " IS " Z4 "
|
|
|
|
HBTEST oValue:x1 IS " X1 "
|
|
HBTEST oValue:y1 IS " Y1 "
|
|
HBTEST oValue:z1 IS " Z1 "
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:CVARSCLASS1:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS1:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS1:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS2:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS2:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS2:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS2:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS2:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS2:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS3:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS3:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS3:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS3:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS3:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS3:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS3:x3 IS "(x3)"
|
|
HBTEST oValue:CVARSCLASS3:y3 IS "(y3)"
|
|
HBTEST oValue:CVARSCLASS3:z3 IS "(z3)"
|
|
HBTEST oValue:CVARSCLASS4:x1 IS " X1 "
|
|
HBTEST oValue:CVARSCLASS4:y1 IS " Y1 "
|
|
HBTEST oValue:CVARSCLASS4:z1 IS " Z1 "
|
|
HBTEST oValue:CVARSCLASS4:x2 IS " X2 "
|
|
HBTEST oValue:CVARSCLASS4:y2 IS " Y2 "
|
|
HBTEST oValue:CVARSCLASS4:z2 IS " Z2 "
|
|
HBTEST oValue:CVARSCLASS4:x3 IS " X3 "
|
|
HBTEST oValue:CVARSCLASS4:y3 IS " Y3 "
|
|
HBTEST oValue:CVARSCLASS4:z3 IS " Z3 "
|
|
HBTEST oValue:CVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:CVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:CVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS2:classH ) IS 6
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS3:classH ) IS 9
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS4:classH ) IS 12
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 12
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting CVARSCLASS1 class variables... */
|
|
HBTEST oValue:CVARSCLASS1:x1 := "[X1]" IS "[X1]"
|
|
HBTEST oValue:CVARSCLASS1:y1 := "[Y1]" IS "[Y1]"
|
|
HBTEST oValue:CVARSCLASS1:z1 := "[Z1]" IS "[Z1]"
|
|
|
|
HBTEST oValue:x1 IS " X1 "
|
|
HBTEST oValue:y1 IS " Y1 "
|
|
HBTEST oValue:z1 IS " Z1 "
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:CVARSCLASS1:x1 IS "[X1]"
|
|
HBTEST oValue:CVARSCLASS1:y1 IS "[Y1]"
|
|
HBTEST oValue:CVARSCLASS1:z1 IS "[Z1]"
|
|
HBTEST oValue:CVARSCLASS2:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS2:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS2:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS2:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS2:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS2:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS3:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS3:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS3:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS3:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS3:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS3:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS3:x3 IS "(x3)"
|
|
HBTEST oValue:CVARSCLASS3:y3 IS "(y3)"
|
|
HBTEST oValue:CVARSCLASS3:z3 IS "(z3)"
|
|
HBTEST oValue:CVARSCLASS4:x1 IS " X1 "
|
|
HBTEST oValue:CVARSCLASS4:y1 IS " Y1 "
|
|
HBTEST oValue:CVARSCLASS4:z1 IS " Z1 "
|
|
HBTEST oValue:CVARSCLASS4:x2 IS " X2 "
|
|
HBTEST oValue:CVARSCLASS4:y2 IS " Y2 "
|
|
HBTEST oValue:CVARSCLASS4:z2 IS " Z2 "
|
|
HBTEST oValue:CVARSCLASS4:x3 IS " X3 "
|
|
HBTEST oValue:CVARSCLASS4:y3 IS " Y3 "
|
|
HBTEST oValue:CVARSCLASS4:z3 IS " Z3 "
|
|
HBTEST oValue:CVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:CVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:CVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS2:classH ) IS 6
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS3:classH ) IS 9
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS4:classH ) IS 12
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 12
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting CVARSCLASS2 class variables... */
|
|
HBTEST oValue:CVARSCLASS2:x1 := "{X1}" IS "{X1}"
|
|
HBTEST oValue:CVARSCLASS2:y1 := "{Y1}" IS "{Y1}"
|
|
HBTEST oValue:CVARSCLASS2:z1 := "{Z1}" IS "{Z1}"
|
|
HBTEST oValue:CVARSCLASS2:x2 := "{X2}" IS "{X2}"
|
|
HBTEST oValue:CVARSCLASS2:y2 := "{Y2}" IS "{Y2}"
|
|
HBTEST oValue:CVARSCLASS2:z2 := "{Z2}" IS "{Z2}"
|
|
|
|
HBTEST oValue:x1 IS " X1 "
|
|
HBTEST oValue:y1 IS " Y1 "
|
|
HBTEST oValue:z1 IS " Z1 "
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:CVARSCLASS1:x1 IS "[X1]"
|
|
HBTEST oValue:CVARSCLASS1:y1 IS "[Y1]"
|
|
HBTEST oValue:CVARSCLASS1:z1 IS "[Z1]"
|
|
HBTEST oValue:CVARSCLASS2:x1 IS "{X1}"
|
|
HBTEST oValue:CVARSCLASS2:y1 IS "{Y1}"
|
|
HBTEST oValue:CVARSCLASS2:z1 IS "{Z1}"
|
|
HBTEST oValue:CVARSCLASS2:x2 IS "{X2}"
|
|
HBTEST oValue:CVARSCLASS2:y2 IS "{Y2}"
|
|
HBTEST oValue:CVARSCLASS2:z2 IS "{Z2}"
|
|
HBTEST oValue:CVARSCLASS3:x1 IS "(x1)"
|
|
HBTEST oValue:CVARSCLASS3:y1 IS "(y1)"
|
|
HBTEST oValue:CVARSCLASS3:z1 IS "(z1)"
|
|
HBTEST oValue:CVARSCLASS3:x2 IS "(x2)"
|
|
HBTEST oValue:CVARSCLASS3:y2 IS "(y2)"
|
|
HBTEST oValue:CVARSCLASS3:z2 IS "(z2)"
|
|
HBTEST oValue:CVARSCLASS3:x3 IS "(x3)"
|
|
HBTEST oValue:CVARSCLASS3:y3 IS "(y3)"
|
|
HBTEST oValue:CVARSCLASS3:z3 IS "(z3)"
|
|
HBTEST oValue:CVARSCLASS4:x1 IS " X1 "
|
|
HBTEST oValue:CVARSCLASS4:y1 IS " Y1 "
|
|
HBTEST oValue:CVARSCLASS4:z1 IS " Z1 "
|
|
HBTEST oValue:CVARSCLASS4:x2 IS " X2 "
|
|
HBTEST oValue:CVARSCLASS4:y2 IS " Y2 "
|
|
HBTEST oValue:CVARSCLASS4:z2 IS " Z2 "
|
|
HBTEST oValue:CVARSCLASS4:x3 IS " X3 "
|
|
HBTEST oValue:CVARSCLASS4:y3 IS " Y3 "
|
|
HBTEST oValue:CVARSCLASS4:z3 IS " Z3 "
|
|
HBTEST oValue:CVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:CVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:CVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS2:classH ) IS 6
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS3:classH ) IS 9
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS4:classH ) IS 12
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 12
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
/* Setting CVARSCLASS3 class variables... */
|
|
HBTEST oValue:CVARSCLASS3:x1 := "<X1>" IS "<X1>"
|
|
HBTEST oValue:CVARSCLASS3:y1 := "<Y1>" IS "<Y1>"
|
|
HBTEST oValue:CVARSCLASS3:z1 := "<Z1>" IS "<Z1>"
|
|
HBTEST oValue:CVARSCLASS3:x2 := "<X2>" IS "<X2>"
|
|
HBTEST oValue:CVARSCLASS3:y2 := "<Y2>" IS "<Y2>"
|
|
HBTEST oValue:CVARSCLASS3:z2 := "<Z2>" IS "<Z2>"
|
|
HBTEST oValue:CVARSCLASS3:x3 := "<X3>" IS "<X3>"
|
|
HBTEST oValue:CVARSCLASS3:y3 := "<Y3>" IS "<Y3>"
|
|
HBTEST oValue:CVARSCLASS3:z3 := "<Z3>" IS "<Z3>"
|
|
|
|
HBTEST oValue:x1 IS " X1 "
|
|
HBTEST oValue:y1 IS " Y1 "
|
|
HBTEST oValue:z1 IS " Z1 "
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:CVARSCLASS1:x1 IS "[X1]"
|
|
HBTEST oValue:CVARSCLASS1:y1 IS "[Y1]"
|
|
HBTEST oValue:CVARSCLASS1:z1 IS "[Z1]"
|
|
HBTEST oValue:CVARSCLASS2:x1 IS "{X1}"
|
|
HBTEST oValue:CVARSCLASS2:y1 IS "{Y1}"
|
|
HBTEST oValue:CVARSCLASS2:z1 IS "{Z1}"
|
|
HBTEST oValue:CVARSCLASS2:x2 IS "{X2}"
|
|
HBTEST oValue:CVARSCLASS2:y2 IS "{Y2}"
|
|
HBTEST oValue:CVARSCLASS2:z2 IS "{Z2}"
|
|
HBTEST oValue:CVARSCLASS3:x1 IS "<X1>"
|
|
HBTEST oValue:CVARSCLASS3:y1 IS "<Y1>"
|
|
HBTEST oValue:CVARSCLASS3:z1 IS "<Z1>"
|
|
HBTEST oValue:CVARSCLASS3:x2 IS "<X2>"
|
|
HBTEST oValue:CVARSCLASS3:y2 IS "<Y2>"
|
|
HBTEST oValue:CVARSCLASS3:z2 IS "<Z2>"
|
|
HBTEST oValue:CVARSCLASS3:x3 IS "<X3>"
|
|
HBTEST oValue:CVARSCLASS3:y3 IS "<Y3>"
|
|
HBTEST oValue:CVARSCLASS3:z3 IS "<Z3>"
|
|
HBTEST oValue:CVARSCLASS4:x1 IS " X1 "
|
|
HBTEST oValue:CVARSCLASS4:y1 IS " Y1 "
|
|
HBTEST oValue:CVARSCLASS4:z1 IS " Z1 "
|
|
HBTEST oValue:CVARSCLASS4:x2 IS " X2 "
|
|
HBTEST oValue:CVARSCLASS4:y2 IS " Y2 "
|
|
HBTEST oValue:CVARSCLASS4:z2 IS " Z2 "
|
|
HBTEST oValue:CVARSCLASS4:x3 IS " X3 "
|
|
HBTEST oValue:CVARSCLASS4:y3 IS " Y3 "
|
|
HBTEST oValue:CVARSCLASS4:z3 IS " Z3 "
|
|
HBTEST oValue:CVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:CVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:CVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS2:classH ) IS 6
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS3:classH ) IS 9
|
|
HBTEST __cls_CntClsData( oValue:CVARSCLASS4:classH ) IS 12
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 12
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:CVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 0
|
|
|
|
|
|
/* Test shared class variables allocating and casting */
|
|
|
|
oValue := SVARSCLASS4():new()
|
|
|
|
HBTEST oValue:x1 IS "(x1)"
|
|
HBTEST oValue:y1 IS "(y1)"
|
|
HBTEST oValue:z1 IS "(z1)"
|
|
HBTEST oValue:x2 IS "(x2)"
|
|
HBTEST oValue:y2 IS "(y2)"
|
|
HBTEST oValue:z2 IS "(z2)"
|
|
HBTEST oValue:x3 IS "(x3)"
|
|
HBTEST oValue:y3 IS "(y3)"
|
|
HBTEST oValue:z3 IS "(z3)"
|
|
HBTEST oValue:x4 IS "(x4)"
|
|
HBTEST oValue:y4 IS "(y4)"
|
|
HBTEST oValue:z4 IS "(z4)"
|
|
HBTEST oValue:SVARSCLASS1:x1 IS "(x1)"
|
|
HBTEST oValue:SVARSCLASS1:y1 IS "(y1)"
|
|
HBTEST oValue:SVARSCLASS1:z1 IS "(z1)"
|
|
HBTEST oValue:SVARSCLASS2:x1 IS "(x1)"
|
|
HBTEST oValue:SVARSCLASS2:y1 IS "(y1)"
|
|
HBTEST oValue:SVARSCLASS2:z1 IS "(z1)"
|
|
HBTEST oValue:SVARSCLASS2:x2 IS "(x2)"
|
|
HBTEST oValue:SVARSCLASS2:y2 IS "(y2)"
|
|
HBTEST oValue:SVARSCLASS2:z2 IS "(z2)"
|
|
HBTEST oValue:SVARSCLASS3:x1 IS "(x1)"
|
|
HBTEST oValue:SVARSCLASS3:y1 IS "(y1)"
|
|
HBTEST oValue:SVARSCLASS3:z1 IS "(z1)"
|
|
HBTEST oValue:SVARSCLASS3:x2 IS "(x2)"
|
|
HBTEST oValue:SVARSCLASS3:y2 IS "(y2)"
|
|
HBTEST oValue:SVARSCLASS3:z2 IS "(z2)"
|
|
HBTEST oValue:SVARSCLASS3:x3 IS "(x3)"
|
|
HBTEST oValue:SVARSCLASS3:y3 IS "(y3)"
|
|
HBTEST oValue:SVARSCLASS3:z3 IS "(z3)"
|
|
HBTEST oValue:SVARSCLASS4:x1 IS "(x1)"
|
|
HBTEST oValue:SVARSCLASS4:y1 IS "(y1)"
|
|
HBTEST oValue:SVARSCLASS4:z1 IS "(z1)"
|
|
HBTEST oValue:SVARSCLASS4:x2 IS "(x2)"
|
|
HBTEST oValue:SVARSCLASS4:y2 IS "(y2)"
|
|
HBTEST oValue:SVARSCLASS4:z2 IS "(z2)"
|
|
HBTEST oValue:SVARSCLASS4:x3 IS "(x3)"
|
|
HBTEST oValue:SVARSCLASS4:y3 IS "(y3)"
|
|
HBTEST oValue:SVARSCLASS4:z3 IS "(z3)"
|
|
HBTEST oValue:SVARSCLASS4:x4 IS "(x4)"
|
|
HBTEST oValue:SVARSCLASS4:y4 IS "(y4)"
|
|
HBTEST oValue:SVARSCLASS4:z4 IS "(z4)"
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS2:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS3:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS4:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 3
|
|
|
|
/* simple assignment... */
|
|
HBTEST oValue:x1 := " X1 " IS " X1 "
|
|
HBTEST oValue:y1 := " Y1 " IS " Y1 "
|
|
HBTEST oValue:z1 := " Z1 " IS " Z1 "
|
|
HBTEST oValue:x2 := " X2 " IS " X2 "
|
|
HBTEST oValue:y2 := " Y2 " IS " Y2 "
|
|
HBTEST oValue:z2 := " Z2 " IS " Z2 "
|
|
HBTEST oValue:x3 := " X3 " IS " X3 "
|
|
HBTEST oValue:y3 := " Y3 " IS " Y3 "
|
|
HBTEST oValue:z3 := " Z3 " IS " Z3 "
|
|
HBTEST oValue:x4 := " X4 " IS " X4 "
|
|
HBTEST oValue:y4 := " Y4 " IS " Y4 "
|
|
HBTEST oValue:z4 := " Z4 " IS " Z4 "
|
|
|
|
HBTEST oValue:x1 IS " X1 "
|
|
HBTEST oValue:y1 IS " Y1 "
|
|
HBTEST oValue:z1 IS " Z1 "
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:SVARSCLASS1:x1 IS " X1 "
|
|
HBTEST oValue:SVARSCLASS1:y1 IS " Y1 "
|
|
HBTEST oValue:SVARSCLASS1:z1 IS " Z1 "
|
|
HBTEST oValue:SVARSCLASS2:x1 IS " X1 "
|
|
HBTEST oValue:SVARSCLASS2:y1 IS " Y1 "
|
|
HBTEST oValue:SVARSCLASS2:z1 IS " Z1 "
|
|
HBTEST oValue:SVARSCLASS2:x2 IS " X2 "
|
|
HBTEST oValue:SVARSCLASS2:y2 IS " Y2 "
|
|
HBTEST oValue:SVARSCLASS2:z2 IS " Z2 "
|
|
HBTEST oValue:SVARSCLASS3:x1 IS " X1 "
|
|
HBTEST oValue:SVARSCLASS3:y1 IS " Y1 "
|
|
HBTEST oValue:SVARSCLASS3:z1 IS " Z1 "
|
|
HBTEST oValue:SVARSCLASS3:x2 IS " X2 "
|
|
HBTEST oValue:SVARSCLASS3:y2 IS " Y2 "
|
|
HBTEST oValue:SVARSCLASS3:z2 IS " Z2 "
|
|
HBTEST oValue:SVARSCLASS3:x3 IS " X3 "
|
|
HBTEST oValue:SVARSCLASS3:y3 IS " Y3 "
|
|
HBTEST oValue:SVARSCLASS3:z3 IS " Z3 "
|
|
HBTEST oValue:SVARSCLASS4:x1 IS " X1 "
|
|
HBTEST oValue:SVARSCLASS4:y1 IS " Y1 "
|
|
HBTEST oValue:SVARSCLASS4:z1 IS " Z1 "
|
|
HBTEST oValue:SVARSCLASS4:x2 IS " X2 "
|
|
HBTEST oValue:SVARSCLASS4:y2 IS " Y2 "
|
|
HBTEST oValue:SVARSCLASS4:z2 IS " Z2 "
|
|
HBTEST oValue:SVARSCLASS4:x3 IS " X3 "
|
|
HBTEST oValue:SVARSCLASS4:y3 IS " Y3 "
|
|
HBTEST oValue:SVARSCLASS4:z3 IS " Z3 "
|
|
HBTEST oValue:SVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:SVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:SVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS2:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS3:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS4:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 3
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
|
|
/* Setting SVARSCLASS1 class variables... */
|
|
HBTEST oValue:SVARSCLASS1:x1 := "[X1]" IS "[X1]"
|
|
HBTEST oValue:SVARSCLASS1:y1 := "[Y1]" IS "[Y1]"
|
|
HBTEST oValue:SVARSCLASS1:z1 := "[Z1]" IS "[Z1]"
|
|
|
|
HBTEST oValue:x1 IS "[X1]"
|
|
HBTEST oValue:y1 IS "[Y1]"
|
|
HBTEST oValue:z1 IS "[Z1]"
|
|
HBTEST oValue:x2 IS " X2 "
|
|
HBTEST oValue:y2 IS " Y2 "
|
|
HBTEST oValue:z2 IS " Z2 "
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:SVARSCLASS1:x1 IS "[X1]"
|
|
HBTEST oValue:SVARSCLASS1:y1 IS "[Y1]"
|
|
HBTEST oValue:SVARSCLASS1:z1 IS "[Z1]"
|
|
HBTEST oValue:SVARSCLASS2:x1 IS "[X1]"
|
|
HBTEST oValue:SVARSCLASS2:y1 IS "[Y1]"
|
|
HBTEST oValue:SVARSCLASS2:z1 IS "[Z1]"
|
|
HBTEST oValue:SVARSCLASS2:x2 IS " X2 "
|
|
HBTEST oValue:SVARSCLASS2:y2 IS " Y2 "
|
|
HBTEST oValue:SVARSCLASS2:z2 IS " Z2 "
|
|
HBTEST oValue:SVARSCLASS3:x1 IS "[X1]"
|
|
HBTEST oValue:SVARSCLASS3:y1 IS "[Y1]"
|
|
HBTEST oValue:SVARSCLASS3:z1 IS "[Z1]"
|
|
HBTEST oValue:SVARSCLASS3:x2 IS " X2 "
|
|
HBTEST oValue:SVARSCLASS3:y2 IS " Y2 "
|
|
HBTEST oValue:SVARSCLASS3:z2 IS " Z2 "
|
|
HBTEST oValue:SVARSCLASS3:x3 IS " X3 "
|
|
HBTEST oValue:SVARSCLASS3:y3 IS " Y3 "
|
|
HBTEST oValue:SVARSCLASS3:z3 IS " Z3 "
|
|
HBTEST oValue:SVARSCLASS4:x1 IS "[X1]"
|
|
HBTEST oValue:SVARSCLASS4:y1 IS "[Y1]"
|
|
HBTEST oValue:SVARSCLASS4:z1 IS "[Z1]"
|
|
HBTEST oValue:SVARSCLASS4:x2 IS " X2 "
|
|
HBTEST oValue:SVARSCLASS4:y2 IS " Y2 "
|
|
HBTEST oValue:SVARSCLASS4:z2 IS " Z2 "
|
|
HBTEST oValue:SVARSCLASS4:x3 IS " X3 "
|
|
HBTEST oValue:SVARSCLASS4:y3 IS " Y3 "
|
|
HBTEST oValue:SVARSCLASS4:z3 IS " Z3 "
|
|
HBTEST oValue:SVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:SVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:SVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS2:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS3:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS4:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 3
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
|
|
/* Setting SVARSCLASS2 class variables... */
|
|
HBTEST oValue:SVARSCLASS2:x1 := "{X1}" IS "{X1}"
|
|
HBTEST oValue:SVARSCLASS2:y1 := "{Y1}" IS "{Y1}"
|
|
HBTEST oValue:SVARSCLASS2:z1 := "{Z1}" IS "{Z1}"
|
|
HBTEST oValue:SVARSCLASS2:x2 := "{X2}" IS "{X2}"
|
|
HBTEST oValue:SVARSCLASS2:y2 := "{Y2}" IS "{Y2}"
|
|
HBTEST oValue:SVARSCLASS2:z2 := "{Z2}" IS "{Z2}"
|
|
|
|
HBTEST oValue:x1 IS "{X1}"
|
|
HBTEST oValue:y1 IS "{Y1}"
|
|
HBTEST oValue:z1 IS "{Z1}"
|
|
HBTEST oValue:x2 IS "{X2}"
|
|
HBTEST oValue:y2 IS "{Y2}"
|
|
HBTEST oValue:z2 IS "{Z2}"
|
|
HBTEST oValue:x3 IS " X3 "
|
|
HBTEST oValue:y3 IS " Y3 "
|
|
HBTEST oValue:z3 IS " Z3 "
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:SVARSCLASS1:x1 IS "{X1}"
|
|
HBTEST oValue:SVARSCLASS1:y1 IS "{Y1}"
|
|
HBTEST oValue:SVARSCLASS1:z1 IS "{Z1}"
|
|
HBTEST oValue:SVARSCLASS2:x1 IS "{X1}"
|
|
HBTEST oValue:SVARSCLASS2:y1 IS "{Y1}"
|
|
HBTEST oValue:SVARSCLASS2:z1 IS "{Z1}"
|
|
HBTEST oValue:SVARSCLASS2:x2 IS "{X2}"
|
|
HBTEST oValue:SVARSCLASS2:y2 IS "{Y2}"
|
|
HBTEST oValue:SVARSCLASS2:z2 IS "{Z2}"
|
|
HBTEST oValue:SVARSCLASS3:x1 IS "{X1}"
|
|
HBTEST oValue:SVARSCLASS3:y1 IS "{Y1}"
|
|
HBTEST oValue:SVARSCLASS3:z1 IS "{Z1}"
|
|
HBTEST oValue:SVARSCLASS3:x2 IS "{X2}"
|
|
HBTEST oValue:SVARSCLASS3:y2 IS "{Y2}"
|
|
HBTEST oValue:SVARSCLASS3:z2 IS "{Z2}"
|
|
HBTEST oValue:SVARSCLASS3:x3 IS " X3 "
|
|
HBTEST oValue:SVARSCLASS3:y3 IS " Y3 "
|
|
HBTEST oValue:SVARSCLASS3:z3 IS " Z3 "
|
|
HBTEST oValue:SVARSCLASS4:x1 IS "{X1}"
|
|
HBTEST oValue:SVARSCLASS4:y1 IS "{Y1}"
|
|
HBTEST oValue:SVARSCLASS4:z1 IS "{Z1}"
|
|
HBTEST oValue:SVARSCLASS4:x2 IS "{X2}"
|
|
HBTEST oValue:SVARSCLASS4:y2 IS "{Y2}"
|
|
HBTEST oValue:SVARSCLASS4:z2 IS "{Z2}"
|
|
HBTEST oValue:SVARSCLASS4:x3 IS " X3 "
|
|
HBTEST oValue:SVARSCLASS4:y3 IS " Y3 "
|
|
HBTEST oValue:SVARSCLASS4:z3 IS " Z3 "
|
|
HBTEST oValue:SVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:SVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:SVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS2:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS3:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS4:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 3
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
|
|
/* Setting SVARSCLASS3 class variables... */
|
|
HBTEST oValue:SVARSCLASS3:x1 := "<X1>" IS "<X1>"
|
|
HBTEST oValue:SVARSCLASS3:y1 := "<Y1>" IS "<Y1>"
|
|
HBTEST oValue:SVARSCLASS3:z1 := "<Z1>" IS "<Z1>"
|
|
HBTEST oValue:SVARSCLASS3:x2 := "<X2>" IS "<X2>"
|
|
HBTEST oValue:SVARSCLASS3:y2 := "<Y2>" IS "<Y2>"
|
|
HBTEST oValue:SVARSCLASS3:z2 := "<Z2>" IS "<Z2>"
|
|
HBTEST oValue:SVARSCLASS3:x3 := "<X3>" IS "<X3>"
|
|
HBTEST oValue:SVARSCLASS3:y3 := "<Y3>" IS "<Y3>"
|
|
HBTEST oValue:SVARSCLASS3:z3 := "<Z3>" IS "<Z3>"
|
|
|
|
HBTEST oValue:x1 IS "<X1>"
|
|
HBTEST oValue:y1 IS "<Y1>"
|
|
HBTEST oValue:z1 IS "<Z1>"
|
|
HBTEST oValue:x2 IS "<X2>"
|
|
HBTEST oValue:y2 IS "<Y2>"
|
|
HBTEST oValue:z2 IS "<Z2>"
|
|
HBTEST oValue:x3 IS "<X3>"
|
|
HBTEST oValue:y3 IS "<Y3>"
|
|
HBTEST oValue:z3 IS "<Z3>"
|
|
HBTEST oValue:x4 IS " X4 "
|
|
HBTEST oValue:y4 IS " Y4 "
|
|
HBTEST oValue:z4 IS " Z4 "
|
|
HBTEST oValue:SVARSCLASS1:x1 IS "<X1>"
|
|
HBTEST oValue:SVARSCLASS1:y1 IS "<Y1>"
|
|
HBTEST oValue:SVARSCLASS1:z1 IS "<Z1>"
|
|
HBTEST oValue:SVARSCLASS2:x1 IS "<X1>"
|
|
HBTEST oValue:SVARSCLASS2:y1 IS "<Y1>"
|
|
HBTEST oValue:SVARSCLASS2:z1 IS "<Z1>"
|
|
HBTEST oValue:SVARSCLASS2:x2 IS "<X2>"
|
|
HBTEST oValue:SVARSCLASS2:y2 IS "<Y2>"
|
|
HBTEST oValue:SVARSCLASS2:z2 IS "<Z2>"
|
|
HBTEST oValue:SVARSCLASS3:x1 IS "<X1>"
|
|
HBTEST oValue:SVARSCLASS3:y1 IS "<Y1>"
|
|
HBTEST oValue:SVARSCLASS3:z1 IS "<Z1>"
|
|
HBTEST oValue:SVARSCLASS3:x2 IS "<X2>"
|
|
HBTEST oValue:SVARSCLASS3:y2 IS "<Y2>"
|
|
HBTEST oValue:SVARSCLASS3:z2 IS "<Z2>"
|
|
HBTEST oValue:SVARSCLASS3:x3 IS "<X3>"
|
|
HBTEST oValue:SVARSCLASS3:y3 IS "<Y3>"
|
|
HBTEST oValue:SVARSCLASS3:z3 IS "<Z3>"
|
|
HBTEST oValue:SVARSCLASS4:x1 IS "<X1>"
|
|
HBTEST oValue:SVARSCLASS4:y1 IS "<Y1>"
|
|
HBTEST oValue:SVARSCLASS4:z1 IS "<Z1>"
|
|
HBTEST oValue:SVARSCLASS4:x2 IS "<X2>"
|
|
HBTEST oValue:SVARSCLASS4:y2 IS "<Y2>"
|
|
HBTEST oValue:SVARSCLASS4:z2 IS "<Z2>"
|
|
HBTEST oValue:SVARSCLASS4:x3 IS "<X3>"
|
|
HBTEST oValue:SVARSCLASS4:y3 IS "<Y3>"
|
|
HBTEST oValue:SVARSCLASS4:z3 IS "<Z3>"
|
|
HBTEST oValue:SVARSCLASS4:x4 IS " X4 "
|
|
HBTEST oValue:SVARSCLASS4:y4 IS " Y4 "
|
|
HBTEST oValue:SVARSCLASS4:z4 IS " Z4 "
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS1:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS2:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS3:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:SVARSCLASS4:classH ) IS 0
|
|
HBTEST __cls_CntClsData( oValue:classH ) IS 0
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS1:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS2:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS3:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:SVARSCLASS4:classH ) IS 3
|
|
HBTEST __cls_CntShrData( oValue:classH ) IS 3
|
|
HBTEST INSTANCE_DATA( oValue ) IS "[0]:"
|
|
|
|
/* Test non virtual hidden messages */
|
|
|
|
oValue := NVCLASS4():new()
|
|
|
|
HBTEST oValue:m1() IS "NVCLASS1:M1 (a1) (b1) (c3) (d3) (e3) (f3) (ex1)|" + ;
|
|
"NVCLASS1:X (a1) (b1) (c3) (d3) (e3) (f3) (ex1)|" + ;
|
|
"NVCLASS3:Y (a3) (b3) (c3) (d3) (e3) (f3) (HI3)|" + ;
|
|
"NVCLASS3:Z (a3) (b3) (c3) (d3) (e3) (f3) (HI3)"
|
|
HBTEST oValue:m2() IS "NVCLASS2:M2 (a2) (b2) (c3) (d3) (e3) (f3) (ex1)|" + ;
|
|
"NVCLASS2:X (a2) (b2) (c3) (d3) (e3) (f3) (ex1)|" + ;
|
|
"NVCLASS3:Y (a3) (b3) (c3) (d3) (e3) (f3) (HI3)|" + ;
|
|
"NVCLASS3:Z (a3) (b3) (c3) (d3) (e3) (f3) (HI3)"
|
|
HBTEST oValue:m3() IS "NVCLASS3:M3 (a3) (b3) (c3) (d3) (e3) (f3) (HI3)|" + ;
|
|
"NVCLASS3:X (a3) (b3) (c3) (d3) (e3) (f3) (HI3)|" + ;
|
|
"NVCLASS3:Y (a3) (b3) (c3) (d3) (e3) (f3) (HI3)|" + ;
|
|
"NVCLASS3:Z (a3) (b3) (c3) (d3) (e3) (f3) (HI3)"
|
|
|
|
/* Test super casting */
|
|
|
|
HBTEST oValue:classname() IS "NVCLASS4"
|
|
HBTEST oValue:super:classname() IS "NVCLASS3"
|
|
HBTEST oValue:super:super:classname() IS "NVCLASS1"
|
|
HBTEST oValue:super:super:super:classname() IS "HBOBJECT"
|
|
HBTEST oValue:super:super:super:super:classname() IS "E 13 BASE 1004 Message not found (NVCLASS4:SUPER) OS:0 #:0 A:1:O:NVCLASS4 Object F:S"
|
|
|
|
#endif
|
|
|
|
RETURN
|
|
|
|
|
|
#ifdef __HARBOUR__
|
|
|
|
STATIC FUNCTION INSTANCE_DATA( oValue )
|
|
|
|
LOCAL cData, i
|
|
|
|
cData := "[" + hb_ntos( Len( oValue ) ) + "]:"
|
|
FOR i := 1 TO Len( oValue )
|
|
DO CASE
|
|
CASE HB_ISSTRING( oValue[ i ] )
|
|
cData += " " + oValue[ i ]
|
|
CASE oValue[ i ] == NIL
|
|
cData += " NIL"
|
|
OTHERWISE
|
|
cData += " ..."
|
|
ENDCASE
|
|
NEXT
|
|
|
|
RETURN cData
|
|
|
|
|
|
|
|
CREATE CLASS DTORCLASS
|
|
EXPORTED:
|
|
VAR type
|
|
VAR var1
|
|
CLASS VAR var2
|
|
METHOD init
|
|
DESTRUCTOR dtor
|
|
ENDCLASS
|
|
|
|
METHOD INIT( type ) CLASS DTORCLASS
|
|
::type := type
|
|
RETURN self
|
|
|
|
METHOD PROCEDURE DTOR CLASS DTORCLASS
|
|
|
|
DO CASE
|
|
CASE ::Type == 1
|
|
cDtorResult += "Reference to self in instance variable."
|
|
::var1 := self
|
|
CASE ::Type == 2
|
|
cDtorResult += "Reference to self in class variable."
|
|
::var2 := self
|
|
CASE ::Type == 3
|
|
cDtorResult += "Reference to self in private memvar."
|
|
objHolder := self
|
|
OTHERWISE
|
|
cDtorResult += "No references to self."
|
|
ENDCASE
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
CREATE CLASS IVARSCLASS1
|
|
EXPORTED:
|
|
VAR x1 INIT "(x1)"
|
|
VAR y1 INIT "(y1)"
|
|
VAR z1 INIT "(z1)"
|
|
ENDCLASS
|
|
|
|
CREATE CLASS IVARSCLASS2 INHERIT IVARSCLASS1
|
|
EXPORTED:
|
|
VAR x2 INIT "(x2)"
|
|
VAR y2 INIT "(y2)"
|
|
VAR z2 INIT "(z2)"
|
|
ENDCLASS
|
|
|
|
CREATE CLASS IVARSCLASS3 INHERIT IVARSCLASS1, IVARSCLASS2
|
|
EXPORTED:
|
|
VAR x3 INIT "(x3)"
|
|
VAR y3 INIT "(y3)"
|
|
VAR z3 INIT "(z3)"
|
|
ENDCLASS
|
|
|
|
CREATE CLASS IVARSCLASS4 INHERIT IVARSCLASS3, IVARSCLASS2
|
|
EXPORTED:
|
|
VAR x4 INIT "(x4)"
|
|
VAR y4 INIT "(y4)"
|
|
VAR z4 INIT "(z4)"
|
|
ENDCLASS
|
|
|
|
|
|
|
|
CREATE CLASS CVARSCLASS1
|
|
EXPORTED:
|
|
CLASS VAR x1 INIT "(x1)"
|
|
CLASS VAR y1 INIT "(y1)"
|
|
CLASS VAR z1 INIT "(z1)"
|
|
ENDCLASS
|
|
|
|
CREATE CLASS CVARSCLASS2 INHERIT CVARSCLASS1
|
|
EXPORTED:
|
|
CLASS VAR x2 INIT "(x2)"
|
|
CLASS VAR y2 INIT "(y2)"
|
|
CLASS VAR z2 INIT "(z2)"
|
|
ENDCLASS
|
|
|
|
CREATE CLASS CVARSCLASS3 INHERIT CVARSCLASS1, CVARSCLASS2
|
|
EXPORTED:
|
|
CLASS VAR x3 INIT "(x3)"
|
|
CLASS VAR y3 INIT "(y3)"
|
|
CLASS VAR z3 INIT "(z3)"
|
|
ENDCLASS
|
|
|
|
CREATE CLASS CVARSCLASS4 INHERIT CVARSCLASS3, CVARSCLASS2
|
|
EXPORTED:
|
|
CLASS VAR x4 INIT "(x4)"
|
|
CLASS VAR y4 INIT "(y4)"
|
|
CLASS VAR z4 INIT "(z4)"
|
|
ENDCLASS
|
|
|
|
|
|
|
|
CREATE CLASS SVARSCLASS1
|
|
EXPORTED:
|
|
CLASS VAR x1 INIT "(x1)" SHARED
|
|
CLASS VAR y1 INIT "(y1)" SHARED
|
|
CLASS VAR z1 INIT "(z1)" SHARED
|
|
ENDCLASS
|
|
|
|
CREATE CLASS SVARSCLASS2 INHERIT SVARSCLASS1
|
|
EXPORTED:
|
|
CLASS VAR x2 INIT "(x2)" SHARED
|
|
CLASS VAR y2 INIT "(y2)" SHARED
|
|
CLASS VAR z2 INIT "(z2)" SHARED
|
|
ENDCLASS
|
|
|
|
CREATE CLASS SVARSCLASS3 INHERIT SVARSCLASS1, SVARSCLASS2
|
|
EXPORTED:
|
|
CLASS VAR x3 INIT "(x3)" SHARED
|
|
CLASS VAR y3 INIT "(y3)" SHARED
|
|
CLASS VAR z3 INIT "(z3)" SHARED
|
|
ENDCLASS
|
|
|
|
CREATE CLASS SVARSCLASS4 INHERIT SVARSCLASS3, SVARSCLASS2
|
|
EXPORTED:
|
|
CLASS VAR x4 INIT "(x4)" SHARED
|
|
CLASS VAR y4 INIT "(y4)" SHARED
|
|
CLASS VAR z4 INIT "(z4)" SHARED
|
|
ENDCLASS
|
|
|
|
|
|
CREATE CLASS NVCLASS1
|
|
HIDDEN:
|
|
VAR a init "(a1)"
|
|
CLASS VAR b init "(b1)"
|
|
METHOD x
|
|
|
|
PROTECTED:
|
|
VAR c init "(c1)"
|
|
CLASS VAR d init "(d1)"
|
|
METHOD y
|
|
|
|
EXPORTED:
|
|
VAR e init "(e1)"
|
|
CLASS VAR f init "(f1)"
|
|
VAR v init "(ex1)"
|
|
METHOD z
|
|
METHOD m1
|
|
ENDCLASS
|
|
|
|
METHOD m1 CLASS NVCLASS1
|
|
RETURN "NVCLASS1:M1 " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v ) + "|" + ;
|
|
::x() + "|" + ;
|
|
::y() + "|" + ;
|
|
::z()
|
|
|
|
METHOD x CLASS NVCLASS1
|
|
RETURN "NVCLASS1:X " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
METHOD y CLASS NVCLASS1
|
|
RETURN "NVCLASS1:Y " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
METHOD z CLASS NVCLASS1
|
|
RETURN "NVCLASS1:Z " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
|
|
CREATE CLASS NVCLASS2
|
|
HIDDEN:
|
|
VAR a init "(a2)"
|
|
CLASS VAR b init "(b2)"
|
|
METHOD x
|
|
|
|
PROTECTED:
|
|
VAR c init "(c2)"
|
|
CLASS VAR d init "(d2)"
|
|
METHOD y
|
|
|
|
EXPORTED:
|
|
VAR e init "(e2)"
|
|
CLASS VAR f init "(f2)"
|
|
METHOD z
|
|
METHOD m2
|
|
|
|
ENDCLASS
|
|
|
|
METHOD m2 CLASS NVCLASS2
|
|
RETURN "NVCLASS2:M2 " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v ) + "|" + ;
|
|
::x() + "|" + ;
|
|
::y() + "|" + ;
|
|
::z()
|
|
|
|
METHOD x CLASS NVCLASS2
|
|
RETURN "NVCLASS2:X " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
METHOD y CLASS NVCLASS2
|
|
RETURN "NVCLASS2:Y " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
METHOD z CLASS NVCLASS2
|
|
RETURN "NVCLASS2:Z " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
|
|
CREATE CLASS NVCLASS3 INHERIT NVCLASS1, NVCLASS2
|
|
HIDDEN:
|
|
VAR a init "(a3)"
|
|
CLASS VAR b init "(b3)"
|
|
METHOD x
|
|
VAR v init "(HI3)"
|
|
|
|
PROTECTED:
|
|
VAR c init "(c3)"
|
|
CLASS VAR d init "(d3)"
|
|
METHOD y
|
|
|
|
EXPORTED:
|
|
VAR e init "(e3)"
|
|
CLASS VAR f init "(f3)"
|
|
METHOD z
|
|
METHOD m3
|
|
|
|
ENDCLASS
|
|
|
|
METHOD m3 CLASS NVCLASS3
|
|
RETURN "NVCLASS3:M3 " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v ) + "|" + ;
|
|
::x() + "|" + ;
|
|
::y() + "|" + ;
|
|
::z()
|
|
|
|
METHOD x CLASS NVCLASS3
|
|
RETURN "NVCLASS3:X " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
METHOD y CLASS NVCLASS3
|
|
RETURN "NVCLASS3:Y " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
METHOD z CLASS NVCLASS3
|
|
RETURN "NVCLASS3:Z " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v )
|
|
|
|
|
|
CREATE CLASS NVCLASS4 INHERIT NVCLASS3
|
|
METHOD m4
|
|
ENDCLASS
|
|
|
|
METHOD m4 CLASS NVCLASS4
|
|
RETURN "NVCLASS4:M4 " + ;
|
|
hb_CStr( ::a ) + " " + ;
|
|
hb_CStr( ::b ) + " " + ;
|
|
hb_CStr( ::c ) + " " + ;
|
|
hb_CStr( ::d ) + " " + ;
|
|
hb_CStr( ::e ) + " " + ;
|
|
hb_CStr( ::f ) + " " + ;
|
|
hb_CStr( ::v ) + "|" + ;
|
|
::x() + "|" + ;
|
|
::y() + "|" + ;
|
|
::z()
|
|
|
|
#endif
|
|
|
|
|
|
/* Don't change the position of this #include. */
|
|
#include "rt_init.ch"
|