Comments (6)
I now understand what's going on: it's rather specific to this particular form of test. In tlb-rollback-003.lvt
one finds
\begin{filecontents}{testpkg.sty}
% The current package ...
\DeclareOldRelease[v1]{2014-01-01}{testpkg-2014-01-01}
\DeclareOldRelease[v2]{2018/10-01}{testpkg-2018-10-01}
\DeclareNamedRelease{testpkg-beta}
\DeclareNamedRelease[beta4]{testpkg-beta}
\DeclareCurrentRelease[v3]{2019-07-01}
\ProvidesPackage{testpkg}[2019-07-21 v3.5 test package] % this has a
% minor change
% so a
% different date
\DeclareOption{dvips}{\typeout{ -> option dvips executed}}
\ProcessOptions
\typeout{This is the current testpkg! }
\end{filecontents}
which when run as a single test will happily generate testpkg.sty
and give the desired results. However, when run as part of a sequence, we have tlb-rollback-2.lvt
, which features
\begin{filecontents}{testpkg.sty}
% The current package ...
\DeclareOldRelease[v1]{2014-01-01}{testpkg-2014-01-01}
\DeclareOldRelease[v2]{2018-10-01}{testpkg-2018-10-01}
\DeclareCurrentRelease[v3]{2019-07-01}
\ProvidesPackage{testpkg}[2019-07-21 v3.5 test package] % this has a
% minor change
% so a
% different date
\DeclareOption{dvips}{\typeout{ -> option dvips executed}}
\ProcessOptions
\typeout{This is the current testpkg! }
\end{filecontents}
ans so 'wins'.
The current 'clean up' logic only moves auxiliary files with names of the form test.xyx
to test.engine.xyz
, and doesn't try to 'kill' anything else. That avoids having to copy/save/... every file every time for bulk testing, but does mean there can be some 'leakage'. We have two options
- Actively clean up after every test, and save just the outputs (
.diff
files) - will be slow(ish) - Add a new variable for 'files to clean up after each test', something like
checkcleanfiles
?
The latter is trivial to implement and seems faster ...
from l3build.
@josephwright ouch, bloody stupid on my part I should have realized that.
We could add checkcleanfiles
though the name is perhaps not quite right as it is only the extras you clean (some cleaning happens anway doesn't it)? Are you thinking of something like
checkcleanfiles = { "testpkg*.*" }
or something?
I think it is probably ok to just remember that restriction (and perhaps even document it :-) ) and I change the names to not conflict
from l3build.
@FrankMittelbach Documenting that everything runs in one place is likely the easiest solution: it's hard to imagine a case where one can't clean up anyway.
from l3build.
from l3build.
that's the case I stumbled upon (using filecontents with different content but same filename). and no the star form doesn't help, that isn't overwriting that is only suppressing any commentary put at the top.
from l3build.
I'm gong to sort this: just need to work out where in the docs to say 'be careful with generated files'.
from l3build.
Related Issues (20)
- Could `l3build check` only test if the compilation is successful HOT 11
- Copyright: update manually or automatically by `update_tag()`? HOT 2
- Recent change seems to have rendered documented way to call `biber` not working HOT 16
- l3build fails for unknown reasons HOT 3
- How to copy `docfiles` with directory structure respected? HOT 1
- Non-zero exit code caused by lots of `\showbox`
- Updating `man l3build` HOT 7
- Output on failure does not help HOT 1
- Check with `stdengine` only HOT 2
- Sync up documented log normalization rules HOT 3
- Output normalization hook HOT 1
- global typesetopts is ignored HOT 3
- About runcmd, 2 feature requests, one comment and one issue HOT 14
- Version of Lua module is not normalized HOT 10
- man HOT 19
- inconsistency in require HOT 4
- name or file in documentation of tex()? HOT 1
- Clean target creates build directory HOT 26
- customize targets and options
- l3build check reports misleading if no tests defined HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from l3build.