Merge latest green inbound changeset to mozilla-central
authorEd Morley <emorley@mozilla.com>
Thu, 14 Feb 2013 10:44:41 +0000
changeset 121844 aceeea086ccb
parent 121843 f27d5d9ebef2 (current diff)
parent 121733 4059d988e057 (diff)
child 121845 ebeaa97d710d
child 121898 6b975147c015
child 127300 3c5779365494
push id24307
push useremorley@mozilla.com
push dateThu, 14 Feb 2013 10:47:46 +0000
treeherdermozilla-central@aceeea086ccb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone21.0a1
first release with
nightly linux32
aceeea086ccb / 21.0a1 / 20130214032850 / files
nightly linux64
aceeea086ccb / 21.0a1 / 20130214032850 / files
nightly mac
aceeea086ccb / 21.0a1 / 20130214032850 / files
nightly win32
aceeea086ccb / 21.0a1 / 20130214032850 / files
nightly win64
aceeea086ccb / 21.0a1 / 20130214032850 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge latest green inbound changeset to mozilla-central
testing/testsuite-targets.mk
--- a/config/expandlibs_exec.py
+++ b/config/expandlibs_exec.py
@@ -124,17 +124,17 @@ class ExpandArgsMore(ExpandArgs):
         # gold's --print-icf-sections output looks like the following:
         # ld: ICF folding section '.section' in file 'file.o'into '.section' in file 'file.o'
         # In terms of words, chances are this will change in the future,
         # especially considering "into" is misplaced. Splitting on quotes
         # seems safer.
         for l in stderr.split('\n'):
             quoted = l.split("'")
             if len(quoted) > 5 and quoted[1] != quoted[5]:
-                result[quoted[1]] = quoted[5]
+                result[quoted[1]] = [quoted[5]]
                 if quoted[5] in result:
                     result[quoted[5]].append(quoted[1])
                 else:
                     result[quoted[5]] = [quoted[1]]
         return result
 
     def _getOrderedSections(self, ordered_symbols):
         '''Given an ordered list of symbols, returns the corresponding list
--- a/config/tests/unit-expandlibs.py
+++ b/config/tests/unit-expandlibs.py
@@ -360,28 +360,28 @@ class TestSymbolOrder(unittest.TestCase)
 
     def test_getFoldedSections(self):
         '''Test ExpandMoreArgs' _getFoldedSections'''
         # Divert subprocess.Popen
         subprocess_popen = subprocess.Popen
         subprocess.Popen = SubprocessPopen(self)
         config.LD_PRINT_ICF_SECTIONS = '-Wl,--print-icf-sections'
         args = ExpandArgsMore(['foo', '-bar', 'bar.o', 'foo.o'])
-        self.assertEqual(args._getFoldedSections(), {'.text.hello': '.text.hi', '.text.hi': ['.text.hello']})
+        self.assertEqual(args._getFoldedSections(), {'.text.hello': ['.text.hi'], '.text.hi': ['.text.hello']})
         subprocess.Popen = subprocess_popen
 
     def test_getOrderedSectionsWithICF(self):
         '''Test ExpandMoreArgs' _getOrderedSections, with ICF'''
         # Divert subprocess.Popen
         subprocess_popen = subprocess.Popen
         subprocess.Popen = SubprocessPopen(self)
         config.EXPAND_LIBS_ORDER_STYLE = 'linkerscript'
         config.OBJ_SUFFIX = '.o'
         config.LIB_SUFFIX = '.a'
         config.LD_PRINT_ICF_SECTIONS = '-Wl,--print-icf-sections'
         args = ExpandArgsMore(['foo', '-bar', 'bar.o', 'foo.o'])
-        self.assertEqual(args._getOrderedSections(['hello', '_Z6barbazv']), ['.text.hi', '.text.hello', '.text.hot._Z6barbazv'])
+        self.assertEqual(args._getOrderedSections(['hello', '_Z6barbazv']), ['.text.hello', '.text.hi', '.text.hot._Z6barbazv'])
         self.assertEqual(args._getOrderedSections(['_ZThn4_6foobarv', 'hi', '_Z6barbazv']), ['.text._Z6foobarv', '.text._ZThn4_6foobarv', '.text.hi', '.text.hello', '.text.hot._Z6barbazv'])
         subprocess.Popen = subprocess_popen
 
 
 if __name__ == '__main__':
     mozunit.main()
--- a/js/src/config/expandlibs_exec.py
+++ b/js/src/config/expandlibs_exec.py
@@ -124,17 +124,17 @@ class ExpandArgsMore(ExpandArgs):
         # gold's --print-icf-sections output looks like the following:
         # ld: ICF folding section '.section' in file 'file.o'into '.section' in file 'file.o'
         # In terms of words, chances are this will change in the future,
         # especially considering "into" is misplaced. Splitting on quotes
         # seems safer.
         for l in stderr.split('\n'):
             quoted = l.split("'")
             if len(quoted) > 5 and quoted[1] != quoted[5]:
-                result[quoted[1]] = quoted[5]
+                result[quoted[1]] = [quoted[5]]
                 if quoted[5] in result:
                     result[quoted[5]].append(quoted[1])
                 else:
                     result[quoted[5]] = [quoted[1]]
         return result
 
     def _getOrderedSections(self, ordered_symbols):
         '''Given an ordered list of symbols, returns the corresponding list
--- a/layout/reftests/forms/reftest.list
+++ b/layout/reftests/forms/reftest.list
@@ -25,17 +25,17 @@ skip-if(cocoaWidget) != textbox-accesske
 skip-if(B2G) fails-if(Android) == textbox-setsize.xul textbox-setsize-ref.xul
 skip-if(B2G) fails-if(Android) == textarea-resize.html textarea-resize-ref.html
 # an offset seems to apply to the native resizer on windows so skip this test for now
 skip-if(B2G) fails-if(Android) skip-if(winWidget) == textarea-resize-background.html textarea-resize-background-ref.html
 skip-if(B2G) fails-if(Android) != textarea-ltr.html textarea-rtl.html
 skip-if(B2G) fails-if(Android) != textarea-ltr-scrollbar.html textarea-rtl-scrollbar.html
 skip-if(B2G) fails-if(Android) != textarea-in-ltr-doc-scrollbar.html textarea-in-rtl-doc-scrollbar.html
 skip-if(B2G) fails-if(Android) != textarea-ltr.html textarea-no-resize.html
-skip-if(B2G) fails-if(Android) != textarea-rtl.html textarea-no-resize.html
+skip-if(B2G) fails-if(Android) random-if(gtk2Widget) != textarea-rtl.html textarea-no-resize.html # bug 834724
 == textarea-rtl.html textarea-rtl-dynamic-attr.html
 == textarea-rtl.html textarea-rtl-dynamic-style.html
 == textarea-rtl.html textarea-in-dynamic-rtl-doc.html
 == textarea-setvalue-framereconstruction-1.html textarea-setvalue-framereconstruction-ref.html
 
 == radio-label-dynamic.html radio-label-dynamic-ref.html
 skip-if(B2G) == out-of-bounds-selectedindex.html out-of-bounds-selectedindex-ref.html # test for bug 471741
 != indeterminate-checked.html indeterminate-checked-notref.html
--- a/layout/reftests/forms/textarea-resize-background-ref.html
+++ b/layout/reftests/forms/textarea-resize-background-ref.html
@@ -1,5 +1,30 @@
-<html><body>
-<div style="width: 200px; height: 200px; margin: 0; background: lightgreen; border: none;">
-  <img style="position: relative; left: 185px; top: 185px;" src="chrome://global/skin/icons/resizer.png" width="15" height="15">
+<html>
+<script>
+function sizeResizer() {
+    // reference resizer
+    var img = document.getElementsByTagName("img")[0];
+    // hidden textarea
+    var textarea = document.getElementsByTagName("textarea")[0];
+    var width = 200 - textarea.clientWidth;
+    var height = 200 - textarea.clientHeight;
+    // (Leave test failing if a scrollbar is missing)
+    if (width != 0 && height != 0) {
+        img.style.width = width + "px";
+        img.style.left = textarea.clientWidth + "px";
+        img.style.height = height + "px";
+        img.style.top = textarea.clientHeight + "px";
+    }
+}
+</script>
+<body onload="sizeResizer()">
+<textarea style="width: 200px; height: 200px; margin: 0; border: none;
+                 background: red; font-size: 400px;">
+M
+</textarea>
+<div style="position: relative; top: -200px;
+            width: 200px; height: 200px; margin: 0; border: none;
+            background: lightgreen">
+  <img style="position: relative;" src="chrome://global/skin/icons/resizer.png">
 </div>
-</body></html>
+</body>
+</html>
--- a/testing/testsuite-targets.mk
+++ b/testing/testsuite-targets.mk
@@ -360,16 +360,23 @@ cppunittests-remote:
           then $(call REMOTE_CPPUNITTESTS); \
         else \
           echo "please prepare your host with environment variables for TEST_DEVICE"; \
         fi
 
 jetpack-tests:
 	$(PYTHON) $(topsrcdir)/addon-sdk/source/bin/cfx -b $(browser_path) --parseable testpkgs
 
+# -- -register
+# -- --trace-malloc malloc.log --shutdown-leaks=sdleak.log
+leaktest:
+	$(PYTHON) _leaktest/leaktest.py $(LEAKTEST_ARGS)
+
+
+
 # Package up the tests and test harnesses
 include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
 
 ifndef UNIVERSAL_BINARY
 PKG_STAGE = $(DIST)/test-package-stage
 package-tests: \
   stage-mochitest \
   stage-reftest \
--- a/toolkit/mozapps/installer/l10n-repack.py
+++ b/toolkit/mozapps/installer/l10n-repack.py
@@ -105,23 +105,25 @@ def repack(source, l10n, non_resources=[
             l10n_paths[base][e.name] = e.path
 
     # For chrome and non chrome files or directories, store what langpack path
     # corresponds to a package path.
     paths = dict((e.path,
                   l10n_paths[mozpack.path.basedir(e.path, bases)][e.name])
                  for e in entries if isinstance(e, ManifestEntryWithRelPath))
 
-    for path in NON_CHROME:
-        left = set(p for p, f in finder.find(path))
-        right = set(p for p, f in l10n_finder.find(path))
-        for p in right:
-            paths[p] = p
-        for p in left - right:
-            paths[p] = None
+    for pattern in NON_CHROME:
+        for base in bases:
+            path = mozpack.path.join(base, pattern)
+            left = set(p for p, f in finder.find(path))
+            right = set(p for p, f in l10n_finder.find(path))
+            for p in right:
+                paths[p] = p
+            for p in left - right:
+                paths[p] = None
 
     # Create a new package, with non localized bits coming from the original
     # package, and localized bits coming from the langpack.
     packager = SimplePackager(formatter)
     for p, f in finder:
         if is_manifest(p):
             # Remove localized manifest entries.
             for e in [e for e in f if e.localized]:
@@ -165,20 +167,21 @@ def repack(source, l10n, non_resources=[
         # Add a "manifest $path" entry in the top manifest under that base.
         m = ManifestFile(base)
         m.add(Manifest(base, mozpack.path.relpath(path, base)))
         packager.add(mozpack.path.join(base, 'chrome.manifest'), m)
 
     packager.close()
 
     # Add any remaining non chrome files.
-    for base in NON_CHROME:
-        for p, f in l10n_finder.find(base):
-            if not formatter.contains(p):
-                formatter.add(p, f)
+    for pattern in NON_CHROME:
+        for base in bases:
+            for p, f in l10n_finder.find(mozpack.path.join(base, pattern)):
+                if not formatter.contains(p):
+                    formatter.add(p, f)
 
     # Transplant jar preloading information.
     for path, log in finder.jarlogs.iteritems():
         assert isinstance(copier[path], Jarrer)
         copier[path].preload([l.replace(locale, l10n_locale) for l in log])
 
     copier.copy(source, skip_if_older=False)
     generate_precomplete(source)