KPath.Adopt(): Fixed path length.

* Issue was hidden due to inappropriate test values; changed test
  to uncover it.
This commit is contained in:
Axel Dörfler 2017-04-30 16:29:48 +02:00
parent eac83fb33e
commit f94671c33d
2 changed files with 6 additions and 5 deletions

View File

@ -96,6 +96,7 @@ KPath::Adopt(KPath& other)
fBuffer = other.fBuffer;
fBufferSize = other.fBufferSize;
fPathLength = other.fPathLength;
other.fBuffer = NULL;
other.fBufferSize = 0;

View File

@ -179,19 +179,19 @@ KPathTest::TestRemoveLeaf()
void
KPathTest::TestAdopt()
{
KPath one("one", false, 10);
KPath one("first", false, 10);
CPPUNIT_ASSERT(one.InitCheck() == B_OK);
CPPUNIT_ASSERT(one.BufferSize() == 10);
CPPUNIT_ASSERT(one.Length() == 3);
KPath two("two", false, 20);
CPPUNIT_ASSERT(one.Length() == 5);
KPath two("second", false, 20);
CPPUNIT_ASSERT(two.InitCheck() == B_OK);
CPPUNIT_ASSERT(two.BufferSize() == 20);
one.Adopt(two);
CPPUNIT_ASSERT(one.InitCheck() == B_OK);
CPPUNIT_ASSERT(one.BufferSize() == 20);
CPPUNIT_ASSERT(one.Length() == 3);
CPPUNIT_ASSERT(strcmp(one.Path(), "two") == 0);
CPPUNIT_ASSERT(one.Length() == 6);
CPPUNIT_ASSERT(strcmp(one.Path(), "second") == 0);
CPPUNIT_ASSERT(two.Length() == 0);
CPPUNIT_ASSERT(two.BufferSize() == 0);
// CPPUNIT_ASSERT(two.InitCheck() == B_NO_INIT);