Commit d7a3744c authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Simplify folly/test/ExecutorTest.cpp

Summary:
[Folly] Simplify `folly/test/ExecutorTest.cpp`.

* `auto` is fine.
* `auto` is equivalent to `auto&&` when copy-elision is performed - in the former case, the compiler may use copy-elision to elide materialization of a temporary, whereas in the latter case, the compiler must materialize a temporary, rendering them equivalent..
* `std::addressof` is useful only for unknown types; prefix-`&` is fine for known types which do not overload that operator.

Reviewed By: Orvid

Differential Revision: D8226453

fbshipit-source-id: c987c71d65c01a2d8ca81960f796fcc6100c3484
parent 711b3fdc
...@@ -43,9 +43,9 @@ TEST(ExecutorTest, KeepAliveBasic) { ...@@ -43,9 +43,9 @@ TEST(ExecutorTest, KeepAliveBasic) {
KeepAliveTestExecutor exec; KeepAliveTestExecutor exec;
{ {
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec); auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka); EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get()); EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount); EXPECT_EQ(1, exec.refCount);
} }
...@@ -56,15 +56,15 @@ TEST(ExecutorTest, KeepAliveMove) { ...@@ -56,15 +56,15 @@ TEST(ExecutorTest, KeepAliveMove) {
KeepAliveTestExecutor exec; KeepAliveTestExecutor exec;
{ {
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec); auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka); EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get()); EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount); EXPECT_EQ(1, exec.refCount);
Executor::KeepAlive<KeepAliveTestExecutor> ka2{std::move(ka)}; auto ka2 = std::move(ka);
EXPECT_FALSE(ka); EXPECT_FALSE(ka);
EXPECT_TRUE(ka2); EXPECT_TRUE(ka2);
EXPECT_EQ(std::addressof(exec), ka2.get()); EXPECT_EQ(&exec, ka2.get());
EXPECT_EQ(1, exec.refCount); EXPECT_EQ(1, exec.refCount);
} }
...@@ -75,16 +75,15 @@ TEST(ExecutorTest, KeepAliveConvert) { ...@@ -75,16 +75,15 @@ TEST(ExecutorTest, KeepAliveConvert) {
KeepAliveTestExecutor exec; KeepAliveTestExecutor exec;
{ {
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec); auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka); EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get()); EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount); EXPECT_EQ(1, exec.refCount);
// convert to Executor::KeepAlive<Executor> Executor::KeepAlive<Executor> ka2 = std::move(ka); // conversion
Executor::KeepAlive<Executor> ka2{std::move(ka)};
EXPECT_FALSE(ka); EXPECT_FALSE(ka);
EXPECT_TRUE(ka2); EXPECT_TRUE(ka2);
EXPECT_EQ(std::addressof(exec), ka2.get()); EXPECT_EQ(&exec, ka2.get());
EXPECT_EQ(1, exec.refCount); EXPECT_EQ(1, exec.refCount);
} }
...@@ -95,15 +94,15 @@ TEST(ExecutorTest, KeepAliveCopy) { ...@@ -95,15 +94,15 @@ TEST(ExecutorTest, KeepAliveCopy) {
KeepAliveTestExecutor exec; KeepAliveTestExecutor exec;
{ {
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec); auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka); EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get()); EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount); EXPECT_EQ(1, exec.refCount);
Executor::KeepAlive<KeepAliveTestExecutor>&& ka2 = ka.copy(); auto ka2 = ka.copy();
EXPECT_TRUE(ka); EXPECT_TRUE(ka);
EXPECT_TRUE(ka2); EXPECT_TRUE(ka2);
EXPECT_EQ(std::addressof(exec), ka2.get()); EXPECT_EQ(&exec, ka2.get());
EXPECT_EQ(2, exec.refCount); EXPECT_EQ(2, exec.refCount);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment