Merge changes Icd5f39ae,I2a4e956c

am: 6d795c2883

Change-Id: Iada421394365a767712b553706a5897b21b2ae5a
This commit is contained in:
Colin Cross 2017-02-24 07:04:39 +00:00 committed by android-build-merger
commit 92466ff6ea
2 changed files with 32 additions and 22 deletions

View file

@ -18,33 +18,43 @@
cc_test {
name: "libutils_tests",
host_supported: true,
srcs: [
"BlobCache_test.cpp",
"BitSet_test.cpp",
"Looper_test.cpp",
"LruCache_test.cpp",
"RefBase_test.cpp",
"String8_test.cpp",
"StrongPointer_test.cpp",
"SystemClock_test.cpp",
"Unicode_test.cpp",
"Vector_test.cpp",
],
shared_libs: [
"libz",
"liblog",
"libcutils",
"libutils",
],
}
target: {
android: {
srcs: [
"BlobCache_test.cpp",
"SystemClock_test.cpp",
],
shared_libs: [
"libz",
"liblog",
"libcutils",
"libutils",
],
},
host: {
static_libs: [
"libutils",
"liblog",
],
},
},
cc_test_host {
name: "libutils_tests_host",
srcs: ["Vector_test.cpp"],
static_libs: [
"libutils",
"liblog",
cflags: [
"-Wall",
"-Wextra",
"-Werror",
],
}

View file

@ -21,13 +21,13 @@
using namespace android;
class Foo : public LightRefBase<Foo> {
class SPFoo : public LightRefBase<SPFoo> {
public:
explicit Foo(bool* deleted_check) : mDeleted(deleted_check) {
explicit SPFoo(bool* deleted_check) : mDeleted(deleted_check) {
*mDeleted = false;
}
~Foo() {
~SPFoo() {
*mDeleted = true;
}
private:
@ -36,13 +36,13 @@ private:
TEST(StrongPointer, move) {
bool isDeleted;
Foo* foo = new Foo(&isDeleted);
SPFoo* foo = new SPFoo(&isDeleted);
ASSERT_EQ(0, foo->getStrongCount());
ASSERT_FALSE(isDeleted) << "Already deleted...?";
sp<Foo> sp1(foo);
sp<SPFoo> sp1(foo);
ASSERT_EQ(1, foo->getStrongCount());
{
sp<Foo> sp2 = std::move(sp1);
sp<SPFoo> sp2 = std::move(sp1);
ASSERT_EQ(1, foo->getStrongCount()) << "std::move failed, incremented refcnt";
ASSERT_EQ(nullptr, sp1.get()) << "std::move failed, sp1 is still valid";
// The strong count isn't increasing, let's double check the old object
@ -52,7 +52,7 @@ TEST(StrongPointer, move) {
ASSERT_FALSE(isDeleted) << "deleted too early! still has a reference!";
{
// Now let's double check it deletes on time
sp<Foo> sp2 = std::move(sp1);
sp<SPFoo> sp2 = std::move(sp1);
}
ASSERT_TRUE(isDeleted) << "foo was leaked!";
}