diff options
author | 2017-09-27 14:00:14 -0700 | |
---|---|---|
committer | 2017-09-27 14:03:59 -0700 | |
commit | 09157975b4601b0b66de1a6f52767f3e5556be05 (patch) | |
tree | 354be31f42d9f074649c09f6d2cbe6c495448bf7 /tensorflow/core/framework/function_test.cc | |
parent | c2ccdcd78e2c25296d83d1f2f81647ca3a16b3c1 (diff) |
Add FunctionDefHash
Also, use OpDefEqual instead of serialized string comparison in
FunctionDefsEqual because AttrDef repeated field order is irrelevant.
PiperOrigin-RevId: 170248224
Diffstat (limited to 'tensorflow/core/framework/function_test.cc')
-rw-r--r-- | tensorflow/core/framework/function_test.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tensorflow/core/framework/function_test.cc b/tensorflow/core/framework/function_test.cc index 13955addb5..23685e9c53 100644 --- a/tensorflow/core/framework/function_test.cc +++ b/tensorflow/core/framework/function_test.cc @@ -1281,36 +1281,46 @@ TEST(FunctionDefsEqualTest, TestFunctionDefsEqual) { // Equal functions const FunctionDef fdef1 = test::function::XTimesTwo(); FunctionDef fdef2 = test::function::XTimesTwo(); + uint64 hash1 = FunctionDefHash(fdef1); EXPECT_TRUE(FunctionDefsEqual(fdef1, fdef2)); + EXPECT_EQ(hash1, FunctionDefHash(fdef2)); // Different functions fdef2 = test::function::XTimesFour(); EXPECT_FALSE(FunctionDefsEqual(fdef1, fdef2)); + EXPECT_NE(hash1, FunctionDefHash(fdef2)); // Different signatures fdef2 = test::function::XTimesTwo(); fdef2.mutable_signature()->mutable_input_arg(0)->set_name("foo"); EXPECT_FALSE(FunctionDefsEqual(fdef1, fdef2)); + EXPECT_NE(hash1, FunctionDefHash(fdef2)); // Descriptions must be equal fdef2 = test::function::XTimesTwo(); fdef2.mutable_signature()->mutable_input_arg(0)->set_description("foo"); EXPECT_FALSE(FunctionDefsEqual(fdef1, fdef2)); + EXPECT_NE(hash1, FunctionDefHash(fdef2)); // Different NodeDefs fdef2 = test::function::XTimesTwo(); - *fdef2.add_node_def() = fdef2.node_def(0); + NodeDef* ndef = fdef2.add_node_def(); + *ndef = fdef2.node_def(0); + ndef->set_name("new_name"); EXPECT_FALSE(FunctionDefsEqual(fdef1, fdef2)); + EXPECT_NE(hash1, FunctionDefHash(fdef2)); // Different return values fdef2 = test::function::XTimesTwo(); (*fdef2.mutable_ret())["y"] = "y:z:1"; // originally is "y:z:0" EXPECT_FALSE(FunctionDefsEqual(fdef1, fdef2)); + EXPECT_NE(hash1, FunctionDefHash(fdef2)); // Different attributes fdef2 = test::function::XTimesTwo(); SetAttrValue(&fdef2, "ExtraAttr", true); EXPECT_FALSE(FunctionDefsEqual(fdef1, fdef2)); + EXPECT_NE(hash1, FunctionDefHash(fdef2)); // Multiple equivalent attributes; the two functions should be equal. fdef2 = test::function::XTimesTwo(); @@ -1322,6 +1332,7 @@ TEST(FunctionDefsEqualTest, TestFunctionDefsEqual) { SetAttrValue(&fdef2, "Baz", "abc"); SetAttrValue(&fdef3, "Baz", "abc"); EXPECT_TRUE(FunctionDefsEqual(fdef2, fdef3)); + EXPECT_EQ(FunctionDefHash(fdef2), FunctionDefHash(fdef3)); } } // end namespace |