2 * Copyright 2015 Facebook, Inc.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <gtest/gtest.h>
19 #include <folly/futures/Future.h>
23 using namespace folly;
27 auto fn = [](std::vector<int> input, size_t window_size, size_t expect) {
31 [](int i) { return makeFuture(i); },
34 [](int sum, const Try<int>& b) {
37 EXPECT_EQ(expect, res);
40 // 2 in-flight at a time
41 std::vector<int> input = {1, 2, 3};
45 // 4 in-flight at a time
46 std::vector<int> input = {1, 2, 3};
51 std::vector<int> input;
55 // int -> Future<void>
58 std::vector<int>({1, 2, 3}),
59 [](int i) { return makeFuture(); },
62 [](int sum, const Try<void>& b) {
63 EXPECT_TRUE(b.hasValue());
69 // string -> return Future<int>
72 std::vector<std::string>{"1", "2", "3"},
73 [](std::string s) { return makeFuture<int>(folly::to<int>(s)); },
76 [](int sum, const Try<int>& b) {