diff --git a/unittests/MC/AsmStreamerTest.cpp b/unittests/MC/AsmStreamerTest.cpp
index d4b93ea..053b7f3 100644
--- a/unittests/MC/AsmStreamerTest.cpp
+++ b/unittests/MC/AsmStreamerTest.cpp
@@ -40,14 +40,14 @@
 
 TEST(AsmStreamer, EmptyOutput) {
   StringAsmStreamer S;
-  EXPECT_EQ(S.getString(), "");
+  EXPECT_EQ("", S.getString());
 }
 
 TEST(AsmStreamer, Sections) {
   StringAsmStreamer S;
   MCSection *Sec0 = S.getContext().GetSection("foo");
   S.getStreamer().SwitchSection(Sec0);
-  EXPECT_EQ(S.getString(), ".section foo\n");
+  EXPECT_EQ(".section foo\n", S.getString());
 }
 
 TEST(AsmStreamer, Values) {
@@ -62,14 +62,13 @@
   S.getStreamer().EmitValue(MCValue::get(A, B, 10), 2);
   S.getStreamer().EmitValue(MCValue::get(A, B, 10), 4);
   S.getStreamer().EmitValue(MCValue::get(A, B, 10), 8);
-  EXPECT_EQ(S.getString(), ".section foo\n\
+  EXPECT_EQ(".section foo\n\
 a:\n\
 b:\n\
 .byte a - b + 10\n\
 .short a - b + 10\n\
 .long a - b + 10\n\
-.quad a - b + 10\n\
-");
+.quad a - b + 10\n", S.getString());
 }
 
 TEST(AsmStreamer, Align) {
@@ -80,11 +79,10 @@
   S.getStreamer().EmitValueToAlignment(4, /*Value=*/12, /*ValueSize=*/2);
   S.getStreamer().EmitValueToAlignment(8, /*Value=*/12, /*ValueSize=*/4, 
                                        /*MaxBytesToEmit=*/24);
-  EXPECT_EQ(S.getString(), ".section foo\n\
+  EXPECT_EQ(".section foo\n\
 .p2align 2, 0\n\
 .p2alignw 2, 12\n\
-.p2alignl 3, 12, 24\n\
-");
+.p2alignl 3, 12, 24\n", S.getString());
 }
 
 TEST(AsmStreamer, Org) {
@@ -94,10 +92,9 @@
   MCSymbol *A = S.getContext().CreateSymbol("a");
   S.getStreamer().EmitLabel(A);
   S.getStreamer().EmitValueToOffset(MCValue::get(A, 0, 4), 32);
-  EXPECT_EQ(S.getString(), ".section foo\n\
+  EXPECT_EQ(".section foo\n\
 a:\n\
-.org a + 4, 32\n\
-");
+.org a + 4, 32\n", S.getString());
 }
 
 }
