From: Mirek Klimos Date: Fri, 13 May 2016 21:17:12 +0000 (-0700) Subject: Test creation of RequestContext inside a fiber task X-Git-Tag: 2016.07.26~237 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;ds=sidebyside;h=aabeca717ad6cb7e168fbfdcd0ed9c29bf0fa0e2;p=folly.git Test creation of RequestContext inside a fiber task Summary: ^, as discussed on D3279644 Reviewed By: andriigrynenko Differential Revision: D3299473 fbshipit-source-id: dc302132db64399f768d69c641f848d0da1075c4 --- diff --git a/folly/experimental/fibers/test/FibersTest.cpp b/folly/experimental/fibers/test/FibersTest.cpp index c19e95a0..c5b14f18 100644 --- a/folly/experimental/fibers/test/FibersTest.cpp +++ b/folly/experimental/fibers/test/FibersTest.cpp @@ -1236,10 +1236,11 @@ TEST(FiberManager, RequestContext) { bool checkRun1 = false; bool checkRun2 = false; bool checkRun3 = false; - + bool checkRun4 = false; folly::fibers::Baton baton1; folly::fibers::Baton baton2; folly::fibers::Baton baton3; + folly::fibers::Baton baton4; folly::RequestContext::create(); auto rcontext1 = folly::RequestContext::get(); @@ -1276,6 +1277,15 @@ TEST(FiberManager, RequestContext) { checkRun3 = true; }); + folly::RequestContext::setContext(nullptr); + fm.addTask([&]() { + folly::RequestContext::create(); + auto rcontext4 = folly::RequestContext::get(); + baton4.wait(); + EXPECT_EQ(rcontext4, folly::RequestContext::get()); + checkRun4 = true; + }); + folly::RequestContext::create(); auto rcontext = folly::RequestContext::get(); @@ -1299,6 +1309,12 @@ TEST(FiberManager, RequestContext) { fm.loopUntilNoReady(); EXPECT_TRUE(checkRun3); EXPECT_EQ(rcontext, folly::RequestContext::get()); + + baton4.post(); + EXPECT_EQ(rcontext, folly::RequestContext::get()); + fm.loopUntilNoReady(); + EXPECT_TRUE(checkRun4); + EXPECT_EQ(rcontext, folly::RequestContext::get()); } TEST(FiberManager, resizePeriodically) {