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) {
KeepAliveTestExecutor exec;
{
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec);
auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get());
EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount);
}
......@@ -56,15 +56,15 @@ TEST(ExecutorTest, KeepAliveMove) {
KeepAliveTestExecutor exec;
{
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec);
auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get());
EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount);
Executor::KeepAlive<KeepAliveTestExecutor> ka2{std::move(ka)};
auto ka2 = std::move(ka);
EXPECT_FALSE(ka);
EXPECT_TRUE(ka2);
EXPECT_EQ(std::addressof(exec), ka2.get());
EXPECT_EQ(&exec, ka2.get());
EXPECT_EQ(1, exec.refCount);
}
......@@ -75,16 +75,15 @@ TEST(ExecutorTest, KeepAliveConvert) {
KeepAliveTestExecutor exec;
{
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec);
auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get());
EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount);
// convert to Executor::KeepAlive<Executor>
Executor::KeepAlive<Executor> ka2{std::move(ka)};
Executor::KeepAlive<Executor> ka2 = std::move(ka); // conversion
EXPECT_FALSE(ka);
EXPECT_TRUE(ka2);
EXPECT_EQ(std::addressof(exec), ka2.get());
EXPECT_EQ(&exec, ka2.get());
EXPECT_EQ(1, exec.refCount);
}
......@@ -95,15 +94,15 @@ TEST(ExecutorTest, KeepAliveCopy) {
KeepAliveTestExecutor exec;
{
Executor::KeepAlive<KeepAliveTestExecutor>&& ka = getKeepAliveToken(exec);
auto ka = getKeepAliveToken(exec);
EXPECT_TRUE(ka);
EXPECT_EQ(std::addressof(exec), ka.get());
EXPECT_EQ(&exec, ka.get());
EXPECT_EQ(1, exec.refCount);
Executor::KeepAlive<KeepAliveTestExecutor>&& ka2 = ka.copy();
auto ka2 = ka.copy();
EXPECT_TRUE(ka);
EXPECT_TRUE(ka2);
EXPECT_EQ(std::addressof(exec), ka2.get());
EXPECT_EQ(&exec, ka2.get());
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