aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tensorflow/cc/framework/cc_op_gen_test.cc5
-rw-r--r--tensorflow/cc/framework/scope.cc3
-rw-r--r--tensorflow/compiler/aot/codegen_test.cc3
-rw-r--r--tensorflow/compiler/aot/tfcompile_main.cc2
-rw-r--r--tensorflow/compiler/xla/service/hlo_graph_dumper.cc6
-rw-r--r--tensorflow/compiler/xla/service/user_computation.cc4
-rw-r--r--tensorflow/compiler/xla/tests/compute_constant_test.cc9
-rw-r--r--tensorflow/compiler/xla/tests/xla_hlo_profile_test.cc4
-rw-r--r--tensorflow/contrib/cloud/kernels/BUILD1
-rw-r--r--tensorflow/contrib/cloud/kernels/bigquery_table_accessor_test.cc5
-rw-r--r--tensorflow/contrib/session_bundle/session_bundle_test.cc30
-rw-r--r--tensorflow/contrib/session_bundle/signature_test.cc68
-rw-r--r--tensorflow/core/grappler/costs/BUILD1
-rw-r--r--tensorflow/core/grappler/costs/graph_properties.cc4
-rw-r--r--tensorflow/core/lib/io/inputbuffer_test.cc3
-rw-r--r--tensorflow/core/lib/io/recordio_test.cc3
-rw-r--r--tensorflow/python/framework/python_op_gen.cc2
-rw-r--r--tensorflow/python/framework/python_op_gen_main.cc4
-rw-r--r--tensorflow/stream_executor/kernel.cc3
-rw-r--r--tensorflow/stream_executor/lib/str_util.h2
20 files changed, 92 insertions, 70 deletions
diff --git a/tensorflow/cc/framework/cc_op_gen_test.cc b/tensorflow/cc/framework/cc_op_gen_test.cc
index 1e0f2d241b..5d9dfd95a5 100644
--- a/tensorflow/cc/framework/cc_op_gen_test.cc
+++ b/tensorflow/cc/framework/cc_op_gen_test.cc
@@ -19,6 +19,7 @@ limitations under the License.
#include "tensorflow/core/framework/op_gen_lib.h"
#include "tensorflow/core/lib/core/status_test_util.h"
#include "tensorflow/core/lib/io/path.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/test.h"
namespace tensorflow {
@@ -61,12 +62,12 @@ op {
)";
void ExpectHasSubstr(StringPiece s, StringPiece expected) {
- EXPECT_TRUE(s.contains(expected))
+ EXPECT_TRUE(str_util::StrContains(s, expected))
<< "'" << s << "' does not contain '" << expected << "'";
}
void ExpectDoesNotHaveSubstr(StringPiece s, StringPiece expected) {
- EXPECT_FALSE(s.contains(expected))
+ EXPECT_FALSE(str_util::StrContains(s, expected))
<< "'" << s << "' contains '" << expected << "'";
}
diff --git a/tensorflow/cc/framework/scope.cc b/tensorflow/cc/framework/scope.cc
index 7164249262..c143b97833 100644
--- a/tensorflow/cc/framework/scope.cc
+++ b/tensorflow/cc/framework/scope.cc
@@ -21,6 +21,7 @@ limitations under the License.
#include "tensorflow/core/framework/node_def_util.h"
#include "tensorflow/core/graph/graph_constructor.h"
#include "tensorflow/core/graph/node_builder.h"
+#include "tensorflow/core/lib/strings/str_util.h"
namespace tensorflow {
@@ -218,7 +219,7 @@ std::unordered_set<string> Scope::Impl::GetColocationConstraints(
if (GetNodeAttr(attrs, kColocationAttrName, &node_constraints).ok()) {
for (const string& entry : node_constraints) {
StringPiece s(entry);
- if (s.Consume(kColocationGroupPrefix)) {
+ if (str_util::ConsumePrefix(&s, kColocationGroupPrefix)) {
current_constraints.insert(s.ToString());
}
}
diff --git a/tensorflow/compiler/aot/codegen_test.cc b/tensorflow/compiler/aot/codegen_test.cc
index 972b7d51ec..2642536c4f 100644
--- a/tensorflow/compiler/aot/codegen_test.cc
+++ b/tensorflow/compiler/aot/codegen_test.cc
@@ -24,6 +24,7 @@ limitations under the License.
#include "tensorflow/core/lib/core/status_test_util.h"
#include "tensorflow/core/lib/core/stringpiece.h"
#include "tensorflow/core/lib/io/path.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/env.h"
#include "tensorflow/core/platform/test.h"
@@ -33,7 +34,7 @@ namespace {
void ExpectErrorContains(const Status& status, StringPiece str) {
EXPECT_NE(Status::OK(), status);
- EXPECT_TRUE(StringPiece(status.error_message()).contains(str))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(), str))
<< "expected error: " << status.error_message() << " to contain: " << str;
}
diff --git a/tensorflow/compiler/aot/tfcompile_main.cc b/tensorflow/compiler/aot/tfcompile_main.cc
index e2f01179d4..8ea014c2ee 100644
--- a/tensorflow/compiler/aot/tfcompile_main.cc
+++ b/tensorflow/compiler/aot/tfcompile_main.cc
@@ -55,7 +55,7 @@ const char kUsageHeader[] =
"\n";
Status ReadProtoFile(const string& fname, protobuf::Message* proto) {
- if (StringPiece(fname).ends_with(".pbtxt")) {
+ if (str_util::EndsWith(fname, ".pbtxt")) {
return ReadTextProto(Env::Default(), fname, proto);
} else {
return ReadBinaryProto(Env::Default(), fname, proto);
diff --git a/tensorflow/compiler/xla/service/hlo_graph_dumper.cc b/tensorflow/compiler/xla/service/hlo_graph_dumper.cc
index 1dc72355cf..25702dc65e 100644
--- a/tensorflow/compiler/xla/service/hlo_graph_dumper.cc
+++ b/tensorflow/compiler/xla/service/hlo_graph_dumper.cc
@@ -823,7 +823,7 @@ string HloDotDumper::GetInstructionNodeInlinedOperands(
// Otherwise, print e.g. "%constant.42 (s32[100])".
string constant_name;
- if (tensorflow::StringPiece(constant->name()).starts_with("constant")) {
+ if (tensorflow::str_util::StartsWith(constant->name(), "constant")) {
constant_name = constant->name();
} else {
constant_name = StrCat("constant ", constant->name());
@@ -1041,8 +1041,8 @@ string HloDotDumper::GetInstructionNodeLabel(const HloInstruction* instr) {
// The HLO instruction name contains usually the opcode, e.g. "%add.42" is
// an add instruction. In this case we render just the name.
- if (tensorflow::StringPiece(instr->name())
- .starts_with(HloOpcodeString(instr->opcode()))) {
+ if (tensorflow::str_util::StartsWith(instr->name(),
+ HloOpcodeString(instr->opcode()))) {
return Printf("<b>%s</b>", HtmlLikeStringSanitize(instr->name()));
}
string extended_opcode =
diff --git a/tensorflow/compiler/xla/service/user_computation.cc b/tensorflow/compiler/xla/service/user_computation.cc
index 0dca30a804..fcdb2e01fb 100644
--- a/tensorflow/compiler/xla/service/user_computation.cc
+++ b/tensorflow/compiler/xla/service/user_computation.cc
@@ -1284,8 +1284,8 @@ StatusOr<ComputationDataHandle> UserComputation::AddCustomCallInstruction(
TF_RETURN_IF_ERROR(LookUpRequest(handle).status());
}
- if (tensorflow::StringPiece(custom_call_request.call_target_name())
- .starts_with("$")) {
+ if (tensorflow::str_util::StartsWith(custom_call_request.call_target_name(),
+ "$")) {
return InvalidArgument(
"Invalid custom_call_target \"%s\": Call targets that start with '$' "
"are reserved for internal use.",
diff --git a/tensorflow/compiler/xla/tests/compute_constant_test.cc b/tensorflow/compiler/xla/tests/compute_constant_test.cc
index ec2c580670..e5a03b49ad 100644
--- a/tensorflow/compiler/xla/tests/compute_constant_test.cc
+++ b/tensorflow/compiler/xla/tests/compute_constant_test.cc
@@ -31,6 +31,7 @@ limitations under the License.
#include "tensorflow/compiler/xla/tests/test_macros.h"
#include "tensorflow/compiler/xla/tests/test_utils.h"
#include "tensorflow/compiler/xla/xla_data.pb.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/types.h"
namespace xla {
@@ -167,8 +168,8 @@ TEST_F(ComputeConstantTest, DirectParamMissing) {
EXPECT_FALSE(IsConstant(computation, &b));
auto value = ComputeConstantScalar<float>(client, computation, &b);
- EXPECT_TRUE(tensorflow::StringPiece(value.status().ToString())
- .contains("depends on a parameter"))
+ EXPECT_TRUE(tensorflow::str_util::StrContains(value.status().ToString(),
+ "depends on a parameter"))
<< value.status();
}
}
@@ -183,8 +184,8 @@ TEST_F(ComputeConstantTest, IndirectParamMissing) {
EXPECT_FALSE(IsConstant(computation, &b));
auto value = ComputeConstantScalar<float>(client, computation, &b);
- EXPECT_TRUE(tensorflow::StringPiece(value.status().ToString())
- .contains("depends on a parameter"))
+ EXPECT_TRUE(tensorflow::str_util::StrContains(value.status().ToString(),
+ "depends on a parameter"))
<< value.status();
}
}
diff --git a/tensorflow/compiler/xla/tests/xla_hlo_profile_test.cc b/tensorflow/compiler/xla/tests/xla_hlo_profile_test.cc
index 24b9f37a80..ff3418a128 100644
--- a/tensorflow/compiler/xla/tests/xla_hlo_profile_test.cc
+++ b/tensorflow/compiler/xla/tests/xla_hlo_profile_test.cc
@@ -27,6 +27,7 @@ limitations under the License.
#include "tensorflow/compiler/xla/tests/test_utils.h"
#include "tensorflow/core/lib/core/status_test_util.h"
#include "tensorflow/core/lib/gtl/flatmap.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/regexp.h"
#include "tensorflow/core/platform/test.h"
#include "tensorflow/core/platform/types.h"
@@ -294,7 +295,8 @@ XLA_TEST_F(HloProfileTest,
auto while_body_profile_start =
std::find_if(profile_output_lines.begin(), profile_output_lines.end(),
[](tensorflow::StringPiece s) {
- return s.starts_with("Execution profile for body");
+ return tensorflow::str_util::StartsWith(
+ s, "Execution profile for body");
});
ASSERT_NE(while_body_profile_start, profile_output_lines.end());
diff --git a/tensorflow/contrib/cloud/kernels/BUILD b/tensorflow/contrib/cloud/kernels/BUILD
index 56f930a9a8..d5fc604de9 100644
--- a/tensorflow/contrib/cloud/kernels/BUILD
+++ b/tensorflow/contrib/cloud/kernels/BUILD
@@ -73,6 +73,7 @@ tf_cc_test(
],
deps = [
":bigquery_table_accessor",
+ "//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
diff --git a/tensorflow/contrib/cloud/kernels/bigquery_table_accessor_test.cc b/tensorflow/contrib/cloud/kernels/bigquery_table_accessor_test.cc
index e9b79a066d..7416eb19d3 100644
--- a/tensorflow/contrib/cloud/kernels/bigquery_table_accessor_test.cc
+++ b/tensorflow/contrib/cloud/kernels/bigquery_table_accessor_test.cc
@@ -18,6 +18,7 @@ limitations under the License.
#include "tensorflow/core/example/feature.pb.h"
#include "tensorflow/core/lib/core/status_test_util.h"
#include "tensorflow/core/lib/gtl/stl_util.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/cloud/http_request_fake.h"
#include "tensorflow/core/platform/test.h"
@@ -28,8 +29,8 @@ constexpr char kTestProject[] = "test-project";
constexpr char kTestDataset[] = "test-dataset";
constexpr char kTestTable[] = "test-table";
-bool HasSubstr(const string& base, const string& substr) {
- bool ok = StringPiece(base).contains(substr);
+bool HasSubstr(StringPiece base, StringPiece substr) {
+ bool ok = str_util::StrContains(base, substr);
EXPECT_TRUE(ok) << base << ", expected substring " << substr;
return ok;
}
diff --git a/tensorflow/contrib/session_bundle/session_bundle_test.cc b/tensorflow/contrib/session_bundle/session_bundle_test.cc
index 6d997bac9e..612623ae30 100644
--- a/tensorflow/contrib/session_bundle/session_bundle_test.cc
+++ b/tensorflow/contrib/session_bundle/session_bundle_test.cc
@@ -30,6 +30,7 @@ limitations under the License.
#include "tensorflow/core/lib/core/status.h"
#include "tensorflow/core/lib/core/status_test_util.h"
#include "tensorflow/core/lib/io/path.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/test.h"
#include "tensorflow/core/platform/types.h"
#include "tensorflow/core/public/session.h"
@@ -239,8 +240,8 @@ TEST(LoadSessionBundleFromPath, BasicTestRunOptionsThreadPoolInvalid) {
// Expect failed session run calls with invalid run-options.
EXPECT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Invalid inter_op_thread_pool: 2"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Invalid inter_op_thread_pool: 2"))
<< status.error_message();
}
@@ -314,8 +315,8 @@ TEST_F(SessionBundleTest, ServingGraphEmpty) {
});
status_ = LoadSessionBundleFromPath(options_, path, &bundle_);
EXPECT_FALSE(status_.ok());
- EXPECT_TRUE(StringPiece(status_.error_message())
- .contains("Expected exactly one serving GraphDef"))
+ EXPECT_TRUE(str_util::StrContains(status_.error_message(),
+ "Expected exactly one serving GraphDef"))
<< status_.error_message();
}
@@ -330,8 +331,9 @@ TEST_F(SessionBundleTest, ServingGraphAnyIncorrectType) {
});
status_ = LoadSessionBundleFromPath(options_, path, &bundle_);
EXPECT_FALSE(status_.ok());
- EXPECT_TRUE(StringPiece(status_.error_message())
- .contains("Expected Any type_url for: tensorflow.GraphDef"))
+ EXPECT_TRUE(
+ str_util::StrContains(status_.error_message(),
+ "Expected Any type_url for: tensorflow.GraphDef"))
<< status_.error_message();
}
@@ -347,7 +349,8 @@ TEST_F(SessionBundleTest, ServingGraphAnyValueCorrupted) {
});
status_ = LoadSessionBundleFromPath(options_, path, &bundle_);
EXPECT_FALSE(status_.ok());
- EXPECT_TRUE(StringPiece(status_.error_message()).contains("Failed to unpack"))
+ EXPECT_TRUE(
+ str_util::StrContains(status_.error_message(), "Failed to unpack"))
<< status_.error_message();
}
@@ -362,9 +365,9 @@ TEST_F(SessionBundleTest, AssetFileAnyIncorrectType) {
});
status_ = LoadSessionBundleFromPath(options_, path, &bundle_);
EXPECT_FALSE(status_.ok());
- EXPECT_TRUE(
- StringPiece(status_.error_message())
- .contains("Expected Any type_url for: tensorflow.serving.AssetFile"))
+ EXPECT_TRUE(str_util::StrContains(
+ status_.error_message(),
+ "Expected Any type_url for: tensorflow.serving.AssetFile"))
<< status_.error_message();
}
@@ -380,7 +383,8 @@ TEST_F(SessionBundleTest, AssetFileAnyValueCorrupted) {
});
status_ = LoadSessionBundleFromPath(options_, path, &bundle_);
EXPECT_FALSE(status_.ok());
- EXPECT_TRUE(StringPiece(status_.error_message()).contains("Failed to unpack"))
+ EXPECT_TRUE(
+ str_util::StrContains(status_.error_message(), "Failed to unpack"))
<< status_.error_message();
}
@@ -395,8 +399,8 @@ TEST_F(SessionBundleTest, InitOpTooManyValues) {
});
status_ = LoadSessionBundleFromPath(options_, path, &bundle_);
EXPECT_FALSE(status_.ok());
- EXPECT_TRUE(StringPiece(status_.error_message())
- .contains("Expected exactly one serving init op"))
+ EXPECT_TRUE(str_util::StrContains(status_.error_message(),
+ "Expected exactly one serving init op"))
<< status_.error_message();
}
diff --git a/tensorflow/contrib/session_bundle/signature_test.cc b/tensorflow/contrib/session_bundle/signature_test.cc
index 741b7fde9b..b1ff55552e 100644
--- a/tensorflow/contrib/session_bundle/signature_test.cc
+++ b/tensorflow/contrib/session_bundle/signature_test.cc
@@ -26,6 +26,7 @@ limitations under the License.
#include "tensorflow/core/lib/core/status.h"
#include "tensorflow/core/lib/core/status_test_util.h"
#include "tensorflow/core/lib/core/stringpiece.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/test.h"
#include "tensorflow/core/public/session.h"
@@ -33,8 +34,8 @@ namespace tensorflow {
namespace serving {
namespace {
-static bool HasSubstr(const string& base, const string& substr) {
- bool ok = StringPiece(base).contains(substr);
+static bool HasSubstr(StringPiece base, StringPiece substr) {
+ bool ok = str_util::StrContains(base, substr);
EXPECT_TRUE(ok) << base << ", expected substring " << substr;
return ok;
}
@@ -69,8 +70,8 @@ TEST(GetClassificationSignature, MissingSignature) {
ClassificationSignature signature;
const Status status = GetClassificationSignature(meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Expected a classification signature"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Expected a classification signature"))
<< status.error_message();
}
@@ -86,8 +87,8 @@ TEST(GetClassificationSignature, WrongSignatureType) {
ClassificationSignature signature;
const Status status = GetClassificationSignature(meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Expected a classification signature"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Expected a classification signature"))
<< status.error_message();
}
@@ -122,8 +123,8 @@ TEST(GetNamedClassificationSignature, MissingSignature) {
const Status status =
GetNamedClassificationSignature("foo", meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Missing signature named \"foo\""))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Missing signature named \"foo\""))
<< status.error_message();
}
@@ -141,9 +142,9 @@ TEST(GetNamedClassificationSignature, WrongSignatureType) {
const Status status =
GetNamedClassificationSignature("foo", meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(
- StringPiece(status.error_message())
- .contains("Expected a classification signature for name \"foo\""))
+ EXPECT_TRUE(str_util::StrContains(
+ status.error_message(),
+ "Expected a classification signature for name \"foo\""))
<< status.error_message();
}
@@ -176,8 +177,8 @@ TEST(GetRegressionSignature, MissingSignature) {
RegressionSignature signature;
const Status status = GetRegressionSignature(meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Expected a regression signature"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Expected a regression signature"))
<< status.error_message();
}
@@ -193,8 +194,8 @@ TEST(GetRegressionSignature, WrongSignatureType) {
RegressionSignature signature;
const Status status = GetRegressionSignature(meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Expected a regression signature"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Expected a regression signature"))
<< status.error_message();
}
@@ -227,8 +228,8 @@ TEST(GetNamedSignature, MissingSignature) {
Signature signature;
const Status status = GetNamedSignature("foo", meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Missing signature named \"foo\""))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Missing signature named \"foo\""))
<< status.error_message();
}
@@ -370,7 +371,7 @@ TEST(RunClassification, RunNotOk) {
const Status status = RunClassification(signature, input_tensor, &session,
&classes_tensor, nullptr);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message()).contains("Data is gone"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(), "Data is gone"))
<< status.error_message();
}
@@ -386,7 +387,8 @@ TEST(RunClassification, TooManyOutputs) {
const Status status = RunClassification(signature, input_tensor, &session,
&classes_tensor, nullptr);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message()).contains("Expected 1 output"))
+ EXPECT_TRUE(
+ str_util::StrContains(status.error_message(), "Expected 1 output"))
<< status.error_message();
}
@@ -402,8 +404,9 @@ TEST(RunClassification, WrongBatchOutputs) {
const Status status = RunClassification(signature, input_tensor, &session,
&classes_tensor, nullptr);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Input batch size did not match output batch size"))
+ EXPECT_TRUE(
+ str_util::StrContains(status.error_message(),
+ "Input batch size did not match output batch size"))
<< status.error_message();
}
@@ -449,7 +452,7 @@ TEST_F(RunRegressionTest, RunNotOk) {
const Status status =
RunRegression(signature_, input_tensor_, &session_, &output_tensor_);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message()).contains("Data is gone"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(), "Data is gone"))
<< status.error_message();
}
@@ -460,8 +463,9 @@ TEST_F(RunRegressionTest, MismatchedSizeForBatchInputAndOutput) {
const Status status =
RunRegression(signature_, input_tensor_, &session_, &output_tensor_);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Input batch size did not match output batch size"))
+ EXPECT_TRUE(
+ str_util::StrContains(status.error_message(),
+ "Input batch size did not match output batch size"))
<< status.error_message();
}
@@ -488,7 +492,7 @@ TEST(GetSignatures, MissingSignature) {
const auto status = GetSignatures(meta_graph_def, &read_signatures);
EXPECT_EQ(tensorflow::error::FAILED_PRECONDITION, status.code());
EXPECT_TRUE(
- StringPiece(status.error_message()).contains("Expected exactly one"))
+ str_util::StrContains(status.error_message(), "Expected exactly one"))
<< status.error_message();
}
@@ -502,9 +506,9 @@ TEST(GetSignatures, WrongProtoInAny) {
Signatures read_signatures;
const auto status = GetSignatures(meta_graph_def, &read_signatures);
EXPECT_EQ(tensorflow::error::FAILED_PRECONDITION, status.code());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Expected Any type_url for: "
- "tensorflow.serving.Signatures"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Expected Any type_url for: "
+ "tensorflow.serving.Signatures"))
<< status.error_message();
}
@@ -519,7 +523,7 @@ TEST(GetSignatures, JunkInAny) {
Signatures read_signatures;
const auto status = GetSignatures(meta_graph_def, &read_signatures);
EXPECT_EQ(tensorflow::error::FAILED_PRECONDITION, status.code());
- EXPECT_TRUE(StringPiece(status.error_message()).contains("Failed to unpack"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(), "Failed to unpack"))
<< status.error_message();
}
@@ -567,7 +571,7 @@ TEST(GetSignatures, MultipleSignaturesNotOK) {
const auto status = GetSignatures(meta_graph_def, &read_signatures);
EXPECT_EQ(tensorflow::error::FAILED_PRECONDITION, status.code());
EXPECT_TRUE(
- StringPiece(status.error_message()).contains("Expected exactly one"))
+ str_util::StrContains(status.error_message(), "Expected exactly one"))
<< status.error_message();
}
@@ -641,8 +645,8 @@ TEST(GetGenericSignature, WrongSignatureType) {
const Status status =
GetGenericSignature("generic_bindings", meta_graph_def, &signature);
ASSERT_FALSE(status.ok());
- EXPECT_TRUE(StringPiece(status.error_message())
- .contains("Expected a generic signature:"))
+ EXPECT_TRUE(str_util::StrContains(status.error_message(),
+ "Expected a generic signature:"))
<< status.error_message();
}
diff --git a/tensorflow/core/grappler/costs/BUILD b/tensorflow/core/grappler/costs/BUILD
index 5336df1f51..df5a26f475 100644
--- a/tensorflow/core/grappler/costs/BUILD
+++ b/tensorflow/core/grappler/costs/BUILD
@@ -55,6 +55,7 @@ cc_library(
":utils",
"//tensorflow/core:core_cpu_base",
"//tensorflow/core:framework",
+ "//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/grappler:grappler_item",
"//tensorflow/core/grappler:utils",
diff --git a/tensorflow/core/grappler/costs/graph_properties.cc b/tensorflow/core/grappler/costs/graph_properties.cc
index 817247e379..a5fd79447d 100644
--- a/tensorflow/core/grappler/costs/graph_properties.cc
+++ b/tensorflow/core/grappler/costs/graph_properties.cc
@@ -23,6 +23,7 @@ limitations under the License.
#include "tensorflow/core/graph/graph_constructor.h"
#include "tensorflow/core/grappler/costs/utils.h"
#include "tensorflow/core/grappler/utils.h"
+#include "tensorflow/core/lib/strings/str_util.h"
namespace tensorflow {
namespace grappler {
@@ -251,8 +252,7 @@ typename DisjointSet<Handle>::Rep* DisjointSet<Handle>::Find(Handle value) {
}
bool IsQueue(const Node& node) {
- StringPiece type(node.type_string());
- return type.ends_with("QueueV2");
+ return str_util::EndsWith(node.type_string(), "QueueV2");
}
// Returns true if the node is an Enter op AND its input is a Queue.
diff --git a/tensorflow/core/lib/io/inputbuffer_test.cc b/tensorflow/core/lib/io/inputbuffer_test.cc
index 6be1f819c2..3608008b30 100644
--- a/tensorflow/core/lib/io/inputbuffer_test.cc
+++ b/tensorflow/core/lib/io/inputbuffer_test.cc
@@ -22,6 +22,7 @@ limitations under the License.
#include "tensorflow/core/lib/core/errors.h"
#include "tensorflow/core/lib/core/status.h"
#include "tensorflow/core/lib/core/status_test_util.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/lib/strings/strcat.h"
#include "tensorflow/core/platform/logging.h"
#include "tensorflow/core/platform/test.h"
@@ -287,7 +288,7 @@ TEST(InputBuffer, Seek) {
EXPECT_TRUE(errors::IsOutOfRange(in.ReadNBytes(1, &read)));
EXPECT_TRUE(
- StringPiece(in.Seek(-1).ToString()).contains("negative position"));
+ str_util::StrContains(in.Seek(-1).ToString(), "negative position"));
}
}
diff --git a/tensorflow/core/lib/io/recordio_test.cc b/tensorflow/core/lib/io/recordio_test.cc
index b7e51256a2..63235761d9 100644
--- a/tensorflow/core/lib/io/recordio_test.cc
+++ b/tensorflow/core/lib/io/recordio_test.cc
@@ -20,6 +20,7 @@ limitations under the License.
#include "tensorflow/core/lib/io/record_reader.h"
#include "tensorflow/core/lib/io/record_writer.h"
#include "tensorflow/core/lib/random/simple_philox.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/env.h"
#include "tensorflow/core/platform/test.h"
@@ -218,7 +219,7 @@ TEST_F(RecordioTest, RandomRead) {
// Tests of all the error paths in log_reader.cc follow:
static void AssertHasSubstr(StringPiece s, StringPiece expected) {
- EXPECT_TRUE(StringPiece(s).contains(expected))
+ EXPECT_TRUE(str_util::StrContains(s, expected))
<< s << " does not contain " << expected;
}
diff --git a/tensorflow/python/framework/python_op_gen.cc b/tensorflow/python/framework/python_op_gen.cc
index 9850f0becc..e5e3b82199 100644
--- a/tensorflow/python/framework/python_op_gen.cc
+++ b/tensorflow/python/framework/python_op_gen.cc
@@ -448,7 +448,7 @@ string AttrValueToPython(const string& type, const AttrValue& value,
return TensorToPython(value.tensor());
} else if (type == "func") {
return StringToPython(value.func().name());
- } else if (StringPiece(type).starts_with("list(")) {
+ } else if (str_util::StartsWith(type, "list(")) {
return strings::StrCat("[", AttrListToPython(value, dtype_module), "]");
} else {
return "?";
diff --git a/tensorflow/python/framework/python_op_gen_main.cc b/tensorflow/python/framework/python_op_gen_main.cc
index bc5ca195da..ca6ed42bee 100644
--- a/tensorflow/python/framework/python_op_gen_main.cc
+++ b/tensorflow/python/framework/python_op_gen_main.cc
@@ -27,6 +27,7 @@ limitations under the License.
#include "tensorflow/core/lib/io/inputbuffer.h"
#include "tensorflow/core/lib/io/path.h"
#include "tensorflow/core/lib/strings/scanner.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/core/platform/env.h"
#include "tensorflow/core/platform/init_main.h"
#include "tensorflow/core/platform/logging.h"
@@ -95,7 +96,8 @@ string InferSourceFileName(const char* argv_zero) {
// operators defined in <op type>_ops.cc
const char* kExecPrefix = "gen_";
const char* kExecSuffix = "_py_wrappers_cc";
- if (command_str.Consume(kExecPrefix) && command_str.ends_with(kExecSuffix)) {
+ if (str_util::ConsumePrefix(&command_str, kExecPrefix) &&
+ str_util::EndsWith(command_str, kExecSuffix)) {
command_str.remove_suffix(strlen(kExecSuffix));
return strings::StrCat(command_str, ".cc");
} else {
diff --git a/tensorflow/stream_executor/kernel.cc b/tensorflow/stream_executor/kernel.cc
index 81e531efb3..636199cfa2 100644
--- a/tensorflow/stream_executor/kernel.cc
+++ b/tensorflow/stream_executor/kernel.cc
@@ -21,6 +21,7 @@ limitations under the License.
#include "tensorflow/stream_executor/platform/port.h"
+#include "tensorflow/core/lib/strings/str_util.h"
#include "tensorflow/stream_executor/lib/demangle.h"
#include "tensorflow/stream_executor/platform.h"
#include "tensorflow/stream_executor/platform/logging.h"
@@ -96,7 +97,7 @@ static const char *kStubPrefix = "__device_stub_";
void KernelBase::set_name(port::StringPiece name) {
name_ = name.ToString();
port::StringPiece stubless_name = name;
- if (name.starts_with(kStubPrefix)) {
+ if (tensorflow::str_util::StartsWith(name, kStubPrefix)) {
stubless_name.remove_prefix(strlen(kStubPrefix));
}
demangled_name_ = port::Demangle(stubless_name.data());
diff --git a/tensorflow/stream_executor/lib/str_util.h b/tensorflow/stream_executor/lib/str_util.h
index 4dd6f3b0cc..5dd3d06aff 100644
--- a/tensorflow/stream_executor/lib/str_util.h
+++ b/tensorflow/stream_executor/lib/str_util.h
@@ -29,7 +29,7 @@ using tensorflow::str_util::Split;
// Returns a copy of the input string 'str' with the given 'suffix'
// removed. If the suffix doesn't match, returns a copy of the original string.
inline string StripSuffixString(port::StringPiece str, port::StringPiece suffix) {
- if (str.ends_with(suffix)) {
+ if (tensorflow::str_util::EndsWith(str, suffix)) {
str.remove_suffix(suffix.size());
}
return str.ToString();