BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
test.cxx File Reference
#include "ExampleIssue.h"
#include "ers/ers.h"

Go to the source code of this file.

Functions

void foo (int n)
void massive_test ()
int main (int argc, char **argv)

Detailed Description

This file contains a very simple example of using ERS. Basically, we use the custom issue defined in ExampleIssue.

Definition in file Event/ers/test/test.cxx.

Function Documentation

◆ foo()

void foo ( int n)

This function illustrates the usage of range checking macros.

Parameters
nan integer excepted to be between 0 and 42.

Definition at line 22 of file Event/ers/test/test.cxx.

22 {
23 ERS_RANGE_CHECK( 0, n, 42 );
24 ERS_DEBUG_0( "function foo called with value %d", n );
25} // foo
const Int_t n
#define ERS_RANGE_CHECK(min, value, max)
#define ERS_DEBUG_0(...)

Referenced by main().

◆ main()

int main ( int argc,
char ** argv )

Definition at line 33 of file Event/ers/test/test.cxx.

33 {
34 for ( int i = 1; i < argc; i++ )
35 { // we add all parameters as qualifiers
37 } //
38 ers::Context::add_qualifier( "ers_test" ); // we add a qualifier to all issues
39 try
40 { // We need to work with a try/catch block
44 "filter:?!ers_test,ers_failure@default" ); // we filter out all issue with qualifier
45 // ers_test at level debug_3
46 ERS_DEBUG_3( "This should not be displayed" );
47 ERS_DEBUG_0( "checking static assert" );
48 ERS_STATIC_ASSERT( sizeof( int ) == 4 );
49 ERS_DEBUG_0( "dispatching custom issue to warning stream" );
50 ExampleIssue issue( ERS_HERE, ers::warning, 10 ); // we build an instance of our Issue
51 ers::StreamFactory::dispatch( issue ); // dispatch sends it to the correct stream based on
52 // severity
53 ERS_DEBUG_0( "calling a method with wrong range" );
54 foo( 43 );
55 ERS_DEBUG_0( "done - if we reached this point, assertion have been disabled - this can be "
56 "done by defining the N_DEBUG macro" );
57 ERS_DEBUG_0( "throwing custom issue" );
58 throw ExampleIssue( ERS_HERE, ers::error, 25 );
59 } catch ( ers::Issue& e )
60 { // we catch issues and send them to the warning stream
62 }
63 return 0;
64} // main
#define ERS_STATIC_ASSERT(expr)
#define ERS_DEBUG_3(...)
void massive_test()
void foo(int n)
Example issue.
static void add_qualifier(const std::string &qualif)
Definition Context.cxx:58
Root Issue class.
static void set_stream(severity_t, const std::string &key)
Stream * warning()
Warning stream.
static void dispatch(Issue *i, bool throw_error=false)
Sends an issue to the appropriate stream according to its severity_t.

◆ massive_test()

void massive_test ( )

Definition at line 27 of file Event/ers/test/test.cxx.

27 {
29 ERS_DEBUG_0( "dumping a lot of log issues" );
30 for ( int i = 0; i < 1000000; i++ ) { ERS_DEBUG_2( "dump %d", i ); } // for
31} //
#define ERS_DEBUG_2(...)

Referenced by main().