Commit 90ea078c authored by husky@chromium.org's avatar husky@chromium.org

Remove wchar_t versions of StringPrintf from Android

BUG=137864

TEST=StringPrintfTest


Review URL: https://chromiumcodereview.appspot.com/10800078

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149397 0039d316-1c4b-4281-b951-d872f2087c98
parent 30f6403d
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
......@@ -26,12 +26,14 @@ inline int vsnprintfT(char* buffer,
return base::vsnprintf(buffer, buf_size, format, argptr);
}
#if !defined(OS_ANDROID)
inline int vsnprintfT(wchar_t* buffer,
size_t buf_size,
const wchar_t* format,
va_list argptr) {
return base::vswprintf(buffer, buf_size, format, argptr);
}
#endif
// Templatized backend for StringPrintF/StringAppendF. This does not finalize
// the va_list, the caller is expected to do that.
......@@ -116,6 +118,7 @@ std::string StringPrintf(const char* format, ...) {
return result;
}
#if !defined(OS_ANDROID)
std::wstring StringPrintf(const wchar_t* format, ...) {
va_list ap;
va_start(ap, format);
......@@ -124,6 +127,7 @@ std::wstring StringPrintf(const wchar_t* format, ...) {
va_end(ap);
return result;
}
#endif
std::string StringPrintV(const char* format, va_list ap) {
std::string result;
......@@ -140,6 +144,7 @@ const std::string& SStringPrintf(std::string* dst, const char* format, ...) {
return *dst;
}
#if !defined(OS_ANDROID)
const std::wstring& SStringPrintf(std::wstring* dst,
const wchar_t* format, ...) {
va_list ap;
......@@ -149,6 +154,7 @@ const std::wstring& SStringPrintf(std::wstring* dst,
va_end(ap);
return *dst;
}
#endif
void StringAppendF(std::string* dst, const char* format, ...) {
va_list ap;
......@@ -157,19 +163,23 @@ void StringAppendF(std::string* dst, const char* format, ...) {
va_end(ap);
}
#if !defined(OS_ANDROID)
void StringAppendF(std::wstring* dst, const wchar_t* format, ...) {
va_list ap;
va_start(ap, format);
StringAppendV(dst, format, ap);
va_end(ap);
}
#endif
void StringAppendV(std::string* dst, const char* format, va_list ap) {
StringAppendVT(dst, format, ap);
}
#if !defined(OS_ANDROID)
void StringAppendV(std::wstring* dst, const wchar_t* format, va_list ap) {
StringAppendVT(dst, format, ap);
}
#endif
} // namespace base
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
......@@ -17,8 +17,11 @@ namespace base {
// Return a C++ string given printf-like input.
BASE_EXPORT std::string StringPrintf(const char* format, ...)
PRINTF_FORMAT(1, 2);
// OS_ANDROID's libc does not support wchar_t, so several overloads are omitted.
#if !defined(OS_ANDROID)
BASE_EXPORT std::wstring StringPrintf(const wchar_t* format, ...)
WPRINTF_FORMAT(1, 2);
#endif
// Return a C++ string given vprintf-like input.
BASE_EXPORT std::string StringPrintV(const char* format, va_list ap)
......@@ -28,25 +31,31 @@ BASE_EXPORT std::string StringPrintV(const char* format, va_list ap)
BASE_EXPORT const std::string& SStringPrintf(std::string* dst,
const char* format, ...)
PRINTF_FORMAT(2, 3);
#if !defined(OS_ANDROID)
BASE_EXPORT const std::wstring& SStringPrintf(std::wstring* dst,
const wchar_t* format, ...)
WPRINTF_FORMAT(2, 3);
#endif
// Append result to a supplied string.
BASE_EXPORT void StringAppendF(std::string* dst, const char* format, ...)
PRINTF_FORMAT(2, 3);
#if !defined(OS_ANDROID)
// TODO(evanm): this is only used in a few places in the code;
// replace with string16 version.
BASE_EXPORT void StringAppendF(std::wstring* dst, const wchar_t* format, ...)
WPRINTF_FORMAT(2, 3);
#endif
// Lower-level routine that takes a va_list and appends to a specified
// string. All other routines are just convenience wrappers around it.
BASE_EXPORT void StringAppendV(std::string* dst, const char* format, va_list ap)
PRINTF_FORMAT(2, 0);
#if !defined(OS_ANDROID)
BASE_EXPORT void StringAppendV(std::wstring* dst,
const wchar_t* format, va_list ap)
WPRINTF_FORMAT(2, 0);
#endif
} // namespace base
......
......@@ -28,7 +28,9 @@ TEST(StringPrintfTest, StringPrintfEmpty) {
TEST(StringPrintfTest, StringPrintfMisc) {
EXPECT_EQ("123hello w", StringPrintf("%3d%2s %1c", 123, "hello", 'w'));
#if !defined(OS_ANDROID)
EXPECT_EQ(L"123hello w", StringPrintf(L"%3d%2ls %1lc", 123, L"hello", 'w'));
#endif
}
TEST(StringPrintfTest, StringAppendfEmptyString) {
......@@ -36,9 +38,11 @@ TEST(StringPrintfTest, StringAppendfEmptyString) {
StringAppendF(&value, "%s", "");
EXPECT_EQ("Hello", value);
#if !defined(OS_ANDROID)
std::wstring valuew(L"Hello");
StringAppendF(&valuew, L"%ls", L"");
EXPECT_EQ(L"Hello", valuew);
#endif
}
TEST(StringPrintfTest, StringAppendfString) {
......@@ -46,9 +50,11 @@ TEST(StringPrintfTest, StringAppendfString) {
StringAppendF(&value, " %s", "World");
EXPECT_EQ("Hello World", value);
#if !defined(OS_ANDROID)
std::wstring valuew(L"Hello");
StringAppendF(&valuew, L" %ls", L"World");
EXPECT_EQ(L"Hello World", valuew);
#endif
}
TEST(StringPrintfTest, StringAppendfInt) {
......@@ -56,9 +62,11 @@ TEST(StringPrintfTest, StringAppendfInt) {
StringAppendF(&value, " %d", 123);
EXPECT_EQ("Hello 123", value);
#if !defined(OS_ANDROID)
std::wstring valuew(L"Hello");
StringAppendF(&valuew, L" %d", 123);
EXPECT_EQ(L"Hello 123", valuew);
#endif
}
// Make sure that lengths exactly around the initial buffer size are handled
......@@ -79,10 +87,12 @@ TEST(StringPrintfTest, StringPrintfBounds) {
SStringPrintf(&out, "%s", src);
EXPECT_STREQ(src, out.c_str());
#if !defined(OS_ANDROID)
srcw[kSrcLen - i] = 0;
std::wstring outw;
SStringPrintf(&outw, L"%ls", srcw);
EXPECT_STREQ(srcw, outw.c_str());
#endif
}
}
......
......@@ -215,6 +215,10 @@ class TestWriter {
return console_->Write(txt);
}
bool WriteInfoText(const std::string& txt) {
return WriteInfoText(UTF8ToWide(txt));
}
// Write a result block. It consist of two lines. The first line
// has [PASS] or [FAIL] with |name| and the second line has
// the text in |extra|.
......@@ -243,10 +247,10 @@ class TestWriter {
DISALLOW_COPY_AND_ASSIGN(TestWriter);
};
std::wstring PrintableUSCurrentTime() {
std::string PrintableUSCurrentTime() {
base::Time::Exploded exploded = {0};
base::Time::Now().UTCExplode(&exploded);
return base::StringPrintf(L"%d:%d:%d.%d:%d:%d",
return base::StringPrintf("%d:%d:%d.%d:%d:%d",
exploded.year,
exploded.month,
exploded.day_of_month,
......@@ -269,8 +273,8 @@ class TestController : public DiagnosticsModel::Observer {
// Run all the diagnostics of |model| and invoke the view as the model
// callbacks arrive.
void Run(DiagnosticsModel* model) {
std::wstring title(L"Chrome Diagnostics Mode (");
writer_->WriteInfoText(title.append(PrintableUSCurrentTime()) + L")\n");
writer_->WriteInfoText(L"Chrome Diagnostics Mode (");
writer_->WriteInfoText(PrintableUSCurrentTime() + ")\n");
if (!model) {
writer_->WriteResult(false, L"Diagnostics start", L"model is null");
return;
......@@ -283,7 +287,7 @@ class TestController : public DiagnosticsModel::Observer {
ResourceBundle::InitSharedInstanceWithLocale(std::string(), NULL);
int count = model->GetTestAvailableCount();
writer_->WriteInfoText(base::StringPrintf(
L"%d available test(s)\n\n", count));
"%d available test(s)\n\n", count));
model->RunAll(this);
}
......@@ -303,7 +307,7 @@ class TestController : public DiagnosticsModel::Observer {
virtual void OnDoneAll(DiagnosticsModel* model) {
if (writer_->failures() > 0) {
writer_->WriteInfoText(base::StringPrintf(
L"DONE. %d failure(s)\n\n", writer_->failures()));
"DONE. %d failure(s)\n\n", writer_->failures()));
} else {
writer_->WriteInfoText(L"DONE\n\n");
}
......
......@@ -156,9 +156,8 @@ void SetChildProcessLoggingExperimentList() {
GetFieldTrialSelectedGroupIds(&name_group_ids);
std::vector<string16> experiment_strings(name_group_ids.size());
for (size_t i = 0; i < name_group_ids.size(); ++i) {
// Wish there was a StringPrintf for string16... :-(
experiment_strings[i] = WideToUTF16(base::StringPrintf(
L"%x-%x", name_group_ids[i].name, name_group_ids[i].group));
experiment_strings[i] = UTF8ToUTF16(base::StringPrintf(
"%x-%x", name_group_ids[i].name, name_group_ids[i].group));
}
child_process_logging::SetExperimentList(experiment_strings);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment