-
Notifications
You must be signed in to change notification settings - Fork 6.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add vnu-jar testing from Bootstrap, adapted for this repo. (#2469)
If Java isn't present, the test will be skipped. On CI Java is available, though.
- Loading branch information
Showing
4 changed files
with
67 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
#!/usr/bin/env node | ||
|
||
'use strict' | ||
|
||
const childProcess = require('child_process') | ||
const vnu = require('vnu-jar') | ||
|
||
childProcess.exec('java -version', (error, stdout, stderr) => { | ||
if (error) { | ||
console.error('Skipping vnu-jar test; Java is missing.') | ||
return | ||
} | ||
|
||
const is32bitJava = !stderr.match(/64-Bit/) | ||
|
||
// vnu-jar accepts multiple ignores joined with a `|`. | ||
// Also note that the ignores are regular expressions. | ||
const ignores = [ | ||
// Low priority warnings | ||
'Section lacks heading.*', | ||
// This seems to happen due to some Unicode characters | ||
'Text run is not in Unicode Normalization Form C.', | ||
// These are real errors but hard to tackle. | ||
// We should fix them eventually | ||
'Table column.*', | ||
// These happen due to the commented out English HTML code some translations have... | ||
// They should be removed at some point | ||
'The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.' | ||
].join('|') | ||
|
||
const args = [ | ||
'-jar', | ||
vnu, | ||
'--asciiquotes', | ||
'--skip-non-html', | ||
// Ignore the language code warnings | ||
'--no-langdetect', | ||
'--Werror', | ||
'--errors-only', | ||
`--filterpattern "${ignores}"`, | ||
'build/' | ||
] | ||
|
||
// For the 32-bit Java we need to pass `-Xss512k` | ||
if (is32bitJava) { | ||
args.splice(0, 0, '-Xss512k') | ||
} | ||
|
||
return childProcess.spawn('java', args, { | ||
shell: true, | ||
stdio: 'inherit' | ||
}) | ||
.on('exit', process.exit) | ||
}) |