Changeset 8c637ee in rtems


Ignore:
Timestamp:
Dec 9, 2016, 7:13:39 AM (3 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
master
Children:
05006c90
Parents:
16bd9e0a
git-author:
Chris Johns <chrisj@…> (12/09/16 07:13:39)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/09/16 07:26:47)
Message:

cdtest: Add std::runtime_error() test case

Update #2830.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • testsuites/samples/cdtest/main.cc

    r16bd9e0a r8c637ee  
    2929#include <cstdio>
    3030#include <cstdlib>
     31#include <stdexcept>
    3132
    3233#ifdef RTEMS_TEST_IO_STREAM
     
    3637const char rtems_test_name[] = "CONSTRUCTOR/DESTRUCTOR";
    3738
    38 extern "C" 
     39extern "C"
    3940{
    4041#include <tmacros.h>
     
    8283class BClass : public AClass {
    8384public:
    84   BClass(const char *p = "LOCAL" ) : AClass( p ) 
     85  BClass(const char *p = "LOCAL" ) : AClass( p )
    8586    {
    8687        num_inst++;
     
    113114
    114115
    115 class RtemsException 
     116class RtemsException
    116117{
    117118public:
    118    
     119
    119120    RtemsException( const char *module, int ln, int err = 0 )
    120121    : error( err ), line( ln ), file( module )
    121122    {
    122123      printf( "RtemsException raised=File:%s, Line:%d, Error=%X\n",
    123                file, line, error ); 
     124               file, line, error );
    124125    }
    125126
     
    127128    {
    128129      printf( "RtemsException ---> File:%s, Line:%d, Error=%X\n",
    129                file, line, error ); 
     130               file, line, error );
    130131    }
    131132
     
    166167static void foo_function()
    167168{
    168     try 
    169     {
    170       throw "foo_function() throw this exception"; 
     169    try
     170    {
     171      throw "foo_function() throw this exception";
    171172    }
    172173    catch( const char *e )
    173174    {
    174175     printf( "foo_function() catch block called:\n   < %s  >\n", e );
    175      throw "foo_function() re-throwing execption..."; 
     176     throw "foo_function() re-throwing execption...";
    176177    }
    177178}
    178179
    179180rtems_task main_task(
    180   rtems_task_argument 
     181  rtems_task_argument
    181182)
    182183{
     
    189190    printf( "*** TESTING C++ EXCEPTIONS ***\n\n" );
    190191
    191     try 
     192    try
    192193    {
    193194      foo_function();
     
    197198       printf( "Success catching a char * exception\n%s\n", e );
    198199    }
    199     try
     200
     201    try
     202    {
     203      throw std::runtime_error("thrown std::runtime object");
     204    }
     205    catch (std::exception const& e)
     206    {
     207       printf("throw std::runtime: caught: %s\n", e.what());
     208    }
     209
     210    try
    200211    {
    201212      printf( "throw an instance based exception\n" );
    202                 throw RtemsException( __FILE__, __LINE__, 0x55 ); 
    203     }
    204     catch( RtemsException & ex ) 
     213                throw RtemsException( __FILE__, __LINE__, 0x55 );
     214    }
     215    catch( RtemsException & ex )
    205216    {
    206217       printf( "Success catching RtemsException...\n" );
    207218       ex.show();
    208219    }
    209     catch(...) 
     220    catch(...)
    210221    {
    211222      printf( "Caught another exception.\n" );
Note: See TracChangeset for help on using the changeset viewer.