int main( int argc, char * argv[] ) { Process process; Session session; int errcode; string name = "/cpp_session_last_error"; try { if ( argc > 1 ) { process.Init( argv[1], argv[0] ); } else { process.Init( "10701", argv[0] ); } } catch( pso::Exception exc ) { cerr << "Test failed in init phase, error = " << exc.Message() << endl; cerr << "Is the server running?" << endl; return 1; } try { session.Init(); // Is last error properly initialized? errcode = session.LastError(); if ( errcode != PSO_OK ) { cerr << "Test failed - line " << __LINE__ << endl; return 1; } // Our first "test call" session.CreateFolder( name ); } catch( pso::Exception exc ) { cerr << "Test failed - line " << __LINE__ << ", error = " << exc.Message() << endl; return 1; } try { errcode = session.LastError(); } catch( pso::Exception exc ) { cerr << "Test failed - line " << __LINE__ << ", error = " << exc.Message() << endl; return 1; } if ( errcode != PSO_OK ) { cerr << "Test failed - line " << __LINE__ << endl; return 1; } // Create the same object a second time and check that last error is // the one we expect. try { session.CreateFolder( name ); // Should never come here cerr << "Test failed - line " << __LINE__ << endl; return 1; } catch( pso::Exception exc ) { if ( exc.ErrorCode() != PSO_OBJECT_ALREADY_PRESENT ) { cerr << "Test failed - line " << __LINE__ << ", error = " << exc.Message() << endl; return 1; } } try { errcode = session.LastError(); } catch( pso::Exception exc ) { cerr << "Test failed - line " << __LINE__ << ", error = " << exc.Message() << endl; return 1; } if ( errcode != PSO_OBJECT_ALREADY_PRESENT ) { cerr << "Test failed - line " << __LINE__ << endl; return 1; } return 0; }