Project import generated by Copybara.
GitOrigin-RevId: 6a704ded0bf489614797082e7e7cda1068477ef5
This commit is contained in:
@@ -22,15 +22,16 @@
|
||||
namespace mediapipe {
|
||||
|
||||
TEST(GraphTest, MinimumDefaultExecutorStackSizeExistingConfigSizeUnspecified) {
|
||||
CalculatorGraphConfig config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] { num_threads: 2 }
|
||||
}
|
||||
}
|
||||
)");
|
||||
CalculatorGraphConfig config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] { num_threads: 2 }
|
||||
}
|
||||
}
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
@@ -39,24 +40,25 @@ TEST(GraphTest, MinimumDefaultExecutorStackSizeExistingConfigSizeUnspecified) {
|
||||
}
|
||||
}
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
tool::EnsureMinimumDefaultExecutorStackSize(131072, &config);
|
||||
EXPECT_THAT(config, EqualsProto(expected_config));
|
||||
}
|
||||
|
||||
TEST(GraphTest, MinimumDefaultExecutorStackSizeExistingConfigSizeTooSmall) {
|
||||
CalculatorGraphConfig config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
num_threads: 2
|
||||
stack_size: 65536
|
||||
CalculatorGraphConfig config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
num_threads: 2
|
||||
stack_size: 65536
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
@@ -65,24 +67,14 @@ TEST(GraphTest, MinimumDefaultExecutorStackSizeExistingConfigSizeTooSmall) {
|
||||
}
|
||||
}
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
tool::EnsureMinimumDefaultExecutorStackSize(131072, &config);
|
||||
EXPECT_THAT(config, EqualsProto(expected_config));
|
||||
}
|
||||
|
||||
TEST(GraphTest, MinimumDefaultExecutorStackSizeExistingConfigSizeLargeEnough) {
|
||||
CalculatorGraphConfig config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
num_threads: 2
|
||||
stack_size: 262144
|
||||
}
|
||||
}
|
||||
}
|
||||
)");
|
||||
CalculatorGraphConfig expected_config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
CalculatorGraphConfig config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
@@ -91,17 +83,29 @@ TEST(GraphTest, MinimumDefaultExecutorStackSizeExistingConfigSizeLargeEnough) {
|
||||
}
|
||||
}
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
num_threads: 2
|
||||
stack_size: 262144
|
||||
}
|
||||
}
|
||||
}
|
||||
)pb");
|
||||
tool::EnsureMinimumDefaultExecutorStackSize(131072, &config);
|
||||
EXPECT_THAT(config, EqualsProto(expected_config));
|
||||
}
|
||||
|
||||
TEST(GraphTest, MinimumDefaultExecutorStackSizeNumThreads) {
|
||||
CalculatorGraphConfig config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
num_threads: 1
|
||||
)");
|
||||
CalculatorGraphConfig config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
num_threads: 1
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_config =
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
executor {
|
||||
options {
|
||||
[mediapipe.ThreadPoolExecutorOptions.ext] {
|
||||
@@ -110,7 +114,7 @@ TEST(GraphTest, MinimumDefaultExecutorStackSizeNumThreads) {
|
||||
}
|
||||
}
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
tool::EnsureMinimumDefaultExecutorStackSize(131072, &config);
|
||||
EXPECT_THAT(config, EqualsProto(expected_config));
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace {
|
||||
class SimulationClockTest : public ::testing::Test {
|
||||
protected:
|
||||
void SetUpInFlightGraph() {
|
||||
graph_config_ = ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
graph_config_ = ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input_packets_0"
|
||||
node {
|
||||
calculator: 'FlowLimiterCalculator'
|
||||
@@ -84,7 +84,7 @@ class SimulationClockTest : public ::testing::Test {
|
||||
output_stream: 'output_packets_0'
|
||||
output_stream: 'finish_indicator'
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
}
|
||||
|
||||
// Initialize the test clock as a SimulationClock.
|
||||
@@ -246,7 +246,7 @@ TEST_F(SimulationClockTest, InFlight) {
|
||||
// and SimulationClock. With tsan, this test reveals a race condition unless
|
||||
// the SimulationClock destructor calls ThreadFinish to waits for all threads.
|
||||
TEST_F(SimulationClockTest, DestroyClock) {
|
||||
auto graph_config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
auto graph_config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
calculator: "LambdaCalculator"
|
||||
input_side_packet: 'callback_0'
|
||||
@@ -258,7 +258,7 @@ TEST_F(SimulationClockTest, DestroyClock) {
|
||||
input_stream: "input_1"
|
||||
output_stream: "output_1"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
|
||||
int input_count = 0;
|
||||
ProcessFunction wait_0 = [&](const InputStreamShardSet& inputs,
|
||||
|
||||
@@ -75,14 +75,14 @@ TEST(CallbackFromGeneratorTest, TestAddVectorSink) {
|
||||
|
||||
TEST(CalculatorGraph, OutputSummarySidePacketInClose) {
|
||||
CalculatorGraphConfig config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input_packets"
|
||||
node {
|
||||
calculator: "CountAndOutputSummarySidePacketInCloseCalculator"
|
||||
input_stream: "input_packets"
|
||||
output_side_packet: "num_of_packets"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
|
||||
Packet summary_packet;
|
||||
tool::AddSidePacketSink("num_of_packets", &config, &summary_packet);
|
||||
|
||||
@@ -71,7 +71,7 @@ class TestSubgraph : public Subgraph {
|
||||
absl::StatusOr<CalculatorGraphConfig> GetConfig(
|
||||
const SubgraphOptions& /*options*/) override {
|
||||
CalculatorGraphConfig config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "DATA:input_1"
|
||||
node {
|
||||
name: "regular_node"
|
||||
@@ -89,7 +89,7 @@ class TestSubgraph : public Subgraph {
|
||||
packet_generator: "SomePacketGenerator"
|
||||
output_side_packet: "side"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
return config;
|
||||
}
|
||||
};
|
||||
@@ -100,7 +100,7 @@ class PacketFactoryTestSubgraph : public Subgraph {
|
||||
absl::StatusOr<CalculatorGraphConfig> GetConfig(
|
||||
const SubgraphOptions& /*options*/) override {
|
||||
CalculatorGraphConfig config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "DATA:input_1"
|
||||
node {
|
||||
name: "regular_node"
|
||||
@@ -118,7 +118,7 @@ class PacketFactoryTestSubgraph : public Subgraph {
|
||||
packet_factory: "SomePacketFactory"
|
||||
output_side_packet: "side"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
return config;
|
||||
}
|
||||
};
|
||||
@@ -157,7 +157,7 @@ class NodeWithExecutorSubgraph : public Subgraph {
|
||||
absl::StatusOr<CalculatorGraphConfig> GetConfig(
|
||||
const SubgraphOptions& options) override {
|
||||
CalculatorGraphConfig config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "INPUT:foo"
|
||||
output_stream: "OUTPUT:bar"
|
||||
node {
|
||||
@@ -166,7 +166,7 @@ class NodeWithExecutorSubgraph : public Subgraph {
|
||||
output_stream: "bar"
|
||||
executor: "custom_thread_pool"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
return config;
|
||||
}
|
||||
};
|
||||
@@ -179,7 +179,7 @@ class EnclosingSubgraph : public Subgraph {
|
||||
absl::StatusOr<CalculatorGraphConfig> GetConfig(
|
||||
const SubgraphOptions& options) override {
|
||||
CalculatorGraphConfig config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "IN:in"
|
||||
output_stream: "OUT:out"
|
||||
node {
|
||||
@@ -187,7 +187,7 @@ class EnclosingSubgraph : public Subgraph {
|
||||
input_stream: "INPUT:in"
|
||||
output_stream: "OUTPUT:out"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
return config;
|
||||
}
|
||||
};
|
||||
@@ -195,7 +195,7 @@ REGISTER_MEDIAPIPE_GRAPH(EnclosingSubgraph);
|
||||
|
||||
TEST(SubgraphExpansionTest, TransformStreamNames) {
|
||||
CalculatorGraphConfig config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
calculator: "SomeSinkCalculator"
|
||||
input_stream: "input_1"
|
||||
@@ -203,9 +203,9 @@ TEST(SubgraphExpansionTest, TransformStreamNames) {
|
||||
input_stream: "AUDIO:0:input_3"
|
||||
input_stream: "AUDIO:1:input_4"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
calculator: "SomeSinkCalculator"
|
||||
input_stream: "input_1_foo"
|
||||
@@ -213,7 +213,7 @@ TEST(SubgraphExpansionTest, TransformStreamNames) {
|
||||
input_stream: "AUDIO:0:input_3_foo"
|
||||
input_stream: "AUDIO:1:input_4_foo"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
auto add_foo = [](absl::string_view s) { return absl::StrCat(s, "_foo"); };
|
||||
MP_EXPECT_OK(tool::TransformStreamNames(
|
||||
(*config.mutable_node())[0].mutable_input_stream(), add_foo));
|
||||
@@ -222,7 +222,7 @@ TEST(SubgraphExpansionTest, TransformStreamNames) {
|
||||
|
||||
TEST(SubgraphExpansionTest, TransformNames) {
|
||||
CalculatorGraphConfig config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input_1"
|
||||
node {
|
||||
calculator: "SomeRegularCalculator"
|
||||
@@ -238,9 +238,9 @@ TEST(SubgraphExpansionTest, TransformNames) {
|
||||
input_stream: "output_1"
|
||||
output_stream: "output_2"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_config =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "__sg0_input_1"
|
||||
node {
|
||||
calculator: "SomeRegularCalculator"
|
||||
@@ -257,7 +257,7 @@ TEST(SubgraphExpansionTest, TransformNames) {
|
||||
input_stream: "__sg0_output_1"
|
||||
output_stream: "__sg0_output_2"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
auto add_prefix = [](absl::string_view s) {
|
||||
return absl::StrCat("__sg0_", s);
|
||||
};
|
||||
@@ -267,14 +267,14 @@ TEST(SubgraphExpansionTest, TransformNames) {
|
||||
|
||||
TEST(SubgraphExpansionTest, FindCorrespondingStreams) {
|
||||
CalculatorGraphConfig config1 =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input_1"
|
||||
input_stream: "VIDEO:input_2"
|
||||
input_stream: "AUDIO:0:input_3"
|
||||
input_stream: "AUDIO:1:input_4"
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig config2 =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
calculator: "SomeSubgraph"
|
||||
input_stream: "foo"
|
||||
@@ -282,7 +282,7 @@ TEST(SubgraphExpansionTest, FindCorrespondingStreams) {
|
||||
input_stream: "AUDIO:0:baz"
|
||||
input_stream: "AUDIO:1:qux"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
std::map<std::string, std::string> stream_map;
|
||||
MP_EXPECT_OK(tool::FindCorrespondingStreams(
|
||||
&stream_map, config1.input_stream(), config2.node()[0].input_stream()));
|
||||
@@ -296,13 +296,13 @@ TEST(SubgraphExpansionTest, FindCorrespondingStreams) {
|
||||
TEST(SubgraphExpansionTest, FindCorrespondingStreamsNonexistentTag) {
|
||||
// The VIDEO tag does not exist in the subgraph.
|
||||
CalculatorGraphConfig config1 =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input_1"
|
||||
input_stream: "AUDIO:0:input_3"
|
||||
input_stream: "AUDIO:1:input_4"
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig config2 =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
calculator: "SomeSubgraph"
|
||||
input_stream: "foo"
|
||||
@@ -310,7 +310,7 @@ TEST(SubgraphExpansionTest, FindCorrespondingStreamsNonexistentTag) {
|
||||
input_stream: "AUDIO:0:baz"
|
||||
input_stream: "AUDIO:1:qux"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
std::map<std::string, std::string> stream_map;
|
||||
auto status = tool::FindCorrespondingStreams(
|
||||
&stream_map, config1.input_stream(), config2.node()[0].input_stream());
|
||||
@@ -326,13 +326,13 @@ TEST(SubgraphExpansionTest, FindCorrespondingStreamsNonexistentTag) {
|
||||
TEST(SubgraphExpansionTest, FindCorrespondingStreamsTooFewIndexes) {
|
||||
// The AUDIO tag has too few indexes in the subgraph (1 vs. 2).
|
||||
CalculatorGraphConfig config1 =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input_1"
|
||||
input_stream: "VIDEO:input_2"
|
||||
input_stream: "AUDIO:0:input_3"
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig config2 =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
calculator: "SomeSubgraph"
|
||||
input_stream: "foo"
|
||||
@@ -340,7 +340,7 @@ TEST(SubgraphExpansionTest, FindCorrespondingStreamsTooFewIndexes) {
|
||||
input_stream: "AUDIO:0:baz"
|
||||
input_stream: "AUDIO:1:qux"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
std::map<std::string, std::string> stream_map;
|
||||
auto status = tool::FindCorrespondingStreams(
|
||||
&stream_map, config1.input_stream(), config2.node()[0].input_stream());
|
||||
@@ -355,7 +355,7 @@ TEST(SubgraphExpansionTest, FindCorrespondingStreamsTooFewIndexes) {
|
||||
|
||||
TEST(SubgraphExpansionTest, ConnectSubgraphStreams) {
|
||||
CalculatorGraphConfig subgraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "A:input_1"
|
||||
input_stream: "B:input_2"
|
||||
output_stream: "O:output_2"
|
||||
@@ -379,9 +379,9 @@ TEST(SubgraphExpansionTest, ConnectSubgraphStreams) {
|
||||
input_side_packet: "side_input"
|
||||
output_side_packet: "side_output"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig supergraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
calculator: "SomeSubgraph"
|
||||
input_stream: "A:foo"
|
||||
@@ -390,11 +390,11 @@ TEST(SubgraphExpansionTest, ConnectSubgraphStreams) {
|
||||
input_side_packet: "SI:flip"
|
||||
output_side_packet: "SO:flop"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
// Note: graph input streams, output streams, and side packets on the
|
||||
// subgraph are not changed because they are going to be discarded anyway.
|
||||
CalculatorGraphConfig expected_subgraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "A:input_1"
|
||||
input_stream: "B:input_2"
|
||||
output_stream: "O:output_2"
|
||||
@@ -418,23 +418,23 @@ TEST(SubgraphExpansionTest, ConnectSubgraphStreams) {
|
||||
input_side_packet: "flip"
|
||||
output_side_packet: "flop"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
MP_EXPECT_OK(tool::ConnectSubgraphStreams(supergraph.node()[0], &subgraph));
|
||||
EXPECT_THAT(subgraph, mediapipe::EqualsProto(expected_subgraph));
|
||||
}
|
||||
|
||||
TEST(SubgraphExpansionTest, ExpandSubgraphs) {
|
||||
CalculatorGraphConfig supergraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
name: "simple_source"
|
||||
calculator: "SomeSourceCalculator"
|
||||
output_stream: "foo"
|
||||
}
|
||||
node { calculator: "TestSubgraph" input_stream: "DATA:foo" }
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_graph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
name: "simple_source"
|
||||
calculator: "SomeSourceCalculator"
|
||||
@@ -456,14 +456,14 @@ TEST(SubgraphExpansionTest, ExpandSubgraphs) {
|
||||
packet_generator: "SomePacketGenerator"
|
||||
output_side_packet: "testsubgraph__side"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
MP_EXPECT_OK(tool::ExpandSubgraphs(&supergraph));
|
||||
EXPECT_THAT(supergraph, mediapipe::EqualsProto(expected_graph));
|
||||
}
|
||||
|
||||
TEST(SubgraphExpansionTest, ValidateSubgraphFields) {
|
||||
CalculatorGraphConfig supergraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
name: "simple_source"
|
||||
calculator: "SomeSourceCalculator"
|
||||
@@ -475,7 +475,7 @@ TEST(SubgraphExpansionTest, ValidateSubgraphFields) {
|
||||
input_stream: "DATA:foo"
|
||||
buffer_size_hint: -1 # This field is only applicable to calculators.
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
absl::Status s1 = tool::ValidateSubgraphFields(supergraph.node(1));
|
||||
EXPECT_EQ(s1.code(), absl::StatusCode::kInvalidArgument);
|
||||
EXPECT_THAT(s1.message(), testing::HasSubstr("foo_subgraph"));
|
||||
@@ -491,7 +491,7 @@ TEST(SubgraphExpansionTest, ValidateSubgraphFields) {
|
||||
// subgraph executor support in the future.
|
||||
TEST(SubgraphExpansionTest, ExecutorFieldOfNodeInSubgraphPreserved) {
|
||||
CalculatorGraphConfig supergraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input"
|
||||
executor {
|
||||
name: "custom_thread_pool"
|
||||
@@ -505,9 +505,9 @@ TEST(SubgraphExpansionTest, ExecutorFieldOfNodeInSubgraphPreserved) {
|
||||
input_stream: "IN:input"
|
||||
output_stream: "OUT:output"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
CalculatorGraphConfig expected_graph = mediapipe::ParseTextProtoOrDie<
|
||||
CalculatorGraphConfig>(R"(
|
||||
CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "input"
|
||||
executor {
|
||||
name: "custom_thread_pool"
|
||||
@@ -523,7 +523,7 @@ TEST(SubgraphExpansionTest, ExecutorFieldOfNodeInSubgraphPreserved) {
|
||||
output_stream: "output"
|
||||
executor: "custom_thread_pool"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
MP_EXPECT_OK(tool::ExpandSubgraphs(&supergraph));
|
||||
EXPECT_THAT(supergraph, mediapipe::EqualsProto(expected_graph));
|
||||
}
|
||||
@@ -545,17 +545,17 @@ REGISTER_MEDIAPIPE_GRAPH(GraphServicesClientTestSubgraph);
|
||||
|
||||
TEST(SubgraphExpansionTest, GraphServicesUsage) {
|
||||
CalculatorGraphConfig supergraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node { calculator: "GraphServicesClientTestSubgraph" }
|
||||
)");
|
||||
)pb");
|
||||
|
||||
CalculatorGraphConfig expected_graph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
name: "graphservicesclienttestsubgraph__ExpectedNode"
|
||||
calculator: "ExpectedNode"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
GraphServiceManager service_manager;
|
||||
MP_ASSERT_OK(service_manager.SetServiceObject(
|
||||
kStringTestService, std::make_shared<std::string>("ExpectedNode")));
|
||||
|
||||
@@ -67,7 +67,7 @@ REGISTER_CALCULATOR(TripleIntCalculator);
|
||||
// Note that the input and output tags supplied to the container node,
|
||||
// must match the input and output tags required by the subnodes.
|
||||
CalculatorGraphConfig SubnodeContainerExample() {
|
||||
return mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
return mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_stream: "foo"
|
||||
input_stream: "enable"
|
||||
input_side_packet: "timezone"
|
||||
@@ -90,14 +90,14 @@ CalculatorGraphConfig SubnodeContainerExample() {
|
||||
output_stream: "output_foo"
|
||||
output_stream: "output_bar"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
}
|
||||
|
||||
// A testing example of a SwitchContainer containing two subnodes.
|
||||
// Note that the side-input and side-output tags supplied to the container node,
|
||||
// must match the side-input and side-output tags required by the subnodes.
|
||||
CalculatorGraphConfig SideSubnodeContainerExample() {
|
||||
return mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
return mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_side_packet: "foo"
|
||||
input_side_packet: "enable"
|
||||
output_side_packet: "output_bar"
|
||||
@@ -120,7 +120,7 @@ CalculatorGraphConfig SideSubnodeContainerExample() {
|
||||
output_side_packet: "output_foo"
|
||||
output_side_packet: "output_bar"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
}
|
||||
|
||||
// Runs the test container graph with a few input packets.
|
||||
@@ -217,7 +217,7 @@ TEST(SwitchContainerTest, ApplyToSubnodes) {
|
||||
EXPECT_TRUE(SubgraphRegistry::IsRegistered("SwitchContainer"));
|
||||
CalculatorGraphConfig supergraph = SubnodeContainerExample();
|
||||
CalculatorGraphConfig expected_graph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
node {
|
||||
name: "switchcontainer__SwitchDemuxCalculator"
|
||||
calculator: "SwitchDemuxCalculator"
|
||||
@@ -256,7 +256,7 @@ TEST(SwitchContainerTest, ApplyToSubnodes) {
|
||||
input_stream: "foo"
|
||||
input_stream: "enable"
|
||||
input_side_packet: "timezone"
|
||||
)");
|
||||
)pb");
|
||||
expected_graph = OrderNodes(expected_graph, {4, 0, 3, 1, 2});
|
||||
MP_EXPECT_OK(tool::ExpandSubgraphs(&supergraph));
|
||||
EXPECT_THAT(supergraph, mediapipe::EqualsProto(expected_graph));
|
||||
@@ -275,7 +275,7 @@ TEST(SwitchContainerTest, ApplyToSideSubnodes) {
|
||||
EXPECT_TRUE(SubgraphRegistry::IsRegistered("SwitchContainer"));
|
||||
CalculatorGraphConfig supergraph = SideSubnodeContainerExample();
|
||||
CalculatorGraphConfig expected_graph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_side_packet: "foo"
|
||||
input_side_packet: "enable"
|
||||
output_side_packet: "output_bar"
|
||||
@@ -314,7 +314,7 @@ TEST(SwitchContainerTest, ApplyToSideSubnodes) {
|
||||
output_side_packet: "output_foo"
|
||||
output_side_packet: "output_bar"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
expected_graph = OrderNodes(expected_graph, {4, 0, 3, 1, 2});
|
||||
MP_EXPECT_OK(tool::ExpandSubgraphs(&supergraph));
|
||||
EXPECT_THAT(supergraph, mediapipe::EqualsProto(expected_graph));
|
||||
@@ -332,7 +332,7 @@ TEST(SwitchContainerTest, RunWithSideSubnodes) {
|
||||
TEST(SwitchContainerTest, ValidateSideInputs) {
|
||||
EXPECT_TRUE(SubgraphRegistry::IsRegistered("SwitchContainer"));
|
||||
CalculatorGraphConfig supergraph =
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
|
||||
mediapipe::ParseTextProtoOrDie<CalculatorGraphConfig>(R"pb(
|
||||
input_side_packet: "foo"
|
||||
input_side_packet: "enable"
|
||||
output_side_packet: "output_bar"
|
||||
@@ -356,7 +356,7 @@ TEST(SwitchContainerTest, ValidateSideInputs) {
|
||||
output_side_packet: "output_foo"
|
||||
output_side_packet: "output_bar"
|
||||
}
|
||||
)");
|
||||
)pb");
|
||||
auto status = tool::ExpandSubgraphs(&supergraph);
|
||||
EXPECT_EQ(std::pair(status.code(), std::string(status.message())),
|
||||
std::pair(absl::StatusCode::kInvalidArgument,
|
||||
|
||||
Reference in New Issue
Block a user