Use a std::stringstream for Program's InfoLog.

This should help WebKit avoid needing to apply a local patch.
Also clean up the style in this file a bit.

BUG=angleproject:307,angleproject:992

Change-Id: I41ecf7cbfa20b469b3731215ef28cb36253ba186
Reviewed-on: https://chromium-review.googlesource.com/269849
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Program_unittest.cpp b/src/libANGLE/Program_unittest.cpp
new file mode 100644
index 0000000..12fe6f2
--- /dev/null
+++ b/src/libANGLE/Program_unittest.cpp
@@ -0,0 +1,30 @@
+//
+// Copyright 2015 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Unit tests for Program and related classes.
+//
+
+#include <gtest/gtest.h>
+
+#include "angle_unittests_utils.h"
+#include "libANGLE/Program.h"
+
+using namespace gl;
+
+namespace
+{
+
+// Tests that the log length properly counts the terminating \0.
+TEST(InfoLogTest, LogLengthCountsTerminator)
+{
+    InfoLog infoLog;
+    EXPECT_EQ(0u, infoLog.getLength());
+    infoLog.append(" ");
+
+    // " \n\0" = 3 characters
+    EXPECT_EQ(3u, infoLog.getLength());
+}
+
+} // namespace