[RGT] Tweak test so assertion is always executed
authorPaul Robinson <paul.robinson@sony.com>
Fri, 9 Apr 2021 15:03:44 +0000 (08:03 -0700)
committerPaul Robinson <paul.robinson@sony.com>
Fri, 9 Apr 2021 15:10:45 +0000 (08:10 -0700)
Any given Windows system will have only one "system" encoding for
UTF-16 (BE or LE), so the assert for the other one would always
show up as rotten.  Use a common assertion for both paths to avoid
this.

llvm/unittests/Support/ProgramTest.cpp

index 84a5d3f..98eb81c 100644 (file)
@@ -320,13 +320,15 @@ TEST(ProgramTest, TestWriteWithSystemEncoding) {
 #if defined(_WIN32)
   char buf[18];
   ASSERT_EQ(::read(fd, buf, 18), 18);
+  const char *utf16_text;
   if (strncmp(buf, "\xfe\xff", 2) == 0) { // UTF16-BE
-    ASSERT_EQ(strncmp(&buf[2], utf16be_text, 16), 0);
+    utf16_text = utf16be_text;
   } else if (strncmp(buf, "\xff\xfe", 2) == 0) { // UTF16-LE
-    ASSERT_EQ(strncmp(&buf[2], utf16le_text, 16), 0);
+    utf16_text = utf16le_text;
   } else {
     FAIL() << "Invalid BOM in UTF-16 file";
   }
+  ASSERT_EQ(strncmp(&buf[2], utf16_text, 16), 0);
 #else
   char buf[10];
   ASSERT_EQ(::read(fd, buf, 10), 10);