Skip to content

Testing Tectonic on the arXiv paper dataset #397

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
2 of 6 tasks
Mrmaxmeier opened this issue Jun 20, 2019 · 12 comments
Closed
2 of 6 tasks

Testing Tectonic on the arXiv paper dataset #397

Mrmaxmeier opened this issue Jun 20, 2019 · 12 comments

Comments

@Mrmaxmeier
Copy link
Contributor

Mrmaxmeier commented Jun 20, 2019

I'm experimenting with a few low-level changes in the engine. Tectonic's test suite is a nice early warning but passing the tests says little about being able to build real LaTeX documents in my experience.
The arXiv archive provides TeX sources for most of the published papers.
I've hacked up a proof of concept of a crater-like regression testing tool using parts of the arXiv dataset.

Here's a quick rundown:
It'll run the engine on each source file and store logs and output files.
This takes about 30 minutes for 2500 papers.
It currently relies on libfaketime to get as close to reproducible builds as possible. Tectonic's output is now reproducible when setting SOURCE_DATE_EPOCH. This means we're able to detect regressions by checking the output hashes. Visual comparisons of output PDFs might still be interesting though in the future.
There are some issues with deterministic outputs as some samples trigger undefined behavior.
I've borrowed some of crater's CSS and whipped up a simple front-end for the test results.

Screenshot_2019-06-20

I'll open separate issues for the false-positives caused by undefined behavior and will keep this one open as a kind-of tracking issue on reproducibility and regression testing.

Ideas / TODOs:

  • valgrind / asan / msan
  • visual diff for PDFs
  • remove libfaketime hacks
  • track performance
  • run all samples in-process (might uncover some state corruption)
  • automated runs for PRs (CI Bot Mrmaxmeier/tectonic-on-arXiv#5)
@pkgw
Copy link
Collaborator

pkgw commented Jun 20, 2019

I've wanted to do this for so long, this is amazing!!!

@pkgw
Copy link
Collaborator

pkgw commented Jun 20, 2019

Let me know if you're ever in the Boston area and I'll buy you the beverage(s) of your choice.

@XVilka
Copy link

XVilka commented Sep 30, 2019

Would be interesting to test also the Oxidized fork/branch:

@Mrmaxmeier
Copy link
Contributor Author

Would be interesting to test also the Oxidized fork/branch:

Here's the current results with crlf0710#122 applied.
https://tt.ente.ninja/#/compare/master-v0.1.11-326-g926360a/oxidize-v0.1.11-670-g8519cfc4-dirty

@pkgw
Copy link
Collaborator

pkgw commented Oct 1, 2019

@Mrmaxmeier Thank you, that's super helpful!

@burrbull
Copy link

burrbull commented Oct 1, 2019

404 on right column.

@cormacrelf
Copy link

Where are the sources for the test runner & frontend?

@burrbull
Copy link

burrbull commented Oct 1, 2019

On arxiv.org under Other formats link.

@cormacrelf
Copy link

@burrbull not the TeX sources, the code that runs the tests and displays them on https://tt.ente.ninja.

@Mrmaxmeier
Copy link
Contributor Author

@cormacrelf
It's a collection of hacky python scripts and a web page that consumes .json reports:
https://github.com/Mrmaxmeier/tectonic-on-arXiv

It might make sense to rewrite this to consume tectonic as a library. It currently just spawn a bunch of tectonic processes.

@burrbull
Copy link

burrbull commented Oct 1, 2019

@Mrmaxmeier can you rerun tests with crlf0710#123 ?

@pkgw
Copy link
Collaborator

pkgw commented Jan 16, 2021

Now that these tests are running automatically in the main repo, I am going to say that this issue is closed. Thank you for you work to set up this service @Mrmaxmeier, it is hugely valuable!

@pkgw pkgw closed this as completed Jan 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants