- #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 | |
---|---|---|---|---|---|
#1 | 13946 | OmegaNemesis28 | Merging //guest/perforce_software/p4api.net/... to //guest/omeganemesis28/p4api.net/...... « |
10 years ago | |
//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 | 10 years ago | |
#2 | 8964 | Bill | fix line endings | 11 years ago | |
#1 | 8873 | Matt Attaway | Initial add of the P4API.NET source code | 11 years ago |