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 321447 d140a7a856b7cacf04ed8e216d13bbb5ef346906
parent 321446 8e998fdc243d88818f6f11c0455071ad439b0d92
child 321448 4ff2318cfe873ee93ef3139fa5b37803e1a9091f
push id83604
push userarchaeopteryx@coole-files.de
push dateMon, 07 Nov 2016 22:46:27 +0000
treeherdermozilla-inbound@d140a7a856b7 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbackout
bugs1313485
milestone52.0a1
backs out1b545e55e42aae19c6ba66f316b3b8167732be4b
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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',