Backed out changeset 1b545e55e42a (bug 1313485) for bustage. r=backout
authorSebastian Hengst <archaeopteryx@coole-files.de>
Mon, 07 Nov 2016 23:46:09 +0100
changeset 351639 d140a7a856b7cacf04ed8e216d13bbb5ef346906
parent 351638 8e998fdc243d88818f6f11c0455071ad439b0d92
child 351640 4ff2318cfe873ee93ef3139fa5b37803e1a9091f
push id6795
push userjlund@mozilla.com
push dateMon, 23 Jan 2017 14:19:46 +0000
treeherdermozilla-esr52@76101b503191 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbackout
bugs1313485
milestone52.0a1
backs out1b545e55e42aae19c6ba66f316b3b8167732be4b
Backed out changeset 1b545e55e42a (bug 1313485) for bustage. r=backout
memory/gtest/TestJemalloc.cpp
memory/gtest/moz.build
memory/moz.build
testing/cppunittest.ini
xpcom/tests/TestJemalloc.cpp
xpcom/tests/moz.build
deleted file mode 100644
--- a/memory/gtest/moz.build
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-UNIFIED_SOURCES += [
-    'TestJemalloc.cpp',
-]
-
-FINAL_LIBRARY = 'xul-gtest'
--- a/memory/moz.build
+++ b/memory/moz.build
@@ -10,17 +10,16 @@ DIRS += [
 ]
 
 if not CONFIG['JS_STANDALONE']:
     DIRS += ['volatile']
 
 if CONFIG['MOZ_MEMORY']:
     DIRS += [
         'build',
-        'gtest',
         'mozjemalloc',
     ]
 
     if CONFIG['MOZ_JEMALLOC4'] or CONFIG['MOZ_REPLACE_MALLOC']:
         if not CONFIG['MOZ_SYSTEM_JEMALLOC']:
             DIRS += ['jemalloc']
 
     if CONFIG['MOZ_REPLACE_MALLOC']:
--- a/testing/cppunittest.ini
+++ b/testing/cppunittest.ini
@@ -26,16 +26,17 @@ skip-if = os != 'win'
 [TestEnumTypeTraits]
 [TestFastBernoulliTrial]
 [TestFloatingPoint]
 [TestFunction]
 [TestIntegerPrintfMacros]
 [TestIntegerRange]
 [TestIsCertBuiltInRoot]
 [TestJSONWriter]
+[TestJemalloc]
 [TestLinkedList]
 [TestMacroArgs]
 [TestMacroForEach]
 [TestMathAlgorithms]
 [TestMaybe]
 [TestNtPathToDosPath]
 skip-if = os != 'win'
 [TestPLDHash]
rename from memory/gtest/TestJemalloc.cpp
rename to xpcom/tests/TestJemalloc.cpp
--- a/memory/gtest/TestJemalloc.cpp
+++ b/xpcom/tests/TestJemalloc.cpp
@@ -1,51 +1,78 @@
 /* -*-  Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-#include "mozilla/mozalloc.h"
+/*
+ * Ideally, this test would be in memory/test/.  But I couldn't get it to build
+ * there (couldn't find TestHarness.h).  I think memory/ is processed too early
+ * in the build.  So it's here.
+ */
+
+#include "TestHarness.h"
 #include "mozmemory.h"
 
-#include "gtest/gtest.h"
-
-static inline void
+static inline bool
 TestOne(size_t size)
 {
     size_t req = size;
     size_t adv = malloc_good_size(req);
     char* p = (char*)malloc(req);
     size_t usable = moz_malloc_usable_size(p);
-    // NB: Using EXPECT here so that we still free the memory on failure.
-    EXPECT_EQ(adv, usable) <<
-           "malloc_good_size(" << req << ") --> " << adv << "; "
-           "malloc_usable_size(" << req << ") --> " << usable;
+    if (adv != usable) {
+      fail("malloc_good_size(%d) --> %d; "
+           "malloc_usable_size(%d) --> %d",
+           req, adv, req, usable);
+      return false;
+    }
     free(p);
+    return true;
 }
 
-static inline void
+static inline bool
 TestThree(size_t size)
 {
-    ASSERT_NO_FATAL_FAILURE(TestOne(size - 1));
-    ASSERT_NO_FATAL_FAILURE(TestOne(size));
-    ASSERT_NO_FATAL_FAILURE(TestOne(size + 1));
+    return TestOne(size - 1) && TestOne(size) && TestOne(size + 1);
 }
 
-TEST(Jemalloc, UsableSizeInAdvance)
+static nsresult
+TestJemallocUsableSizeInAdvance()
 {
   #define K   * 1024
   #define M   * 1024 * 1024
 
   /*
    * Test every size up to a certain point, then (N-1, N, N+1) triplets for a
    * various sizes beyond that.
    */
 
   for (size_t n = 0; n < 16 K; n++)
-    ASSERT_NO_FATAL_FAILURE(TestOne(n));
+    if (!TestOne(n))
+      return NS_ERROR_UNEXPECTED;
 
   for (size_t n = 16 K; n < 1 M; n += 4 K)
-    ASSERT_NO_FATAL_FAILURE(TestThree(n));
+    if (!TestThree(n))
+      return NS_ERROR_UNEXPECTED;
 
   for (size_t n = 1 M; n < 8 M; n += 128 K)
-    ASSERT_NO_FATAL_FAILURE(TestThree(n));
+    if (!TestThree(n))
+      return NS_ERROR_UNEXPECTED;
+
+  passed("malloc_good_size");
+
+  return NS_OK;
 }
+
+int main(int argc, char** argv)
+{
+  int rv = 0;
+  ScopedXPCOM xpcom("jemalloc");
+  if (xpcom.failed())
+      return 1;
+
+  if (NS_FAILED(TestJemallocUsableSizeInAdvance()))
+    rv = 1;
+
+  return rv;
+}
+
--- a/xpcom/tests/moz.build
+++ b/xpcom/tests/moz.build
@@ -40,16 +40,21 @@ if CONFIG['OS_TARGET'] == 'WINNT':
 
 if CONFIG['WRAP_STL_INCLUDES'] and not CONFIG['CLANG_CL']:
     GeckoSimplePrograms([
         'TestSTLWrappers',
     ])
 
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
 
+if CONFIG['MOZ_MEMORY']:
+    GeckoCppUnitTests([
+        'TestJemalloc',
+    ])
+
 # FIXME: bug 577500 TestStaticAtoms fails when run in dist/bin
 #CPP_UNIT_TESTS += [
 #    'TestStaticAtoms',
 #]
 
 if CONFIG['COMPILE_ENVIRONMENT']:
     TEST_HARNESS_FILES.xpcshell.xpcom.tests.unit += [
         '!/dist/bin/components/xpcomtest.xpt',