tests.texlive: init

This commit is contained in:
Dmitry Kalinkin 2020-04-10 19:47:44 -04:00
parent 86e6adc799
commit 074f6d9d84
No known key found for this signature in database
GPG key ID: 5157B3EC8B2CA333
2 changed files with 68 additions and 0 deletions

View file

@ -39,5 +39,7 @@ with pkgs;
patch-shebangs = callPackage ./patch-shebangs {};
texlive = callPackage ./texlive {};
writers = callPackage ../build-support/writers/test.nix {};
}

View file

@ -0,0 +1,66 @@
{ runCommandNoCC, fetchurl, file, texlive }:
{
chktex = runCommandNoCC "texlive-test-chktex" {
nativeBuildInputs = [
(with texlive; combine { inherit scheme-infraonly chktex; })
];
input = builtins.toFile "chktex-sample.tex" ''
\documentclass{article}
\begin{document}
\LaTeX is great
\end{document}
'';
} ''
chktex -v -nall -w1 "$input" 2>&1 | tee "$out"
grep "One warning printed" "$out"
'';
# https://github.com/NixOS/nixpkgs/issues/75605
dvipng = runCommandNoCC "texlive-test-dvipng" {
nativeBuildInputs = [ file texlive.combined.scheme-medium ];
input = fetchurl {
name = "test_dvipng.tex";
url = "http://git.savannah.nongnu.org/cgit/dvipng.git/plain/test_dvipng.tex?id=b872753590a18605260078f56cbd6f28d39dc035";
sha256 = "1pjpf1jvwj2pv5crzdgcrzvbmn7kfmgxa39pcvskl4pa0c9hl88n";
};
} ''
cp "$input" ./document.tex
latex document.tex
dvipng -T tight -strict -picky document.dvi
for f in document*.png; do
file "$f" | tee output
grep PNG output
done
mkdir "$out"
mv document*.png "$out"/
'';
# https://github.com/NixOS/nixpkgs/issues/75070
dvisvgm = runCommandNoCC "texlive-test-dvisvgm" {
nativeBuildInputs = [ file texlive.combined.scheme-medium ];
input = builtins.toFile "dvisvgm-sample.tex" ''
\documentclass{article}
\begin{document}
mwe
\end{document}
'';
} ''
cp "$input" ./document.tex
latex document.tex
dvisvgm document.dvi -n -o document_dvi.svg
cat document_dvi.svg
file document_dvi.svg | grep SVG
pdflatex document.tex
dvisvgm -P document.pdf -n -o document_pdf.svg
cat document_pdf.svg
file document_pdf.svg | grep SVG
mkdir "$out"
mv document*.svg "$out"/
'';
}