Fix pretty printing of string literals.

char* and const char* previously directed to the template for T*, which
printed, for the string "ABC", 0x12345678 -> 65 (ascii for 'A').

Change-Id: Ifc837777567fc8efa4f9dd72611a63dd6a6a6964
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/22700
Commit-Queue: Matt Stark <msta@google.com>
Reviewed-by: Takuto Ikuta <tikuta@google.com>
diff --git a/src/util/test/gn_test.cc b/src/util/test/gn_test.cc
index 4941506..4da821a 100644
--- a/src/util/test/gn_test.cc
+++ b/src/util/test/gn_test.cc
@@ -38,6 +38,12 @@
   return value ? "true" : "false";
 }
 
+std::string Pretty(const char* value) {
+  if (value == nullptr)
+    return "(const char*) NULL";
+  return Pretty(std::string(value));
+}
+
 std::string Indent(std::string_view value) {
   std::stringstream ss;
   ss << "  ";
diff --git a/src/util/test/test.h b/src/util/test/test.h
index 4c45db8..6945660 100644
--- a/src/util/test/test.h
+++ b/src/util/test/test.h
@@ -93,6 +93,7 @@
 std::string DiffStrings(std::string_view expected, std::string_view actual);
 
 std::string Pretty(bool value);
+std::string Pretty(const char* value);
 
 // Explicitly write this for enum, because otherwise it tries to cast enums
 // to bools.