first commit
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Types tests / Test (lts/*) (push) Has been cancelled
				
			
		
			
				
	
				Lint / Lint (lts/*) (push) Has been cancelled
				
			
		
			
				
	
				CodeQL / Analyze (javascript) (push) Has been cancelled
				
			
		
			
				
	
				CI / Test (20) (push) Has been cancelled
				
			
		
			
				
	
				CI / Test (22) (push) Has been cancelled
				
			
		
			
				
	
				CI / Test (24) (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Types tests / Test (lts/*) (push) Has been cancelled
				
			Lint / Lint (lts/*) (push) Has been cancelled
				
			CodeQL / Analyze (javascript) (push) Has been cancelled
				
			CI / Test (20) (push) Has been cancelled
				
			CI / Test (22) (push) Has been cancelled
				
			CI / Test (24) (push) Has been cancelled
				
			This commit is contained in:
		
							
								
								
									
										36
									
								
								test/font/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								test/font/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
npx gulp fonttest
 | 
			
		||||
```
 | 
			
		||||
		Reference in New Issue
	
	Block a user