Today we don't require that `mach` `CommandProvider`s subclass from any particular parent class and we're very lax about the requirements they must meet. While that's convenient in certain circumstances, it has some unfortunate implications for feature development.
Today the only requirements that we have for `CommandProvider`s are that they have an `__init__()` method that takes either 1 or 2 arguments, the second of which must be called `context` and is populated with the `mach` `CommandContext`. Again, while this flexibility is occasionally convenient, it is limiting. As we add features to `mach`, having a better idea what the shape of our `CommandProvider`s are and how we can instantiate them and use them is increasingly important, and this gives us additional control when having `mach` configure `CommandProvider`s based on data that is only available at the `mach` level. In particular, we plan to leverage this in bugs 985141 and 1654074.
Here we add validation to the `CommandProvider` decorator to ensure all classes inherit from `MachCommandBase`, update all `CommandProvider`s in-tree to inherit from `MachCommandBase`, and update source and test code accordingly.
Follow-up work: we now require (de facto) that the `context` be populated with a `topdir` attribute by the `populate_context_handler` function, since instantiating the `MachCommandBase` requires a `topdir` be provided. This is fine for now in the interest of keeping this patch reasonably sized, but some additional refactoring could make this cleaner.
Differential Revision: https://phabricator.services.mozilla.com/D86255
6.5 A ServiceMode RR is considered "compatible" with a client if the
client implements support for all its mandatory keys. If the SVCB
RRSet contains no compatible RRs, the client will generally act as if
the RRSet is empty.
Differential Revision: https://phabricator.services.mozilla.com/D85838
This allows to test them in the exact same environment as the tests are
going to run, which turns out to have revealed a few issues that would
only appear once xpcshell tests fail, impeding on debugging those
failures.
Differential Revision: https://phabricator.services.mozilla.com/D84781
This allows to test them in the exact same environment as the tests are
going to run, which turns out to have revealed a few issues that would
only appear once xpcshell tests fail, impeding on debugging those
failures.
Differential Revision: https://phabricator.services.mozilla.com/D84781
When using unittest rather than mozunit, something seems to be holding
onto the XPCShellTests, which keeps the subprocess objects around even
after we shut them down, and in turn, that keeps the pipe file
descriptors associated with the subprocesses around, effectively leaking
them for the duration of the entire selftest, which in some cases could
exhaust the system resources allocated to the selftest process.
Differential Revision: https://phabricator.services.mozilla.com/D84471
Also make sure we distribute the `http3server` binary in the common test archive, and download it for artifact builds.
Differential Revision: https://phabricator.services.mozilla.com/D84421
Remove some exclusions so that more files are linted. These exclusions had
been made to allow for code that was not py3 compatible, but with recent
py3 efforts, the exclusions can be removed. (Linting subsequently found
a few small issues which needed to be fixed.)
Differential Revision: https://phabricator.services.mozilla.com/D84393
Copy ensure_subprocess_env from mozbuild.util (not currently accessible from the
automation mozharness environment) to xpcshell harness, and use it.
Differential Revision: https://phabricator.services.mozilla.com/D84020
Resolve two py3 issues in remotexpcshelltests.py:
- use six.iteritems() to iterate on the env dict
- use 'wb' to create the log file
Some cleanup rides along (I couldn't resist).
Differential Revision: https://phabricator.services.mozilla.com/D79753
Support 'mach xpcshell-test' in a KaiOS environment. This is very much like running xpcshell in an android/geckoview environment except instead of using an APK for the gre, it uses the omnijar.
Differential Revision: https://phabricator.services.mozilla.com/D75545
Previously this would typically set GRE_HOME to /data/data/org.mozilla.geckoview.test,
even though org.mozilla.geckoview.test is not normally installed when running
xpcshell tests -- a non-existent directory in a privileged location!
The new location, remoteBinDir, is typically /data/local/xpcb, the location of the
xpcshell executable.
Differential Revision: https://phabricator.services.mozilla.com/D74938
Most (all?) mach xpcshell-test calls result in calling install_tests(None) while
most mach test calls for the same test/directory result in calling install_tests()
with a collection of test objects. Providing test objects allows install_tests()
to optimize which tests are installed, but there have been several recent bugs
that appear to be related to that optimization. Let's rely less on that optimization
and make things consistent between test/xpcshell-test. (There's a parallel
consideration for test vs mochitest.)
Differential Revision: https://phabricator.services.mozilla.com/D70052
--HG--
extra : moz-landing-system : lando
Entries in the xpcshell.ini manifest override the default specified on the command line.
Differential Revision: https://phabricator.services.mozilla.com/D70166
--HG--
extra : moz-landing-system : lando
Use self.log more consistently in runxpcshelltests.py (print is still used in main()).
Differential Revision: https://phabricator.services.mozilla.com/D70037
--HG--
extra : moz-landing-system : lando
Fetch, configure, and run node for Android on the test host, just like Linux tests do.
Make the node/HTTP/2 environment variables available to the tests on the device, and
use adb port forwarding to connect sockets. Finally, enable tests skipped for node.
Differential Revision: https://phabricator.services.mozilla.com/D60204
--HG--
extra : moz-landing-system : lando
Fetch, configure, and run node for Android on the test host, just like Linux tests do.
Make the node/HTTP/2 environment variables available to the tests on the device, and
use adb port forwarding to connect sockets. Finally, enable tests skipped for node.
Differential Revision: https://phabricator.services.mozilla.com/D60204
--HG--
extra : moz-landing-system : lando
Also rename the key from 'ancestor-manifest' to 'ancestor_manifest' to be
consistent with other keys.
Differential Revision: https://phabricator.services.mozilla.com/D55283
--HG--
extra : moz-landing-system : lando
Also rename the key from 'ancestor-manifest' to 'ancestor_manifest' to be
consistent with other keys.
Differential Revision: https://phabricator.services.mozilla.com/D55283
--HG--
extra : moz-landing-system : lando
When running xpcshell on the x86_64 emulator, there are infrequent intermittent
test failures ultimately caused by an incorrect (blank) value being returned
from 'adb shell getprop ro.product.cpu.abi'. Reproduction of the issue on try
suggests that a simple retry avoids the issue.
Differential Revision: https://phabricator.services.mozilla.com/D54581
--HG--
extra : moz-landing-system : lando
Currently the xpcshell harness ensures the remote scripts directory, /sdcard/tests/xpc, is
deleted, then re-creates it, then pushes to it. In this bug, confusion arises when a pre-push
check for directory existence intermittently fails (reports the directory does not exist
when in fact it does). Let's simplify this sequence by simply ensuring that the directory
has been deleted, then push to it.
Differential Revision: https://phabricator.services.mozilla.com/D53684
--HG--
extra : moz-landing-system : lando
- changes moz-http2.js so that the pushed entry is created using dnsPacked.encode in order to make the code clearer
- the pushed TRR entry is not push.example.org (instead of push.example.com) so the pushed entry is not same origin with the DoH endpoint.
- makes sure that when checking DnsSuffixInMode(3) we have the bootstrap address set
Differential Revision: https://phabricator.services.mozilla.com/D52912
--HG--
extra : moz-landing-system : lando
With Fission, we expect RootActor.listProcesses to return a list of all process actors.
Differential Revision: https://phabricator.services.mozilla.com/D52646
--HG--
extra : moz-landing-system : lando
* Adds a new moz-http2-child.js file which gets spawned into a new process. When calling NodeServer.execute, the code gets passed to the existing moz-http2.js process which then sends it to be evaluated in the child process. Any crash in the child should not be able to kill the main node process.
* Moves the proxy creation code into test_http2-proxy.js
* Adds the new NodeServer.fork() and NodeServer.kill() static methods to spawn a new server
* Makes it easier to isolate a test's behaviour from another's. It also opens the way to moving some of the logic to individual unit tests, like we do for the proxy creation code, rather than keeping it all in moz-http2.js
Differential Revision: https://phabricator.services.mozilla.com/D49961
--HG--
extra : moz-landing-system : lando
* Adds a new moz-http2-child.js file which gets spawned into a new process. When calling NodeServer.execute, the code gets passed to the existing moz-http2.js process which then sends it to be evaluated in the child process. Any crash in the child should not be able to kill the main node process.
* Moves the proxy creation code into test_http2-proxy.js
* Adds the new NodeServer.fork() and NodeServer.kill() static methods to spawn a new server
* Makes it easier to isolate a test's behaviour from another's. It also opens the way to moving some of the logic to individual unit tests, like we do for the proxy creation code, rather than keeping it all in moz-http2.js
Differential Revision: https://phabricator.services.mozilla.com/D49961
--HG--
extra : moz-landing-system : lando
This allows generic code, like a testing JSM, to do clean up when a
test completes, in a way that will work in different test suites.
Differential Revision: https://phabricator.services.mozilla.com/D50648
--HG--
extra : moz-landing-system : lando
Increase the selftest.py timeout from 15 to 30 seconds in hopes of avoiding
intermittent xpcshell timeouts seen only in selftest on slower platforms.
Differential Revision: https://phabricator.services.mozilla.com/D48874
--HG--
extra : moz-landing-system : lando
Due to limitations in the test harness, the "serviceworker_e10s" (for mochitest
and xpcshell) and "sw-e10s" (for WPT) values will match mozinfo's "nightly_build"
value, unless overridden by "--setpref dom.serviceWorkers.parent_intercept=..."
provided at the CLI.
Differential Revision: https://phabricator.services.mozilla.com/D43170
--HG--
extra : moz-landing-system : lando
Due to limitations in the test harness, the "serviceworker_e10s" (for mochitest
and xpcshell) and "sw-e10s" (for WPT) values will match mozinfo's "nightly_build"
value, unless overridden by "--setpref dom.serviceWorkers.parent_intercept=..."
provided at the CLI.
Differential Revision: https://phabricator.services.mozilla.com/D43170
--HG--
extra : moz-landing-system : lando
Add simple wait-and-retry logic for the plugins directory creation, in hopes
of addressing low frequency intermittent failures. Add logging too, so that
there will be more information if this does not work.
Differential Revision: https://phabricator.services.mozilla.com/D47840
--HG--
extra : moz-landing-system : lando
Switch the target apk for Android 7.0 xpcshell-test to geckoview. At the same time,
update the mach command for local runs to select the geckoview apk rather than the
fennec one, by default.
Differential Revision: https://phabricator.services.mozilla.com/D42904
--HG--
extra : moz-landing-system : lando
Test manifest annotations like "skip-if = verify" are normally handled in mozharness:
When a TV task finds a modified test that needs verification, but that test is skipped
in verify mode, mozharness discards the test from the list of tests to be run.
When running tests locally (mach mochitest, etc), these annotations should also be
respected, and are currently handled in wpt and reftest harnesses, but not in
mochitest or xpcshell -- rectified by this patch. mochitest and xpcshell had
neglected to set mozinfo["verify"] when running in verify mode -- easily corrected.
It should be noted that when running tests locally and a single test is requested,
most test harnesses run the requested test even if it is skip-annotated. Thus,
"mach test <test> --verify" will continue to run tests annotated "skip-if = verify"
and this patch only changes the mochitest/xpcshell behavior of verify-skipped
tests when run with "mach test <directory> --verify" -- a long-running test mode
with complex logging never used in continuous integration.
Differential Revision: https://phabricator.services.mozilla.com/D40486
--HG--
extra : moz-landing-system : lando
Test manifest annotations like "skip-if = verify" are normally handled in mozharness:
When a TV task finds a modified test that needs verification, but that test is skipped
in verify mode, mozharness discards the test from the list of tests to be run.
When running tests locally (mach mochitest, etc), these annotations should also be
respected, and are currently handled in wpt and reftest harnesses, but not in
mochitest or xpcshell -- rectified by this patch. mochitest and xpcshell had
neglected to set mozinfo["verify"] when running in verify mode -- easily corrected.
It should be noted that when running tests locally and a single test is requested,
most test harnesses run the requested test even if it is skip-annotated. Thus,
"mach test <test> --verify" will continue to run tests annotated "skip-if = verify"
and this patch only changes the mochitest/xpcshell behavior of verify-skipped
tests when run with "mach test <directory> --verify" -- a long-running test mode
with complex logging never used in continuous integration.
Differential Revision: https://phabricator.services.mozilla.com/D40486
--HG--
extra : moz-landing-system : lando
I don't know if this covers all the things that use mozinfo (probably not)
but it covers all the suites that use mozinfo and have webrender conditions
in the test manifests (i.e. mochitest and wpt variants).
Differential Revision: https://phabricator.services.mozilla.com/D35869
--HG--
extra : moz-landing-system : lando
This patch adds:
* tests that we restart the TRR connection if it gets abnormally shut down
* a way to terminate the TRR connection when attempting to resolve closeme.com
* makes sure that resolving excluded domains with the DISABLE_TRR flag does
not fail. Before this we would return an error code without checking the
excluded domains first.
Differential Revision: https://phabricator.services.mozilla.com/D35076
--HG--
extra : moz-landing-system : lando
This test uses prefs added in Bug 1518730, but the pref is ignored when it
doesn't exist, so the test is still valid.
Depends on D33471
Differential Revision: https://phabricator.services.mozilla.com/D33473
--HG--
extra : moz-landing-system : lando
When running xpcshell-tests, if a test fails when run in parallel, and then passes when re-run sequentially, the log cannot be seen. Verbose mode is not good enough as that interweaves all the logs.
This adds an option that allows printing only the log of the test that fails.
Differential Revision: https://phabricator.services.mozilla.com/D33149
--HG--
extra : moz-landing-system : lando
Bug 1533425 makes Gecko try to load from $ARCH/greprefs.js, etc on
Android. This patch teaches the packager to put certain preferences
into those architecture-specific locations for that code to find.
Differential Revision: https://phabricator.services.mozilla.com/D24984
--HG--
extra : moz-landing-system : lando
The android harness had accumulated some unnecessary and contradictory option handling.
Today, libraries must be extracted from an apk: options.localAPK is required, and
options.localLibs is unused. Cleaning up this code also removes some fennec-isms.
Additionally, this patch relaxes the requirement to find package-name.txt in the apk,
clearing the way for running against a geckoview apk (I may generalize that further
in a follow-up, but not sure what is needed yet).
Differential Revision: https://phabricator.services.mozilla.com/D29709
--HG--
extra : moz-landing-system : lando
setupMinidumpDir is no longer called from anywhere.
The check for a crash directory makes sense for browser tests, but not
for xpcshell: in xpcshell, crash reporter does not create the directory --
the harness does.
Differential Revision: https://phabricator.services.mozilla.com/D28902
--HG--
extra : moz-landing-system : lando
These modules are MIT licensed and they're to be used in xpcshell-tests for TRR.
They allow us to make moz-http2.js act like a true DoH server - more specifically to answer DNS queries that have actually been asked, not just a dumb character buffer.
Differential Revision: https://phabricator.services.mozilla.com/D25672
--HG--
extra : moz-landing-system : lando
These modules are MIT licensed and they're to be used in xpcshell-tests for TRR.
They allow us to make moz-http2.js act like a true DoH server - more specifically to answer DNS queries that have actually been asked, not just a dumb character buffer.
Differential Revision: https://phabricator.services.mozilla.com/D25672
--HG--
extra : moz-landing-system : lando
In the harness, sequential mode is set when self.singleFile is set. self.singleFile has
been set correctly when a single test is specified as a test_path (mach xpcshell-test <test>)
but it has not been set correctly if a single test is specified in a manifest (mach test <test);
this patch corrects for that by setting self.singleFile after all test specifications have
set self.alltests.
An unintended consequence of the code rearrangement is that the chunk_by_slice filter is
now used even when self.singleFile would be set -- but only if totalChunks > 1; this
situation seems very unlikely, and the consequences minimal.
Differential Revision: https://phabricator.services.mozilla.com/D23253
--HG--
extra : moz-landing-system : lando
This patch uses the existing xpcshell test certificate infrastructure
(pycert/pykey) to manage the http2 test certificates (and gets rid of some uses
of nsIBadCertListener2 as a bonus).
Differential Revision: https://phabricator.services.mozilla.com/D21814
--HG--
rename : netwerk/test/unit/CA.cert.der => netwerk/test/unit/http2-ca.pem
rename : testing/xpcshell/moz-http2/http2-key.pem => testing/xpcshell/moz-http2/http2-cert.key
extra : moz-landing-system : lando
For static components, I don't intend to allow removing or replacing CID
entries, only contract ID entries. And I would generally prefer, when
restoring overrides of those classes, to not create a new dynamic factory
entry for the contract ID.
We already have the ability to mock components without either of those issues,
but registering a new CID entry for the mock (without unregistering the
original), and then restoring the original by calling `registerFactory` with a
null factory object.
This patch updates our existing mocks to behave that way, and paves the way
for the rest of the patches.
Differential Revision: https://phabricator.services.mozilla.com/D15031
--HG--
extra : rebase_source : 449f37ae8a3cc970e5f864d10e43e88d9e7e4bf6
extra : source : bedaa9c437ad30ea88bdc0e8fc83f4a2e980812e
For static components, I don't intend to allow removing or replacing CID
entries, only contract ID entries. And I would generally prefer, when
restoring overrides of those classes, to not create a new dynamic factory
entry for the contract ID.
We already have the ability to mock components without either of those issues,
but registering a new CID entry for the mock (without unregistering the
original), and then restoring the original by calling `registerFactory` with a
null factory object.
This patch updates our existing mocks to behave that way, and paves the way
for the rest of the patches.
Differential Revision: https://phabricator.services.mozilla.com/D15031
--HG--
extra : rebase_source : 61ef2435d764c2d9daee6a16515eb0efd94a6454
***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8
This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:
ChromeUtils.import("resource://gre/modules/Services.jsm");
is approximately the same as the following, in the new model:
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs
This was done using the followng script:
https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16750
--HG--
extra : rebase_source : 359574ee3064c90f33bf36c2ebe3159a24cc8895
extra : histedit_source : b93c8f42808b1599f9122d7842d2c0b3e656a594%2C64a3a4e3359dc889e2ab2b49461bab9e27fc10a7
When passed the `--verbose` flag, `mach xpcshell-test` already prints the
current directory, environment variables, and command used for the test.
However, it prints them in Python syntax. This seems like a good thing to do, as
it's a clear indication of what the test is actually doing. But if one wants to
reproduce a problem by running the xpcshell command directly, it's an
error-prone pain to convert from Python lists of strings to the Bourne shell
syntax.
Fortunately, the Python 2.7 `pipes` module has a function, `pipes.quote`, which
produces properly quoted Unix shell commands, ready to be copied and pasted into
one's terminal.
Unfortunately, the xpcshell tests still clean up the $obj/temp/xpc-plugins-FOO
directory, so this still isn't quite ready to go.
Differential Revision: https://phabricator.services.mozilla.com/D10392
--HG--
extra : moz-landing-system : lando
This commit creates an empty 'base' profile because I wanted to preserve the
ability to apply a pref to all test harnesses on try. Since xpcshell doesn't
share many prefs with the other harnesses, it can't use the common profile.
So adding a pref to 'common' will apply it everywhere except xpcshell. Adding
a pref to 'base' will apply it everywhere including xpcshell. These profiles
are starting to get a bit messy, but I'd like to punt re-organizing them to a
follow-up bug.
Depends on D9716
Differential Revision: https://phabricator.services.mozilla.com/D9717
--HG--
extra : moz-landing-system : lando
This uses nsIPrefService.readUserPrefsFromFile to set preferences from a
user.js passed in via the python harness. This allows us to use the profiles
under testing/profiles like all the other harnesses and will make setting prefs
in xpcshell easier to use and understand.
Differential Revision: https://phabricator.services.mozilla.com/D9716
--HG--
extra : moz-landing-system : lando
This commit creates an empty 'base' profile because I wanted to preserve the
ability to apply a pref to all test harnesses on try. Since xpcshell doesn't
share many prefs with the other harnesses, it can't use the common profile.
So adding a pref to 'common' will apply it everywhere except xpcshell. Adding
a pref to 'base' will apply it everywhere including xpcshell. These profiles
are starting to get a bit messy, but I'd like to punt re-organizing them to a
follow-up bug.
Depends on D9716
Differential Revision: https://phabricator.services.mozilla.com/D9717
--HG--
extra : moz-landing-system : lando
This uses nsIPrefService.readUserPrefsFromFile to set preferences from a
user.js passed in via the python harness. This allows us to use the profiles
under testing/profiles like all the other harnesses and will make setting prefs
in xpcshell easier to use and understand.
Differential Revision: https://phabricator.services.mozilla.com/D9716
--HG--
extra : moz-landing-system : lando
Android xpcshell tests run `elfhack -r`, and do so by using an
elfhack binary from an archive downloaded via tooltool (which contains
other things).
Instead, we just put the elfhack binary in the
target.common.tests.tar.gz archive, and make the xpcshell harness
use it from there instead, allowing to pick in-tree changes to elfhack.
Depends on D9623
Differential Revision: https://phabricator.services.mozilla.com/D9624
--HG--
extra : moz-landing-system : lando
The current command line building is hard to follow and make sense of. Let's
just use a single command variable and comment the order it needs.
Depends on D9549
Differential Revision: https://phabricator.services.mozilla.com/D9550
--HG--
extra : moz-landing-system : lando
If something goes wrong when setting prefs, that's something we'll want to know
about as it likely means some tests will start to fail.
Differential Revision: https://phabricator.services.mozilla.com/D9549
--HG--
extra : moz-landing-system : lando
This patch removes linux64-jsdcov from the available builds on taskcluster along with any hacks used to run it. It also removes any 'coverage' entries that were added to skip tests.
Differential Revision: https://phabricator.services.mozilla.com/D7919
--HG--
extra : moz-landing-system : lando
Behavior changes:
- instead of reading the mozconfig file, it now instantiates an instance of the build object.
- safe checking methods are used to access attributes to prevent errors on automation environment.
- better mach command parsing is performed with handler category instead of error-prone argv parsing.
Other changes:
- docstring for testing/xpcshell/runxpcshelltests.py::buildTestList() added and modernized.
- added clause that if length of tests gathered is 0, mach exits with an error code of 1.
Differential Revision: https://phabricator.services.mozilla.com/D7133
--HG--
extra : moz-landing-system : lando
... since AF_INET wouldn't actually use IPv4!
MozReview-Commit-ID: FCf7psawENI
Differential Revision: https://phabricator.services.mozilla.com/D4749
--HG--
extra : moz-landing-system : lando
Set the "network.trr.disable-ECS" pref to false to disable.
MozReview-Commit-ID: GE6L8Vpvuu0
Differential Revision: https://phabricator.services.mozilla.com/D2933
--HG--
extra : moz-landing-system : lando
This will make sure that when running |mach python-test --python 3| locally,
we only run the tests that also run in CI with python 3 (and therefore pass
presumably).
MozReview-Commit-ID: 3OBr9yLSlSq
--HG--
extra : rebase_source : 456340d0ecdddf1078f2b5b4ebb1eddf3813b26a
These tests were only not connecting due to an implementation detail
of the Push component.
MozReview-Commit-ID: 49JPgsfRxTF
--HG--
extra : rebase_source : 10a9116cbd4ecfbd8071b856bfafa59fe6dcdffc
There are some places where we have a thing which may not even be a node, and
we end up hardcoding the value of DOCUMENT_NODE there, because
"foo.nodeType == foo.DOCUMENT_NODE" will test true if foo is not a node: both
sides will be undefined.
... and before chasing a cname, check if the address record for that
CNAME is actually in fact already provided in the DNS packet that passed
on the CNAME!
Some existing tests ajusted for this. Two new tests added.
MozReview-Commit-ID: CBMO7N7jMEX
--HG--
extra : rebase_source : 1110a8df6d89fcbb0ad2a35b3762b837ce7a1e18
Also fixes existing code which fails the rule.
MozReview-Commit-ID: CkLFgsspGMU
--HG--
extra : rebase_source : 86a43837659aa2ad83a87eab53b7aa8d39ccf55b
In older builds, task functions were allowed to return generators, which were
automatically wrapped into tasks using Task.jsm. This model is no longer
supported, so to prevent it from passing silently, we should check for and
reject uses of the old pattern.
MozReview-Commit-ID: 4cHo7pEqYJn
--HG--
extra : rebase_source : c045550457152a8961f0e76e9489c799dfd0840e
extra : histedit_source : 9d2e14a1ab80a6a099101c256b68102ac34513d8
In the section of the response body parser that just skips over the
answer section, the code wrongly assumed there could only be a pointer
at the start, while in fact every label can be made as a pointer. Just
turned out to not be used very often.
MozReview-Commit-ID: 8ZYtlq8HDPw
--HG--
extra : rebase_source : cc790caf36b4d4e77b113f89ed427ee537a539d8
Now that XPT files are not loaded from files at runtime, code for
packaging XPT files can be removed.
This means that a couple of test XPIDL interfaces will get shipped in
builds to users that weren't before, but I don't think that matters
much.
This also puts XPT files into the local objdir for the XPIDL makefile,
instead of dist/bin, because they are no longer part of the
distribution.
MozReview-Commit-ID: 7gWj8KWUun3
--HG--
extra : rebase_source : 65bac47c2cd1a20b3c675a01b44a25a1d2d3ab7a
Since |mach xpcshell-test| was already defaulting to the 'mach' format, this will be a no-op
for most people. For anyone who had:
[test]
format=tbpl
in their machrc file, this will start working for xpcshell tests.
MozReview-Commit-ID: LwIlh0lefN6
--HG--
extra : rebase_source : 5231e18c57e1aa3aacbc6d332127b7c9e2f9111f
The directory service caches certain directory entries, or has them set by
other callers using `.set()`. When we try to override those directories with
custom providers, the cached value still takes precedence.
It might make more sense to just store the directory entry values directly in
the directory service's hash, but this patch just takes the less obtrusive
path of clearing cached values for keys that we override.
This patch also fixes the few instances where add-on manager tests leave files
in the global temporary directory which are now caught by the shutdown
assertions.
MozReview-Commit-ID: Jq92TngLO1L
--HG--
extra : rebase_source : 76eb1f02882bd10151115bf1e934a38d313d0cb2
extra : histedit_source : df0293e06e4357080318beb92c7a1e00766a8799
The xpcshell harness tries to filter out head.js stack frames when reporting
errors. When it fails, it tends to report strange error locations, with the
name of a unit test file, but the line number of a line in a head file. This
changes the filter to match more common head.js files, such as head_addons.js.
MozReview-Commit-ID: FASWNSR0Noc
--HG--
extra : rebase_source : ad1fa30c8357ee77c08b4df0acd665a7e625227e
extra : histedit_source : 7dde0025fcc8ba3a86258c7649578966e5cdca53%2C975a6db069f5e34e61cc0f6cbebb0f56ffab816c
The xpcshell harness expects to catch the Cr result codes that it throws, but
it often fails when an assertion is used in asynchronous code. That results in
a raw numeric error code being reported, with no location information
available to figure out why or where the test is failing.
Throwing an actual Exception object maintains location information for use
when the error is reported.
MozReview-Commit-ID: InuytWhDxBP
--HG--
extra : rebase_source : 79692462549fc0240459000b0b490d046f473b67
extra : histedit_source : 83259c3bb633fd046acc8230ee40e88dd0214a4c%2Cf688ffe04de88a2d5dae3c03af240e90a1f2e398
RFC 1035 section 4.1.1 documents this bit as:
RD - Recursion Desired - this bit may be set in a query and is copied
into the response. If RD is set, it directs the name server to pursue
the query recursively. Recursive query support is optional.
MozReview-Commit-ID: 8iHDgNtA1L1
--HG--
extra : rebase_source : a29010a2894fd00ebfbfb869f5938cf507345a2f