-
Notifications
You must be signed in to change notification settings - Fork 10.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #17263 from timvandermeij/font-tests
Introduce a GitHub Actions workflow for running the font tests
- Loading branch information
Showing
8 changed files
with
198 additions
and
103 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
name: Font tests | ||
on: | ||
push: | ||
paths: | ||
- 'gulpfile.mjs' | ||
- 'src/**' | ||
- 'test/test.mjs' | ||
- 'test/font/**' | ||
- '.github/workflows/font_tests.yml' | ||
branches: | ||
- master | ||
pull_request: | ||
paths: | ||
- 'gulpfile.mjs' | ||
- 'src/**' | ||
- 'test/test.mjs' | ||
- 'test/font/**' | ||
- '.github/workflows/font_tests.yml' | ||
branches: | ||
- master | ||
workflow_dispatch: | ||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
test: | ||
name: Test | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
node-version: [lts/*] | ||
os: [windows-latest, ubuntu-latest] | ||
|
||
runs-on: ${{ matrix.os }} | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Install Gulp | ||
run: npm install -g gulp-cli | ||
|
||
- name: Install other dependencies | ||
run: npm install | ||
|
||
- name: Use Python 3.12 | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.12' | ||
cache: 'pip' | ||
|
||
- name: Install Fonttools | ||
run: pip install fonttools | ||
|
||
- name: Run font tests | ||
run: gulp fonttest --headless |
This file was deleted.
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,36 @@ | ||
# Font tests | ||
|
||
The font tests check if PDF.js can read font data correctly. For validation | ||
the `ttx` tool (from the Python `fonttools` library) is used that can convert | ||
font data to an XML format that we can easily use for assertions in the tests. | ||
In the font tests we let PDF.js read font data and pass the PDF.js-interpreted | ||
font data through `ttx` to check its correctness. The font tests are successful | ||
if PDF.js can successfully read the font data and `ttx` can successfully read | ||
the PDF.js-interpreted font data back, proving that PDF.js does not apply any | ||
transformations that break the font data. | ||
|
||
## Running the font tests | ||
|
||
The font tests are run on GitHub Actions using the workflow defined in | ||
`.github/workflows/font_tests.yml`, but it is also possible to run the font | ||
tests locally. The current stable versions of the following dependencies are | ||
required to be installed on the system: | ||
|
||
- Python 3 | ||
- `fonttools` (see https://pypi.org/project/fonttools and https://github.com/fonttools/fonttools) | ||
|
||
The recommended way of installing `fonttools` is using `pip` in a virtual | ||
environment because it avoids having to do a system-wide installation and | ||
therefore improves isolation, but any other way of installing `fonttools` | ||
that makes `ttx` available in the `PATH` environment variable also works. | ||
|
||
Using the virtual environment approach the font tests can be run locally by | ||
creating and sourcing a virtual environment with `fonttools` installed in | ||
it before running the font tests: | ||
|
||
``` | ||
python3 -m venv venv | ||
source venv/bin/activate | ||
pip install fonttools | ||
gulp fonttest | ||
``` |
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
Oops, something went wrong.