// SharedPolicyTable_t.cpp #include "ptr/SharedPolicyTable.h" #include #include #include #ifndef DEFECT_NO_NAMESPACES using std::cout; using std::cerr; using std::endl; using std::string; #endif //********************************************************************** int main( ) { string component = "SharedPolicyTable"; string ok_prefix = component + " (I): "; string error_prefix = component + " test (E): "; cout << ok_prefix << "---------- Testing component " + component + ". ----------" << endl; // Make sure assert is enabled. bool assert_flag = false; assert ( ( assert_flag = true, assert_flag ) ); if ( ! assert_flag ) { cerr << "Assert is disabled" << endl; return 1; } //******************************************************************** cout << ok_prefix << "Construct a table." << endl; SharedPolicyTable tbl; cout << tbl << endl; assert( tbl.get_reference_count() == 0 ); assert( tbl.get_managing_reference_count() == 0 ); //******************************************************************** cout << ok_prefix << "Add references." << endl; tbl.add_managing_reference(); cout << tbl << endl; assert( tbl.get_reference_count() == 1 ); assert( tbl.get_managing_reference_count() == 1 ); tbl.add_non_managing_reference(); tbl.add_non_managing_reference(); cout << tbl << endl; assert( tbl.get_reference_count() == 3 ); assert( tbl.get_managing_reference_count() == 1 ); //******************************************************************** cout << ok_prefix << "Drop references." << endl; tbl.drop_managing_reference(); cout << tbl << endl; assert( tbl.get_reference_count() == 2 ); assert( tbl.get_managing_reference_count() == 0 ); tbl.drop_non_managing_reference(); cout << tbl << endl; assert( tbl.get_reference_count() == 1 ); assert( tbl.get_managing_reference_count() == 0 ); //******************************************************************** cout << ok_prefix << "------------- All tests passed. -------------" << endl; return 0; //******************************************************************** }