Merge latest green inbound changeset to mozilla-central
authorEd Morley <emorley@mozilla.com>
Thu, 14 Feb 2013 10:44:41 +0000
changeset 131718 aceeea086ccb5493ad9269af922bcb05ef6b2b13
parent 131717 f27d5d9ebef259390405869bd7a53cae8a2841ad (current diff)
parent 131607 4059d988e0572cfac10729923c3d9ac2726e0202 (diff)
child 131719 ebeaa97d710de11ee7dee5e6f1fd9bb036c06d15
child 131772 6b975147c01541a2232faf86c5d42d1933e47070
child 138247 3c5779365494d556caa025262234aced95fafbaf
push id2323
push userbbajaj@mozilla.com
push dateMon, 01 Apr 2013 19:47:02 +0000
treeherdermozilla-beta@7712be144d91 [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)