[rust project] Add debug printing to test failures

When a test comparing the expected JSON output against the actual
fails, print both so that they can be compared.

Change-Id: Ie024396a7a30750d7f9d6a281eff66119b7dff70
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/9480
Commit-Queue: Aaron Wood <aaronwood@google.com>
Reviewed-by: Tyler Mandry <tmandry@google.com>
diff --git a/src/gn/rust_project_writer_helpers_unittest.cc b/src/gn/rust_project_writer_helpers_unittest.cc
index c19e709..286b4c2 100644
--- a/src/gn/rust_project_writer_helpers_unittest.cc
+++ b/src/gn/rust_project_writer_helpers_unittest.cc
@@ -12,6 +12,15 @@
 #include "util/build_config.h"
 #include "util/test/test.h"
 
+static void ExpectEqOrShowDiff(const char* expected,
+                               const std::string& actual) {
+  if (expected != actual) {
+    printf("\nExpected: >>>\n%s<<<\n", expected);
+    printf("  Actual: >>>\n%s<<<\n", actual.c_str());
+  }
+  EXPECT_EQ(expected, actual);
+}
+
 using RustProjectWriterHelper = TestWithScheduler;
 
 TEST_F(RustProjectWriterHelper, WriteCrates) {
@@ -71,7 +80,7 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 TEST_F(RustProjectWriterHelper, SysrootDepsAreCorrect) {
@@ -419,7 +428,7 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 TEST_F(RustProjectWriterHelper, ExtractCompilerTargetTupleSimple) {
diff --git a/src/gn/rust_project_writer_unittest.cc b/src/gn/rust_project_writer_unittest.cc
index 9df1ad2..675f9a6 100644
--- a/src/gn/rust_project_writer_unittest.cc
+++ b/src/gn/rust_project_writer_unittest.cc
@@ -13,6 +13,15 @@
 #include "util/build_config.h"
 #include "util/test/test.h"
 
+
+static void ExpectEqOrShowDiff(const char* expected, const std::string& actual) {
+  if(expected != actual) {
+    printf("\nExpected: >>>\n%s<<<\n", expected);
+    printf("  Actual: >>>\n%s<<<\n", actual.c_str());
+  }
+  EXPECT_EQ(expected, actual);
+}
+
 using RustProjectJSONWriter = TestWithScheduler;
 
 TEST_F(RustProjectJSONWriter, OneRustTarget) {
@@ -63,7 +72,7 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 TEST_F(RustProjectJSONWriter, RustTargetDep) {
@@ -138,7 +147,7 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 TEST_F(RustProjectJSONWriter, RustTargetDepTwo) {
@@ -240,7 +249,7 @@
       "    }\n"
       "  ]\n"
       "}\n";
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 // Test that when outputting dependencies, only Rust deps are returned,
@@ -358,7 +367,7 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 TEST_F(RustProjectJSONWriter, OneRustTargetWithRustcTargetSet) {
@@ -410,7 +419,7 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 TEST_F(RustProjectJSONWriter, OneRustTargetWithEditionSet) {
@@ -460,7 +469,7 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
 
 TEST_F(RustProjectJSONWriter, OneRustTargetWithEditionSetAlternate) {
@@ -511,5 +520,5 @@
       "  ]\n"
       "}\n";
 
-  EXPECT_EQ(expected_json, out);
+  ExpectEqOrShowDiff(expected_json, out);
 }
\ No newline at end of file