forked from Imagelibrary/rtems
cdtest: Print proper begin/end of test messages
This commit is contained in:
@@ -1,31 +1,43 @@
|
|||||||
Hey I'm in base class constructor number 1 for 0x400010cc.
|
*** BEGIN OF TEST CONSTRUCTOR/DESTRUCTOR ***
|
||||||
Hey I'm in base class constructor number 2 for 0x400010d4.
|
GLOBAL: Hey I'm in base class constructor number 1 for 0x2052154.
|
||||||
Hey I'm in derived class constructor number 3 for 0x400010d4.
|
GLOBAL: Hey I'm in base class constructor number 2 for 0x2052148.
|
||||||
|
GLOBAL: Hey I'm in derived class constructor number 3 for 0x2052148.
|
||||||
|
|
||||||
|
|
||||||
*** CONSTRUCTOR/DESTRUCTOR TEST ***
|
*** BEGIN OF TEST CONSTRUCTOR/DESTRUCTOR ***
|
||||||
Hey I'm in base class constructor number 4 for 0x4009ee08.
|
LOCAL: Hey I'm in base class constructor number 4 for 0x2057978.
|
||||||
Hey I'm in base class constructor number 5 for 0x4009ee10.
|
LOCAL: Hey I'm in base class constructor number 5 for 0x2057984.
|
||||||
Hey I'm in base class constructor number 6 for 0x4009ee18.
|
LOCAL: Hey I'm in base class constructor number 6 for 0x2057990.
|
||||||
Hey I'm in base class constructor number 7 for 0x4009ee20.
|
LOCAL: Hey I'm in base class constructor number 7 for 0x205799c.
|
||||||
Hey I'm in derived class constructor number 8 for 0x4009ee20.
|
LOCAL: Hey I'm in derived class constructor number 8 for 0x205799c.
|
||||||
Testing a C++ I/O stream
|
IO Stream not tested
|
||||||
Hey I'm in derived class destructor number 8 for 0x4009ee20.
|
LOCAL: Hey I'm in derived class destructor number 8 for 205799C.
|
||||||
Derived class - Instantiation order 8
|
Derived class - Instantiation order 8
|
||||||
Hey I'm in base class destructor number 7 for 0x4009ee20.
|
LOCAL: Hey I'm in base class destructor number 7 for 205799C.
|
||||||
Instantiation order 8
|
Derived class - Instantiation order 8
|
||||||
Hey I'm in base class destructor number 6 for 0x4009ee18.
|
LOCAL: Hey I'm in base class destructor number 6 for 2057990.
|
||||||
Instantiation order 6
|
Derived class - Instantiation order 6
|
||||||
Hey I'm in base class destructor number 5 for 0x4009ee10.
|
LOCAL: Hey I'm in base class destructor number 5 for 2057984.
|
||||||
Instantiation order 5
|
Derived class - Instantiation order 5
|
||||||
Hey I'm in base class destructor number 4 for 0x4009ee08.
|
LOCAL: Hey I'm in base class destructor number 4 for 2057978.
|
||||||
Instantiation order 5
|
Derived class - Instantiation order 5
|
||||||
*** END OF CONSTRUCTOR/DESTRUCTOR TEST ***
|
*** TESTING C++ EXCEPTIONS ***
|
||||||
|
|
||||||
|
foo_function() catch block called:
|
||||||
Hey I'm in derived class destructor number 3 for 0x400010d4.
|
< foo_function() throw this exception >
|
||||||
|
Success catching a char * exception
|
||||||
|
foo_function() re-throwing execption...
|
||||||
|
throw std::runtime: caught: thrown std::runtime object
|
||||||
|
throw an instance based exception
|
||||||
|
RtemsException raised=File:../../../../../../../rtems/c/src/../../testsuites/samples/cdtest/main.cc, Line:229, Error=55
|
||||||
|
Success catching RtemsException...
|
||||||
|
RtemsException ---> File:../../../../../../../rtems/c/src/../../testsuites/samples/cdtest/main.cc, Line:229, Error=55
|
||||||
|
Exceptions are working properly.
|
||||||
|
Global Dtors should be called after this line....
|
||||||
|
GLOBAL: Hey I'm in derived class destructor number 3 for 2052148.
|
||||||
Derived class - Instantiation order 3
|
Derived class - Instantiation order 3
|
||||||
Hey I'm in base class destructor number 2 for 0x400010d4.
|
GLOBAL: Hey I'm in base class destructor number 2 for 2052148.
|
||||||
Instantiation order 3
|
Derived class - Instantiation order 3
|
||||||
Hey I'm in base class destructor number 1 for 0x400010cc.
|
GLOBAL: Hey I'm in base class destructor number 1 for 2052154.
|
||||||
Instantiation order 1
|
Derived class - Instantiation order 1
|
||||||
|
*** END OF TEST CONSTRUCTOR/DESTRUCTOR ***
|
||||||
|
|||||||
@@ -44,10 +44,25 @@ extern rtems_task main_task(rtems_task_argument);
|
|||||||
|
|
||||||
static int num_inst = 0;
|
static int num_inst = 0;
|
||||||
|
|
||||||
|
static void check_begin_of_test(void)
|
||||||
|
{
|
||||||
|
if ( num_inst == 0 ) {
|
||||||
|
printf(TEST_BEGIN_STRING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void check_end_of_test(void)
|
||||||
|
{
|
||||||
|
if ( num_inst == 0 ) {
|
||||||
|
printk(TEST_END_STRING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class AClass {
|
class AClass {
|
||||||
public:
|
public:
|
||||||
AClass(const char *p = "LOCAL" ) : ptr( p )
|
AClass(const char *p = "LOCAL" ) : ptr( p )
|
||||||
{
|
{
|
||||||
|
check_begin_of_test();
|
||||||
num_inst++;
|
num_inst++;
|
||||||
printf(
|
printf(
|
||||||
"%s: Hey I'm in base class constructor number %d for %p.\n",
|
"%s: Hey I'm in base class constructor number %d for %p.\n",
|
||||||
@@ -71,6 +86,7 @@ public:
|
|||||||
);
|
);
|
||||||
printk("Derived class - %s\n", string);
|
printk("Derived class - %s\n", string);
|
||||||
num_inst--;
|
num_inst--;
|
||||||
|
check_end_of_test();
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void print() { printf("%s\n", string); };
|
virtual void print() { printf("%s\n", string); };
|
||||||
@@ -84,6 +100,7 @@ class BClass : public AClass {
|
|||||||
public:
|
public:
|
||||||
BClass(const char *p = "LOCAL" ) : AClass( p )
|
BClass(const char *p = "LOCAL" ) : AClass( p )
|
||||||
{
|
{
|
||||||
|
check_begin_of_test();
|
||||||
num_inst++;
|
num_inst++;
|
||||||
printf(
|
printf(
|
||||||
"%s: Hey I'm in derived class constructor number %d for %p.\n",
|
"%s: Hey I'm in derived class constructor number %d for %p.\n",
|
||||||
@@ -107,6 +124,7 @@ public:
|
|||||||
);
|
);
|
||||||
printk("Derived class - %s\n", string);
|
printk("Derived class - %s\n", string);
|
||||||
num_inst--;
|
num_inst--;
|
||||||
|
check_end_of_test();
|
||||||
};
|
};
|
||||||
|
|
||||||
void print() { printf("Derived class - %s\n", string); }
|
void print() { printf("Derived class - %s\n", string); }
|
||||||
@@ -185,8 +203,6 @@ rtems_task main_task(
|
|||||||
|
|
||||||
cdtest();
|
cdtest();
|
||||||
|
|
||||||
TEST_END();
|
|
||||||
|
|
||||||
printf( "*** TESTING C++ EXCEPTIONS ***\n\n" );
|
printf( "*** TESTING C++ EXCEPTIONS ***\n\n" );
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|||||||
Reference in New Issue
Block a user