mirror of
https://github.com/clearlinux/folly.git
synced 2026-09-01 02:34:43 +00:00
(Wangle) Fix typo
Summary: This was supposed to be the `Result` type, since it's called on the Future returned by the lambda. Test Plan: Added tests for void and different types in vector/lambda. Reviewed By: mhl@fb.com Subscribers: folly-diffs@, jsedgwick, yfeldblum, chalfant FB internal diff: D2087819 Tasks: 7126300 Signature: t1:2087819:1432142435:72914fa64eff03454774b87a24c426379defab3b Blame Revision: rFBCODEf229322bc273190a85b5e995dcd8209b1fbf0825
This commit is contained in:
@@ -758,7 +758,7 @@ window(Collection input, F func, size_t n) {
|
||||
// Using setCallback_ directly since we don't need the Future
|
||||
ctx->func_(std::move(ctx->input_[i])).setCallback_(
|
||||
// ctx is captured by value
|
||||
[ctx, i](Try<ItT>&& t) {
|
||||
[ctx, i](Try<Result>&& t) {
|
||||
ctx->promises_[i].setTry(std::move(t));
|
||||
// Chain another future onto this one
|
||||
spawn(std::move(ctx));
|
||||
|
||||
@@ -690,7 +690,8 @@ TEST(Future, unwrap) {
|
||||
EXPECT_EQ(7, f.value());
|
||||
}
|
||||
|
||||
TEST(Future, stream) {
|
||||
TEST(Future, window) {
|
||||
// int -> Future<int>
|
||||
auto fn = [](vector<int> input, size_t window_size, size_t expect) {
|
||||
auto res = reduce(
|
||||
window(
|
||||
@@ -704,12 +705,12 @@ TEST(Future, stream) {
|
||||
EXPECT_EQ(expect, res);
|
||||
};
|
||||
{
|
||||
// streaming 2 at a time
|
||||
// 2 in-flight at a time
|
||||
vector<int> input = {1, 2, 3};
|
||||
fn(input, 2, 6);
|
||||
}
|
||||
{
|
||||
// streaming 4 at a time
|
||||
// 4 in-flight at a time
|
||||
vector<int> input = {1, 2, 3};
|
||||
fn(input, 4, 6);
|
||||
}
|
||||
@@ -718,6 +719,33 @@ TEST(Future, stream) {
|
||||
vector<int> input;
|
||||
fn(input, 1, 0);
|
||||
}
|
||||
{
|
||||
// int -> Future<void>
|
||||
auto res = reduce(
|
||||
window(
|
||||
std::vector<int>({1, 2, 3}),
|
||||
[](int i) { return makeFuture(); },
|
||||
2),
|
||||
0,
|
||||
[](int sum, const Try<void>& b) {
|
||||
EXPECT_TRUE(b.hasValue());
|
||||
return sum + 1;
|
||||
}).get();
|
||||
EXPECT_EQ(3, res);
|
||||
}
|
||||
{
|
||||
// string -> return Future<int>
|
||||
auto res = reduce(
|
||||
window(
|
||||
std::vector<std::string>{"1", "2", "3"},
|
||||
[](std::string s) { return makeFuture<int>(folly::to<int>(s)); },
|
||||
2),
|
||||
0,
|
||||
[](int sum, const Try<int>& b) {
|
||||
return sum + *b;
|
||||
}).get();
|
||||
EXPECT_EQ(6, res);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(Future, collectAll) {
|
||||
@@ -1807,7 +1835,7 @@ TEST(Reduce, Chain) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST(Reduce, Streaming) {
|
||||
TEST(Reduce, UnorderedReduce) {
|
||||
{
|
||||
std::vector<Future<int>> fs;
|
||||
fs.push_back(makeFuture(1));
|
||||
@@ -1841,7 +1869,7 @@ TEST(Reduce, Streaming) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST(Reduce, StreamingException) {
|
||||
TEST(Reduce, UnorderedReduceException) {
|
||||
Promise<int> p1;
|
||||
Promise<int> p2;
|
||||
Promise<int> p3;
|
||||
|
||||
Reference in New Issue
Block a user