Enable mallinfo tests for musl

We've added mallinfo and mallinfo2 to musl, enable the bionic tests
for it.  Also modify the comparison test to explicitly cast the
mallinfo fields to size_t, as they are ints in musl.

Bug: 190084016
Test: bionic-unit-tests-glibc --gtest_filter=malloc.*
Change-Id: Ib2a1d6cf698de817c314a61fe29fda85edabb9ed
diff --git a/tests/malloc_test.cpp b/tests/malloc_test.cpp
index 8272d39..f157ec4 100644
--- a/tests/malloc_test.cpp
+++ b/tests/malloc_test.cpp
@@ -765,7 +765,7 @@
 }
 
 TEST(malloc, mallinfo) {
-#if defined(__BIONIC__)
+#if defined(__BIONIC__) || defined(ANDROID_HOST_MUSL)
   SKIP_WITH_HWASAN << "hwasan does not implement mallinfo";
   static size_t sizes[] = {
     8, 32, 128, 4096, 32768, 131072, 1024000, 10240000, 20480000, 300000000
@@ -810,7 +810,7 @@
 }
 
 TEST(malloc, mallinfo2) {
-#if defined(__BIONIC__)
+#if defined(__BIONIC__) || defined(ANDROID_HOST_MUSL)
   SKIP_WITH_HWASAN << "hwasan does not implement mallinfo2";
   static size_t sizes[] = {8, 32, 128, 4096, 32768, 131072, 1024000, 10240000, 20480000, 300000000};
 
@@ -828,16 +828,16 @@
       struct mallinfo info = mallinfo();
       struct mallinfo2 info2 = mallinfo2();
       // Verify that mallinfo and mallinfo2 are exactly the same.
-      ASSERT_EQ(info.arena, info2.arena);
-      ASSERT_EQ(info.ordblks, info2.ordblks);
-      ASSERT_EQ(info.smblks, info2.smblks);
-      ASSERT_EQ(info.hblks, info2.hblks);
-      ASSERT_EQ(info.hblkhd, info2.hblkhd);
-      ASSERT_EQ(info.usmblks, info2.usmblks);
-      ASSERT_EQ(info.fsmblks, info2.fsmblks);
-      ASSERT_EQ(info.uordblks, info2.uordblks);
-      ASSERT_EQ(info.fordblks, info2.fordblks);
-      ASSERT_EQ(info.keepcost, info2.keepcost);
+      ASSERT_EQ(static_cast<size_t>(info.arena), info2.arena);
+      ASSERT_EQ(static_cast<size_t>(info.ordblks), info2.ordblks);
+      ASSERT_EQ(static_cast<size_t>(info.smblks), info2.smblks);
+      ASSERT_EQ(static_cast<size_t>(info.hblks), info2.hblks);
+      ASSERT_EQ(static_cast<size_t>(info.hblkhd), info2.hblkhd);
+      ASSERT_EQ(static_cast<size_t>(info.usmblks), info2.usmblks);
+      ASSERT_EQ(static_cast<size_t>(info.fsmblks), info2.fsmblks);
+      ASSERT_EQ(static_cast<size_t>(info.uordblks), info2.uordblks);
+      ASSERT_EQ(static_cast<size_t>(info.fordblks), info2.fordblks);
+      ASSERT_EQ(static_cast<size_t>(info.keepcost), info2.keepcost);
 
       size_t allocated = info2.uordblks;
       ptrs[i] = malloc(size);
@@ -846,16 +846,16 @@
       info = mallinfo();
       info2 = mallinfo2();
       // Verify that mallinfo and mallinfo2 are exactly the same.
-      ASSERT_EQ(info.arena, info2.arena);
-      ASSERT_EQ(info.ordblks, info2.ordblks);
-      ASSERT_EQ(info.smblks, info2.smblks);
-      ASSERT_EQ(info.hblks, info2.hblks);
-      ASSERT_EQ(info.hblkhd, info2.hblkhd);
-      ASSERT_EQ(info.usmblks, info2.usmblks);
-      ASSERT_EQ(info.fsmblks, info2.fsmblks);
-      ASSERT_EQ(info.uordblks, info2.uordblks);
-      ASSERT_EQ(info.fordblks, info2.fordblks);
-      ASSERT_EQ(info.keepcost, info2.keepcost);
+      ASSERT_EQ(static_cast<size_t>(info.arena), info2.arena);
+      ASSERT_EQ(static_cast<size_t>(info.ordblks), info2.ordblks);
+      ASSERT_EQ(static_cast<size_t>(info.smblks), info2.smblks);
+      ASSERT_EQ(static_cast<size_t>(info.hblks), info2.hblks);
+      ASSERT_EQ(static_cast<size_t>(info.hblkhd), info2.hblkhd);
+      ASSERT_EQ(static_cast<size_t>(info.usmblks), info2.usmblks);
+      ASSERT_EQ(static_cast<size_t>(info.fsmblks), info2.fsmblks);
+      ASSERT_EQ(static_cast<size_t>(info.uordblks), info2.uordblks);
+      ASSERT_EQ(static_cast<size_t>(info.fordblks), info2.fordblks);
+      ASSERT_EQ(static_cast<size_t>(info.keepcost), info2.keepcost);
 
       size_t new_allocated = info2.uordblks;
       if (allocated != new_allocated) {