diff --git a/snappy_unittest.cc b/snappy_unittest.cc
index 2aad0b1..e2bcf28 100644
--- a/snappy_unittest.cc
+++ b/snappy_unittest.cc
@@ -220,8 +220,8 @@
     case SNAPPY: {
       size_t destlen;
       snappy::RawCompress(input, input_size,
-                         string_as_array(compressed),
-                         &destlen);
+                          string_as_array(compressed),
+                          &destlen);
       CHECK_LE(destlen, snappy::MaxCompressedLength(input_size));
       compressed->resize(destlen);
       break;
@@ -315,7 +315,7 @@
 
     case SNAPPY: {
       snappy::RawUncompress(compressed.data(), compressed.size(),
-                           string_as_array(output));
+                            string_as_array(output));
       break;
     }
 
@@ -713,8 +713,8 @@
 static bool CheckUncompressedLength(const string& compressed,
                                     size_t* ulength) {
   const bool result1 = snappy::GetUncompressedLength(compressed.data(),
-                                                    compressed.size(),
-                                                    ulength);
+                                                     compressed.size(),
+                                                     ulength);
 
   snappy::ByteArraySource source(compressed.data(), compressed.size());
   uint32 length;
@@ -730,7 +730,7 @@
   CHECK(!CheckUncompressedLength(compressed, &ulength));
   CHECK(!snappy::IsValidCompressedBuffer(compressed.data(), compressed.size()));
   CHECK(!snappy::Uncompress(compressed.data(), compressed.size(),
-                           &uncompressed));
+                            &uncompressed));
 }
 
 TEST(SnappyCorruption, UnterminatedVarint) {
@@ -745,7 +745,7 @@
   CHECK(!CheckUncompressedLength(compressed, &ulength));
   CHECK(!snappy::IsValidCompressedBuffer(compressed.data(), compressed.size()));
   CHECK(!snappy::Uncompress(compressed.data(), compressed.size(),
-                           &uncompressed));
+                            &uncompressed));
 }
 
 TEST(Snappy, ReadPastEndOfBuffer) {
