aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/c/c_api_test.cc
diff options
context:
space:
mode:
authorGravatar Skye Wanderman-Milne <skyewm@google.com>2018-01-23 14:06:13 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-01-23 14:09:50 -0800
commitd50f68df6d1e4e41f4486ee71626454f6bd3ffe4 (patch)
tree66bea304acf378b017ac6c5233e98063a8c0582d /tensorflow/c/c_api_test.cc
parentfa35e11bca893dde9177b6b9f8a335453ac97eee (diff)
C API: don't return source/sink control edges.
PiperOrigin-RevId: 182989157
Diffstat (limited to 'tensorflow/c/c_api_test.cc')
-rw-r--r--tensorflow/c/c_api_test.cc31
1 files changed, 28 insertions, 3 deletions
diff --git a/tensorflow/c/c_api_test.cc b/tensorflow/c/c_api_test.cc
index df697e16d3..01954eb235 100644
--- a/tensorflow/c/c_api_test.cc
+++ b/tensorflow/c/c_api_test.cc
@@ -575,7 +575,7 @@ TEST(CAPI, ImportGraphDef) {
TF_Status* s = TF_NewStatus();
TF_Graph* graph = TF_NewGraph();
- // Create a graph with two nodes: x and 3
+ // Create a simple graph.
Placeholder(graph, s);
ASSERT_EQ(TF_OK, TF_GetCode(s)) << TF_Message(s);
ASSERT_TRUE(TF_GraphOperationByName(graph, "feed") != nullptr);
@@ -586,7 +586,7 @@ TEST(CAPI, ImportGraphDef) {
ASSERT_EQ(TF_OK, TF_GetCode(s)) << TF_Message(s);
ASSERT_TRUE(TF_GraphOperationByName(graph, "neg") != nullptr);
- // Export to a GraphDef
+ // Export to a GraphDef.
TF_Buffer* graph_def = TF_NewBuffer();
TF_GraphToGraphDef(graph, graph_def, s);
ASSERT_EQ(TF_OK, TF_GetCode(s)) << TF_Message(s);
@@ -606,6 +606,31 @@ TEST(CAPI, ImportGraphDef) {
ASSERT_TRUE(feed != nullptr);
ASSERT_TRUE(neg != nullptr);
+ // Test basic structure of the imported graph.
+ EXPECT_EQ(0, TF_OperationNumInputs(scalar));
+ EXPECT_EQ(0, TF_OperationNumInputs(feed));
+ ASSERT_EQ(1, TF_OperationNumInputs(neg));
+ TF_Output neg_input = TF_OperationInput({neg, 0});
+ EXPECT_EQ(scalar, neg_input.oper);
+ EXPECT_EQ(0, neg_input.index);
+
+ // Test that we can't see control edges involving the source and sink nodes.
+ TF_Operation* control_ops[100];
+ EXPECT_EQ(0, TF_OperationNumControlInputs(scalar));
+ EXPECT_EQ(0, TF_OperationGetControlInputs(scalar, control_ops, 100));
+ EXPECT_EQ(0, TF_OperationNumControlOutputs(scalar));
+ EXPECT_EQ(0, TF_OperationGetControlOutputs(scalar, control_ops, 100));
+
+ EXPECT_EQ(0, TF_OperationNumControlInputs(feed));
+ EXPECT_EQ(0, TF_OperationGetControlInputs(feed, control_ops, 100));
+ EXPECT_EQ(0, TF_OperationNumControlOutputs(feed));
+ EXPECT_EQ(0, TF_OperationGetControlOutputs(feed, control_ops, 100));
+
+ EXPECT_EQ(0, TF_OperationNumControlInputs(neg));
+ EXPECT_EQ(0, TF_OperationGetControlInputs(neg, control_ops, 100));
+ EXPECT_EQ(0, TF_OperationNumControlOutputs(neg));
+ EXPECT_EQ(0, TF_OperationGetControlOutputs(neg, control_ops, 100));
+
// Import it again, with an input mapping, return outputs, and a return
// operation, into the same graph.
TF_DeleteImportGraphDefOptions(opts);
@@ -629,7 +654,7 @@ TEST(CAPI, ImportGraphDef) {
ASSERT_TRUE(neg2 != nullptr);
// Check input mapping
- TF_Output neg_input = TF_OperationInput({neg, 0});
+ neg_input = TF_OperationInput({neg, 0});
EXPECT_EQ(scalar, neg_input.oper);
EXPECT_EQ(0, neg_input.index);