zstring: Fix char array conversion

We don't want to assume the entire char array is used for strings,
otherwise perfectly valid buffers from C are unusable as they always
hold less than or equal to the buffer size of string.

Change-Id: I1354d63b1aa64995ec245edb876fdf6e69be554a
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/test/zstring_view.cpp b/test/zstring_view.cpp
index 95e9aa5..14a1e04 100644
--- a/test/zstring_view.cpp
+++ b/test/zstring_view.cpp
@@ -67,18 +67,15 @@
 {
     auto s = "hi\0"s;
 #ifdef NDEBUG
-    EXPECT_EQ("hi", zstring_view(s));
+    EXPECT_EQ("hi\0"sv, zstring_view(s));
 #else
     EXPECT_THROW((zstring_view(s)), std::invalid_argument);
 #endif
 
     char mut1[] = "aa\0";
+    EXPECT_EQ("aa", zstring_view(mut1));
+#ifndef NDEBUG
     char mut2[] = {'a', 'a'};
-#ifdef NDEBUG
-    EXPECT_EQ("aa\0", zstring_view(mut1));
-    EXPECT_EQ("a", zstring_view(mut2));
-#else
-    EXPECT_THROW((zstring_view(mut1)), std::invalid_argument);
     EXPECT_THROW((zstring_view(mut2)), std::invalid_argument);
 #endif
 }
@@ -95,8 +92,8 @@
 
 TEST(ZstringView, NoTypeCoercion)
 {
-    EXPECT_NE(""_zsv, "\0");
-    EXPECT_NE("\0", ""_zsv);
+    EXPECT_EQ(""_zsv, "\0");
+    EXPECT_EQ("\0", ""_zsv);
     EXPECT_NE(""_zsv, "\0"sv);
     EXPECT_NE("\0"sv, ""_zsv);
     EXPECT_LT(""_zsv, "\0"sv);