Fix comparison between signed and unsigned error on darwin

mode_t is a uint16_t on darwin, which causes
sb.st_mode & ~S_IFMT
to produce an int when the uint16_t is promoted for the operator.
Cast to unsigned int before comparing against 0660U.

Change-Id: Ib1439c08d9e2b297eeeba701891508d269c19a3d
(cherry-pick from commit 56b37345d99f2cd85720f6b1aa1934fa3bfe29a6)
diff --git a/file_test.cpp b/file_test.cpp
index e5cf696..5445a0d 100644
--- a/file_test.cpp
+++ b/file_test.cpp
@@ -60,7 +60,7 @@
       << errno;
   struct stat sb;
   ASSERT_EQ(0, stat(tf.filename, &sb));
-  ASSERT_EQ(0660U, (sb.st_mode & ~S_IFMT));
+  ASSERT_EQ(0660U, static_cast<unsigned int>(sb.st_mode & ~S_IFMT));
   ASSERT_EQ(getuid(), sb.st_uid);
   ASSERT_EQ(getgid(), sb.st_gid);
   std::string s;