* RemexHtml is the future of "tidy" in MediaWiki,
so run our parser tests using it.
* This is a necessary step before we can make it
the default in MediaWiki (T185753).
* Cleaned up a bunch of tests:
(a) where html/php+tidy and html/parsoid match up,
retained a html+tidy section and removed the others.
(b) where html/php and html/php+tidy match up,
retained the html/php section and removed the
html/php+tidy section.
* Annotating tests with explanations where Parsoid & Remex
output differ. This is usually because of two reasons:
(a) Parsoid has Tidy-emulation code in some cases (which
we can consider stripping away separately).
(b) Parsoid does a bunch of cleanup on the DOM (which was
probably done to emulate Tidy output, but which could
probably be retained). Since Parsoid (in some form)
will be default parser in the future, no reason to try
to port this cleanup (in broken markup scenarios) into
Remex.
* Left a bunch of FIXMEs for later followup.
Unrelated cleanup:
* Renamed a few tests since the functionality in Parsoid
was fixed up. There is no more "implicit <td>" support.
Those all now lead to fostered content.
* Fixed some clearly broken output in html/parsoid sections
for some tests.
Co-Authored-by: Kunal Mehta <legoktm@member.fsf.org>
Co-Authored-by: Subramanya Sastry <ssastry@wikimedia.org>
Bug: T188167
Depends-On: I646dbabb3c2ed28c1ea72c5bd8f7f92d03f57c75
Change-Id: Ic7c34d57a300dbd36a37f03fbfe33391b2950b44
Refactor Installer::locateExecutableInDefaultPaths() into a separate
utility class, ExecutableFinder. This class is already used in plenty of
places outside of the installer, so it's ripe for being extracted.
This class is located in utils/ due to the dependency upon
Shell::command(). Once that no longer has a dependence upon MediaWiki,
this class can be moved to libs/ too.
Change-Id: I175465acc0d64f990445ce05fabcee8b88a0b259
* Split up testHelpers.inc into one class per file, with the file named
after the class per the usual convention. Put them in tests/parser
since they are all parser-related, even though a couple are reused by
other unit tests.
* Also rename parserTest.inc and parserTestsParserHook.php to follow the
usual convention, and split off ParserTestResultNormalizer
* Move fuzz testing out to its own maintenance script. It's really not
helpful to have fuzz testing, which is designed to run forever,
exposed as a PHPUnit test.
* Increased fuzz test memory limit, and increased the memory headroom for
getMemoryBreakdown(), since HHVM's ReflectionClass has an internal
cache which uses quite a lot of memory.
* Temporarily switched a couple of ParserTest methods from private to
public to support fuzz testing from a separate class -- I plan on
replacing this interface in a subsequent commit.
Change-Id: Ib1a07e109ec1005bff2751b78eb4de35f2dfc472