#include "StdAfx.h" #include "UnitTestFrameWork.h" #include "TestP4Base.h" #include "..\p4bridge\p4Base.h" CREATE_TEST_SUITE(TestP4Base) TestP4Base::TestP4Base(void) { UnitTestSuite::RegisterTest(&p4BaseSmokeTest, "p4BaseSmokeTest"); } TestP4Base::~TestP4Base(void) { } bool TestP4Base::Setup() { return true; } bool TestP4Base::TearDown(char* testName) { p4base::PrintMemoryState(testName); return true; } class class0 : public p4base { public: class0() : p4base(0) {}; int Type(void) { return 0 ; } }; class class1 : public p4base { public: class1() : p4base(1) {}; int Type(void) { return 1 ; } }; bool TestP4Base::p4BaseSmokeTest() { // try to validate a NULL pointer, should fail class0 * obj0 = NULL; int r0 = p4base::ValidateHandle( obj0, 0 ); ASSERT_EQUAL(r0, 0) // try to validate an invalid pointer, should fail obj0 = (class0 *) 0x001; r0 = p4base::ValidateHandle( obj0, 0 ); ASSERT_EQUAL(r0, 0) // validate a good pointer obj0 = new class0(); r0 = p4base::ValidateHandle( obj0, 0 ); ASSERT_EQUAL(r0, 1) // validate a good pointer of a different class class1 * obj1 = new class1(); r0 = p4base::ValidateHandle( obj1, 1 ); ASSERT_EQUAL(r0, 1) // try to validate a pointer for a deleted object, should fail delete obj0; r0 = p4base::ValidateHandle( obj0, 0 ); ASSERT_EQUAL(r0, 0) // build up a list of 6 class0 objects class0 * obj0a = new class0(); class0 * obj0b = new class0(); class0 * obj0c = new class0(); class0 * obj0d = new class0(); class0 * obj0e = new class0(); class0 * obj0f = new class0(); ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0c, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0d, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0e, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0f, 0 ), 1) // Delete one in the middle delete obj0c; // test the handles ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0c, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0d, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0e, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0f, 0 ), 1) // Delete the last one delete obj0f; // test the handles ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0b, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0c, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0d, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0e, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0f, 0 ), 0) // should fail // Delete the new last one delete obj0e; // test the handles ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0b, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0c, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0d, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0e, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0f, 0 ), 0) // should fail // Delete the first one delete obj0a; // test the handles ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0b, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0c, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0d, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0e, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0f, 0 ), 0) // should fail // Delete the new first one delete obj0b; // test the handles ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0b, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0c, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0d, 0 ), 1) ASSERT_EQUAL(p4base::ValidateHandle( obj0e, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0f, 0 ), 0) // should fail // Delete the only one left delete obj0d; // test the handles ASSERT_EQUAL(p4base::ValidateHandle( obj0a, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0b, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0c, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0d, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0e, 0 ), 0) // should fail ASSERT_EQUAL(p4base::ValidateHandle( obj0f, 0 ), 0) // should fail // good ol' object 1 should still be valid r0 = p4base::ValidateHandle( obj1, 1 ); ASSERT_EQUAL(r0, 1) delete obj1; return 1; // we passed all tests! }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 19707 | MikeEheler |
Integrate revision 19079 from //guest/perforce_software/p4api-net/main/... into //guest/MikeEheler/p4api.net/... |
||
#1 | 14773 | MikeEheler |
Populate -o //guest/perforce_software/p4api.net/... //guest/MikeEheler/p4api.net/.... |
||
//guest/perforce_software/p4api.net/p4bridge-unit-test/TestP4Base.cpp | |||||
#3 | 11220 | Matt Attaway | Update Workshop version with most recent 14.2 patch of p4api.net | ||
#2 | 8964 | Bill | fix line endings | ||
#1 | 8873 | Matt Attaway | Initial add of the P4API.NET source code |