On Wed, Apr 10, 2024 at 03:43:58PM -0500, Justin Tobler wrote: > On 24/04/08 08:47AM, Patrick Steinhardt wrote: > > While the reftable format is a recent introduction in Git, JGit already > > knows to read and write reftables since 2017. Given the complexity of > > the format there is a very real risk of incompatibilities between those > > two implementations, which is something that we really want to avoid. > > > > Add some basic tests that verify that reftables written by Git and JGit > > can be read by the respective other implementation. For now this test > > suite is rather small, only covering basic functionality. But it serves > > as a good starting point and can be extended over time. > > > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > > --- > > t/t0612-reftable-jgit-compatibility.sh | 132 +++++++++++++++++++++++++ > > 1 file changed, 132 insertions(+) > > create mode 100755 t/t0612-reftable-jgit-compatibility.sh > > > > diff --git a/t/t0612-reftable-jgit-compatibility.sh b/t/t0612-reftable-jgit-compatibility.sh > > new file mode 100755 > > index 0000000000..222464e360 > > --- /dev/null > > +++ b/t/t0612-reftable-jgit-compatibility.sh > > @@ -0,0 +1,132 @@ > > +#!/bin/sh > > + > > +test_description='reftables are compatible with JGit' > > + > > +GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main > > +export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME > > +GIT_TEST_DEFAULT_REF_FORMAT=reftable > > +export GIT_TEST_DEFAULT_REF_FORMAT > > + > > +# JGit does not support the 'link' DIRC extension. > > +GIT_TEST_SPLIT_INDEX=0 > > +export GIT_TEST_SPLIT_INDEX > > + > > +. ./test-lib.sh > > + > > +if ! test_have_prereq JGIT > > Do we want these tests to run in CI? As far as I can tell these tests > would always be skipped. They aren't skipped on Linux-based jobs at least. The JGIT prerequisite is defined in "t/test-lib.sh" like so: ``` test_lazy_prereq JGIT ' jgit --version ' ``` And because we have adapted "install-dependencies.sh" to install the "jgit" executable into our custom PATH directory it is available, meaning that the prereq is fulfilled. But you're actually onto something: while the tests run on GitHub, they don't run on GitLab. And this is caused by the unprivileged build that we use on GitLab, where we install dependencies as a different user than what we run tests with. Consequently, as the custom path is derived from HOME, and HOME changes, we cannot find these binaries. This is not a new issue, it's been there since the inception of the GitLab pipelines. I'll include another patch on top to fix this. Patrick
Attachment:
signature.asc
Description: PGP signature