]> git.ipfire.org Git - thirdparty/bind9.git/commit
Restrict cross-test jinja2 includes to _common/ 11805/head
authorNicki Křížek <nicki@isc.org>
Wed, 20 May 2026 14:34:02 +0000 (14:34 +0000)
committerNicki Křížek <nicki@isc.org>
Wed, 27 May 2026 14:25:44 +0000 (16:25 +0200)
commitc2c2be9be0481eb8966884bb33c0153e58e1800f
tree3ffa437d6673c9aa86a5d360e1a6f3cd8649d066
parent317cd1277910a2c680a043434ac7f9fa6d8df131
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
bin/tests/system/isctest/template.py