Page MenuHomePhabricator

parsoidsvc-hhvm-parsertests-jessie doesn't run tidy tests
Closed, ResolvedPublic

Description

https://integration.wikimedia.org/ci/job/parsoidsvc-hhvm-parsertests-jessie/1320/console

23:24:26 This is MediaWiki version 1.29.0-alpha (c78d1c8).
23:24:26 
23:24:26 Warning: tidy is not installed, skipping some tests
23:24:26 
23:24:27 Running parser tests from "/home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/parsoidsvc/tests/parserTests.txt"...
23:24:36 
23:24:36 Passed 1263 of 1263 tests (100%), skipped 102... ALL TESTS PASSED!

Event Timeline

The CI instances are provisioned by the same Puppet manifests Wikimedia uses in production.

I checked on the Nodepool Jessie instances: they have the hhvm-tidy package:

hhvm-tidy:                                                                                                                                        
  Installed: 0.1.3~jessie1                                                                                                                        
  Candidate: 0.1.3~jessie1                                                                                                                                                                                                                              
  Version table:
 *** 0.1.3~jessie1 0
       1001 http://apt.wikimedia.org/wikimedia/ jessie-wikimedia/main amd64 Packages

And apparently HHVM uses it:

grep -Ri tidy /etc/hhvm
/etc/hhvm/server.ini:hhvm.dynamic_extensions[tidy.so] = tidy.so
/etc/hhvm/php.ini:hhvm.dynamic_extensions[tidy.so] = tidy.so

Maybe we are missing a setting in MediaWiki to effectively use tidy? After install.php is run we append a few more snippets from integration/jenkins.git mediawiki/conf.d/* . None of there refers to tidy though.

Luckily I reproduce on my machine. As far as I can tell $wgTidy and $wgConfTidy are the default values (false and null).

I have php-tidy and hhvm-tidy packages installed.

/etc/hhvm
hhvm.dynamic_extension_path = /usr/lib/x86_64-linux-gnu/hhvm/extensions/20150212
hhvm.dynamic_extensions[tidy.so] = tidy.so

Cant find it:

$ hhvm -v Eval.Jit=false  parserTests.php --quiet
This is MediaWiki version 1.29.0-alpha (19d7ed5).

Warning: tidy is not installed, skipping some tests

Running parser tests from "/home/hashar/projects/mediawiki/core/tests/parser/parserTests.txt"...

Running parser tests from "/home/hashar/projects/mediawiki/core/tests/parser/extraParserTests.txt"...

Passed 1269 of 1269 tests (100%), skipped 103... ALL TESTS PASSED!

Same with --use-tidy-config ( hhvm -v Eval.Jit=false parserTests.php --quiet --use-tidy-config ).

In TidySupport.php we have:

if ( extension_loaded( 'tidy' ) && class_exists( 'tidy' ) ) { 
    $this->config['driver'] = wfIsHHVM() ? 'RaggettInternalHHVM' : 'RaggettInternalPHP';

Under HHVM the extension is loaded but class_exists( 'tidy' ) yields false.

Change 337513 had a related patch set uploaded (by Arlolra):
Don't test for tidy class on hhvm

https://gerrit.wikimedia.org/r/337513

Change 337513 merged by jenkins-bot:
Don't test for tidy class on hhvm

https://gerrit.wikimedia.org/r/337513

Arlolra claimed this task.

00:03:16 This is MediaWiki version 1.29.0-alpha (41ad223).
00:03:16
00:03:17 Running parser tests from "/home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/parsoidsvc/tests/parserTests.txt"...
00:03:25
00:03:25 Passed 1365 of 1365 tests (100%)... ALL TESTS PASSED!