[tests] Fix -Werror=shadow issues in the unit tests
This commit is contained in:
@@ -11,16 +11,12 @@ TEST(ActorRef, CanOutliveActor) {
|
||||
// An ActorRef can outlive its actor. Doing does not extend the actor's lifetime.
|
||||
// Sending a message to an ActorRef whose actor has died is a no-op.
|
||||
|
||||
struct Test {
|
||||
struct TestActorRef {
|
||||
bool& died;
|
||||
|
||||
Test(ActorRef<Test>, bool& died_)
|
||||
: died(died_) {
|
||||
}
|
||||
TestActorRef(ActorRef<TestActorRef>, bool& died_) : died(died_) {}
|
||||
|
||||
~Test() {
|
||||
died = true;
|
||||
}
|
||||
~TestActorRef() { died = true; }
|
||||
|
||||
void receive() {
|
||||
FAIL();
|
||||
@@ -29,20 +25,19 @@ TEST(ActorRef, CanOutliveActor) {
|
||||
|
||||
bool died = false;
|
||||
|
||||
ActorRef<Test> test = [&] () {
|
||||
return Actor<Test>(Scheduler::GetBackground(), std::ref(died)).self();
|
||||
ActorRef<TestActorRef> test = [&]() {
|
||||
return Actor<TestActorRef>(Scheduler::GetBackground(), std::ref(died)).self();
|
||||
}();
|
||||
|
||||
EXPECT_TRUE(died);
|
||||
test.invoke(&Test::receive);
|
||||
test.invoke(&TestActorRef::receive);
|
||||
}
|
||||
|
||||
TEST(ActorRef, Ask) {
|
||||
// Ask returns a Future eventually returning the result
|
||||
|
||||
struct Test {
|
||||
|
||||
Test(ActorRef<Test>) {}
|
||||
struct TestActorRef {
|
||||
TestActorRef(ActorRef<TestActorRef>) {}
|
||||
|
||||
int gimme() {
|
||||
return 20;
|
||||
@@ -53,32 +48,31 @@ TEST(ActorRef, Ask) {
|
||||
}
|
||||
};
|
||||
|
||||
Actor<Test> actor(Scheduler::GetBackground());
|
||||
ActorRef<Test> ref = actor.self();
|
||||
Actor<TestActorRef> actor(Scheduler::GetBackground());
|
||||
ActorRef<TestActorRef> ref = actor.self();
|
||||
|
||||
EXPECT_EQ(20, ref.ask(&Test::gimme).get());
|
||||
EXPECT_EQ(30, ref.ask(&Test::echo, 30).get());
|
||||
EXPECT_EQ(20, ref.ask(&TestActorRef::gimme).get());
|
||||
EXPECT_EQ(30, ref.ask(&TestActorRef::echo, 30).get());
|
||||
}
|
||||
|
||||
TEST(ActorRef, AskVoid) {
|
||||
// Ask waits for void methods
|
||||
|
||||
struct Test {
|
||||
|
||||
struct TestActorRef {
|
||||
bool& executed;
|
||||
|
||||
Test(bool& executed_) : executed(executed_) {
|
||||
}
|
||||
|
||||
|
||||
TestActorRef(bool& executed_) : executed(executed_) {}
|
||||
|
||||
void doIt() {
|
||||
executed = true;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
bool executed = false;
|
||||
Actor<Test> actor(Scheduler::GetBackground(), executed);
|
||||
ActorRef<Test> ref = actor.self();
|
||||
|
||||
ref.ask(&Test::doIt).get();
|
||||
Actor<TestActorRef> actor(Scheduler::GetBackground(), executed);
|
||||
ActorRef<TestActorRef> ref = actor.self();
|
||||
|
||||
ref.ask(&TestActorRef::doIt).get();
|
||||
EXPECT_TRUE(executed);
|
||||
}
|
||||
|
||||
@@ -86,14 +80,12 @@ TEST(ActorRef, AskOnDestroyedActor) {
|
||||
// Tests behavior when calling ask() after the
|
||||
// Actor has gone away. Should set a exception_ptr.
|
||||
|
||||
struct Test {
|
||||
struct TestActorRef {
|
||||
bool& died;
|
||||
|
||||
Test(ActorRef<Test>, bool& died_) : died(died_) {}
|
||||
TestActorRef(ActorRef<TestActorRef>, bool& died_) : died(died_) {}
|
||||
|
||||
~Test() {
|
||||
died = true;
|
||||
}
|
||||
~TestActorRef() { died = true; }
|
||||
|
||||
int receive() {
|
||||
return 1;
|
||||
@@ -101,12 +93,12 @@ TEST(ActorRef, AskOnDestroyedActor) {
|
||||
};
|
||||
bool died = false;
|
||||
|
||||
auto actor = std::make_unique<Actor<Test>>(Scheduler::GetBackground(), died);
|
||||
ActorRef<Test> ref = actor->self();
|
||||
auto actor = std::make_unique<Actor<TestActorRef>>(Scheduler::GetBackground(), died);
|
||||
ActorRef<TestActorRef> ref = actor->self();
|
||||
|
||||
actor.reset();
|
||||
EXPECT_TRUE(died);
|
||||
|
||||
auto result = ref.ask(&Test::receive);
|
||||
auto result = ref.ask(&TestActorRef::receive);
|
||||
EXPECT_ANY_THROW(result.get());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user