Skip to content

Commit

Permalink
next test
Browse files Browse the repository at this point in the history
  • Loading branch information
LaurenzV committed Aug 21, 2024
1 parent 44772a8 commit 0a456ec
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 131 deletions.
203 changes: 93 additions & 110 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,74 +6,57 @@ env:
RUSTDOCFLAGS: "-Dwarnings"

jobs:
xpdf:
name: XPDF
runs-on: ubuntu-latest
steps:
- name: Cache XPDF binary
id: cache-xpdf
uses: actions/cache@v4
with:
path: pdftopng
key: xpdf-binary-v1
- name: Download XPDF
if: steps.cache-xpdf.outputs.cache-hit != 'true'
run: |
curl -LO https://dl.xpdfreader.com/xpdf-tools-linux-4.05.tar.gz
tar -xvzf ./xpdf-tools-linux-4.05.tar.gz
mv xpdf-tools-linux-4.05/bin64/pdftopng pdftopng
pdfium:
name: PDFium
runs-on: ubuntu-latest
steps:
- name: Cache PDFium binary
id: cache-pdfium
uses: actions/cache@v4
with:
path: pdfium
key: pdfium-binary-v1
- name: Clone sitro repo
if: steps.cache-pdfium.outputs.cache-hit != 'true'
run: |
git clone https://github.com/LaurenzV/sitro
- name: Build pdfium
if: steps.cache-pdfium.outputs.cache-hit != 'true'
run: |
cd sitro/src/pdfium
cargo build --release
- name: Finish
if: steps.cache-pdfium.outputs.cache-hit != 'true'
run: mv sitro/target/release/pdfium pdfium

mupdf:
name: MuPDF
runs-on: ubuntu-latest
steps:
- name: Cache MuPDF
id: cache-mupdf
uses: actions/cache@v4
with:
path: mutool
key: mupdf-binary-v1
- name: Download MuPDF
if: steps.cache-mupdf.outputs.cache-hit != 'true'
run: |
curl -LO https://mupdf.com/downloads/archive/mupdf-1.24.8-source.tar.gz
tar -xvzf ./mupdf-1.24.8-source.tar.gz
- name: Build MuPDF
if: steps.cache-mupdf.outputs.cache-hit != 'true'
run: |
cd mupdf-1.24.8-source
make HAVE_X11=no HAVE_GLUT=no
- name: Finish
if: steps.cache-mupdf.outputs.cache-hit != 'true'
run: mv mupdf-1.24.8-source/build/release/mutool mutool
# pdfium:
# name: PDFium
# runs-on: ubuntu-latest
# steps:
# - name: Cache PDFium binary
# id: cache-pdfium
# uses: actions/cache@v4
# with:
# path: pdfium
# key: pdfium-binary-v1
# - name: Clone sitro repo
# if: steps.cache-pdfium.outputs.cache-hit != 'true'
# run: |
# git clone https://github.com/LaurenzV/sitro
# - name: Build pdfium
# if: steps.cache-pdfium.outputs.cache-hit != 'true'
# run: |
# cd sitro/src/pdfium
# cargo build --release
# - name: Finish
# if: steps.cache-pdfium.outputs.cache-hit != 'true'
# run: mv sitro/target/release/pdfium pdfium
#
# mupdf:
# name: MuPDF
# runs-on: ubuntu-latest
# steps:
# - name: Cache MuPDF
# id: cache-mupdf
# uses: actions/cache@v4
# with:
# path: mutool
# key: mupdf-binary-v1
# - name: Download MuPDF
# if: steps.cache-mupdf.outputs.cache-hit != 'true'
# run: |
# curl -LO https://mupdf.com/downloads/archive/mupdf-1.24.8-source.tar.gz
# tar -xvzf ./mupdf-1.24.8-source.tar.gz
# - name: Build MuPDF
# if: steps.cache-mupdf.outputs.cache-hit != 'true'
# run: |
# cd mupdf-1.24.8-source
# make HAVE_X11=no HAVE_GLUT=no
# - name: Finish
# if: steps.cache-mupdf.outputs.cache-hit != 'true'
# run: mv mupdf-1.24.8-source/build/release/mutool mutool

tests:
name: Tests
runs-on: ubuntu-latest
needs: [xpdf, pdfium, mupdf]
# needs: [pdfium, mupdf]
defaults:
run:
shell: bash
Expand All @@ -96,12 +79,6 @@ jobs:
with:
node-version: 20

- uses: actions/cache@v4
id: cache-xpdf
with:
path: pdftopng
key: xpdf-binary-v1

- uses: actions/cache@v4
with:
path: pdfium
Expand All @@ -112,43 +89,49 @@ jobs:
path: mutool
key: mupdf-binary-v1

- name: Download the pdfium library
run: |
curl -LO https://github.com/bblanchon/pdfium-binaries/releases/download/chromium%2F5880/pdfium-linux-x64.tgz
mkdir pdfium-linux-x64
tar -xvzf ./pdfium-linux-x64.tgz -C pdfium-linux-x64
sudo mv ./pdfium-linux-x64/lib/libpdfium.so /usr/lib
rm -r pdfium-linux-x64.tgz
rm -r pdfium-linux-x64
- name: Get pdfbox
run: |
curl -LO https://dlcdn.apache.org/pdfbox/3.0.3/pdfbox-app-3.0.3.jar
mv pdfbox-app-3.0.3.jar pdfbox.jar
ls .
- name: Clone sitro
run: |
git clone https://github.com/LaurenzV/sitro
- name: npm install
run: |
cd sitro/src/pdfjs
npm i
- name: Setup
run: |
sudo chmod +x pdftopng
sudo chmod +x pdfium
sudo chmod +x mutool
echo "XPDF_BIN=$(pwd)/pdftopng" >> $GITHUB_ENV
echo "PDFIUM_BIN=$(pwd)/pdfium" >> $GITHUB_ENV
echo "PDFBOX_BIN=$(pwd)/pdfbox.jar" >> $GITHUB_ENV
echo "PDFJS_BIN=$(pwd)/sitro/src/pdfjs/pdfjs_render.mjs" >> $GITHUB_ENV
echo "MUPDF_BIN=$(pwd)/mutool" >> $GITHUB_ENV
- name: Build
run: cargo build --release

- name: Run tests
run: cargo test --release
- name: Install poppler-utils
run: |
sudo apt-get install -y poppler-utils
where pdftoppm
#
# - name: Download the pdfium library
# run: |
# curl -LO https://github.com/bblanchon/pdfium-binaries/releases/download/chromium%2F5880/pdfium-linux-x64.tgz
# mkdir pdfium-linux-x64
# tar -xvzf ./pdfium-linux-x64.tgz -C pdfium-linux-x64
# sudo mv ./pdfium-linux-x64/lib/libpdfium.so /usr/lib
# rm -r pdfium-linux-x64.tgz
# rm -r pdfium-linux-x64
#
# - name: Get pdfbox
# run: |
# curl -LO https://dlcdn.apache.org/pdfbox/3.0.3/pdfbox-app-3.0.3.jar
# mv pdfbox-app-3.0.3.jar pdfbox.jar
# ls .
#
# - name: Clone sitro
# run: |
# git clone https://github.com/LaurenzV/sitro
#
# - name: npm install
# run: |
# cd sitro/src/pdfjs
# npm i
#
# - name: Setup
# run: |
# sudo chmod +x pdftopng
# sudo chmod +x pdfium
# sudo chmod +x mutool
# echo "XPDF_BIN=$(pwd)/pdftopng" >> $GITHUB_ENV
# echo "PDFIUM_BIN=$(pwd)/pdfium" >> $GITHUB_ENV
# echo "PDFBOX_BIN=$(pwd)/pdfbox.jar" >> $GITHUB_ENV
# echo "PDFJS_BIN=$(pwd)/sitro/src/pdfjs/pdfjs_render.mjs" >> $GITHUB_ENV
# echo "MUPDF_BIN=$(pwd)/mutool" >> $GITHUB_ENV
#
# - name: Build
# run: cargo build --release
#
# - name: Run tests
# run: cargo test --release
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ tiny-skia-path = {git = "https://github.com/RazrFalcon/tiny-skia", rev="eec0a47"
[dev-dependencies]
difference = "2.0.0"
paste = "1.0.15"
sitro = {git = "https://github.com/LaurenzV/sitro", rev = "9b8b1fb"}
sitro = {git = "https://github.com/LaurenzV/sitro", rev = "666b4ee"}


42 changes: 23 additions & 19 deletions tests/visreg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ use krilla::document::Document;
use krilla::rgb::Rgb;
use krilla::serialize::SerializeSettings;
use krilla::{rgb, Fill, LinearGradient, Paint, SpreadMethod, Stop};
use sitro::{
render_mupdf, render_pdfbox, render_pdfium, render_pdfjs, render_quartz, render_xpdf,
RenderOptions, RenderedDocument, Renderer,
};
use sitro::{render_mupdf, render_pdfbox, render_pdfium, render_pdfjs, render_quartz, RenderOptions, RenderedDocument, Renderer, render_poppler, render_ghostscript};
use std::path::PathBuf;
use tiny_skia_path::{PathBuilder, Rect, Size, Transform};
use usvg::NormalizedF32;
Expand All @@ -16,10 +13,11 @@ pub fn render_doc(doc: &[u8], renderer: &Renderer) -> RenderedDocument {
match renderer {
Renderer::Pdfium => render_pdfium(doc, &options).unwrap(),
Renderer::Mupdf => render_mupdf(doc, &options).unwrap(),
Renderer::Xpdf => render_xpdf(doc, &options).unwrap(),
Renderer::QuartzRenderer => render_quartz(doc, &options).unwrap(),
Renderer::PdfjsRenderer => render_pdfjs(doc, &options).unwrap(),
Renderer::PdfboxRenderer => render_pdfbox(doc, &options).unwrap(),
Renderer::Poppler => render_poppler(doc, &options).unwrap(),
Renderer::Quartz => render_quartz(doc, &options).unwrap(),
Renderer::Pdfjs => render_pdfjs(doc, &options).unwrap(),
Renderer::Pdfbox => render_pdfbox(doc, &options).unwrap(),
Renderer::Ghostscript => render_ghostscript(doc, &options).unwrap()
}
}

Expand Down Expand Up @@ -59,27 +57,33 @@ macro_rules! generate_renderer_tests {
}

#[test]
fn [<$test_name _xpdf>]() {
let renderer = Renderer::Xpdf;
fn [<$test_name _ghostscript>]() {
let renderer = Renderer::Ghostscript;
$test_body(renderer);
}

#[test]
fn [<$test_name _poppler>]() {
let renderer = Renderer::Poppler;
$test_body(renderer);
}

#[cfg(target_os = "macos")]
#[test]
fn [<$test_name _quartz>]() {
let renderer = Renderer::Quartz;
$test_body(renderer);
}

// #[cfg(target_os = "macos")]
// #[test]
// fn [<$test_name _quartz>]() {
// let renderer = Renderer::QuartzRenderer;
// $test_body(renderer);
// }
//
#[test]
fn [<$test_name _pdfjs>]() {
let renderer = Renderer::PdfjsRenderer;
let renderer = Renderer::Pdfjs;
$test_body(renderer);
}

#[test]
fn [<$test_name _pdfbox>]() {
let renderer = Renderer::PdfboxRenderer;
let renderer = Renderer::Pdfbox;
$test_body(renderer);
}
}
Expand Down

0 comments on commit 0a456ec

Please sign in to comment.