]> git.ipfire.org Git - thirdparty/bind9.git/commit
Restrict cross-test jinja2 includes to _common/ 12116/head
authorNicki Křížek <nicki@isc.org>
Wed, 20 May 2026 14:34:02 +0000 (14:34 +0000)
committerNicki Křížek <nicki@isc.org>
Thu, 28 May 2026 09:36:55 +0000 (11:36 +0200)
commit02de870059ede936f9120f311e643c81529c19c1
tree2f45b4dfc55b132fad8ced30dcca8c932ec39bac
parent23ad1bf27b771f5474b793d72e31ab97f52c56c9
Restrict cross-test jinja2 includes to _common/

The previous loader was a FileSystemLoader rooted at $srcdir, which
allowed any system test to include any other test's templates -- a
wider scope than intended. Every existing cross-test include already
targets _common/, so make that the only path.

ChoiceLoader + PrefixLoader keeps the existing '_common/foo.j2' path
convention working without changes to call sites. The '_common/'
prefix is deliberately kept rather than dropping it by rooting the
FileSystemLoader at _common/ directly:

  - It signals at the include site that the file is a shared
    template, not a sibling of the current test; readers don't need
    to know the loader configuration to understand where the file
    lives.
  - It prevents shadowing: a test-local 'controls.conf.j2' would
    not collide with the shared one, and the unqualified name keeps
    its test-local meaning.
  - It makes the dependency greppable: 'grep -rl _common/'
    identifies every test that consumes shared snippets.

Assisted-by: Claude:claude-opus-4-7
(cherry picked from commit c2c2be9be0481eb8966884bb33c0153e58e1800f)
bin/tests/system/isctest/template.py