aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Manjunath Kudlur <keveman@google.com>2016-12-08 13:22:27 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2016-12-08 13:44:58 -0800
commit0e1ff10ec3c4dd3f44cd312fa392aa04e9f3c662 (patch)
tree323c4f9840f432a31d8fcf252a9e7662b56825a9
parent158f2a7272fd2fa679ea162cc2fb30383978e70d (diff)
Check for error status after NodeBuilder::Finalize.
Fixes #5871 Change: 141475958
-rw-r--r--tensorflow/cc/framework/cc_op_gen.cc1
-rw-r--r--tensorflow/cc/framework/cc_ops_test.cc11
2 files changed, 12 insertions, 0 deletions
diff --git a/tensorflow/cc/framework/cc_op_gen.cc b/tensorflow/cc/framework/cc_op_gen.cc
index cdc4ab7e23..d191a73547 100644
--- a/tensorflow/cc/framework/cc_op_gen.cc
+++ b/tensorflow/cc/framework/cc_op_gen.cc
@@ -695,6 +695,7 @@ string OpInfo::GetConstructorBody() const {
strings::StrAppend(&body, " ", scope_str, ".UpdateBuilder(&builder);\n");
strings::StrAppend(&body, " ", scope_str, ".UpdateStatus(builder.Finalize(",
scope_str, ".graph(), &ret));\n");
+ strings::StrAppend(&body, " ", return_on_error, "\n");
// TODO(b/28152992): Enable this code-path once we have converted
// all python shape functions to call their C++ versions.
diff --git a/tensorflow/cc/framework/cc_ops_test.cc b/tensorflow/cc/framework/cc_ops_test.cc
index 16a0827b5f..1a055bf625 100644
--- a/tensorflow/cc/framework/cc_ops_test.cc
+++ b/tensorflow/cc/framework/cc_ops_test.cc
@@ -238,4 +238,15 @@ TEST(CCOpTest, EmptyConst) {
EXPECT_FALSE(root.status().ok());
}
+TEST(CCOpTest, InvalidFinalize) {
+ Scope root = Scope::NewRootScope();
+ auto read_up_to =
+ ops::ReaderReadUpTo(root, Variable(root, {}, DT_STRING),
+ Variable(root, {}, DT_STRING), static_cast<int32>(2));
+ EXPECT_FALSE(root.status().ok());
+ auto err_msg = root.status().error_message();
+ EXPECT_NE(err_msg.find("'num_records' passed int32 expected int64"),
+ string::npos);
+}
+
} // namespace tensorflow