[kata-dev] The case to integrate the tests repository

Christophe de Dinechin dinechin at redhat.com
Tue Jan 19 10:09:06 UTC 2021



> On 15 Jan 2021, at 16:07, Cameron Meadors <cmeadors at redhat.com> wrote:
> 
> David,
> 
> All the issues you have pointed out are definitely valid and need to be resolved.  I think all t of these have been discussed in the ongoing effort to improve Upstream CI.  The suggestion of merging the tests repo has been brought up before with some debate.  I would like to point out that we also have a CI repo that is separate as well that is also part of testing and CI.
> 
> The current approach to improvements are described in https://docs.google.com/document/d/15YobCIUFMEvdNIGem0CJ_g30hJY4YH5Lr6ty7_8ASPY/edit <https://docs.google.com/document/d/15YobCIUFMEvdNIGem0CJ_g30hJY4YH5Lr6ty7_8ASPY/edit>  It takes the approach of trying to understand and clean up what currently exists and solve he issues of test maintenance, debugging failures, and local execution of CI tests.  I think all of these can be resolved to various degrees without merging repos.  That is not an argument against the idea but a preference to do what we can that is not dependent on where the code/tests lives.
> 
> Your point 2 is the most compelling to me for merging repos,  Having tests committed along with new features would be a great place be.  Currently I don't see many tests being committed, unit, manual verification, or automation.  Maybe I am missing them (can't review every PR).  I would like to understand if the state of having separate test repos is a factor in not getting more tests with code changes, or if the other issues are really the cuplrit.  I suspect the later because I have seen 100% code coverage through integration tests being committed separately along with code changes when integration tests were in a separate repo (unit tests in repo with code).

It is definitely a factor.

- If you push the test first, then other commits will presumably fail.

- If you push the code first, chances are it does not pass the test in the CI.

So right now, pushing a test is hard (on a scale of 1 to 10, I'd say a solid 20).

> 
> That's my two cents.  Thank you for reaffirming that the issues we identified are still issues and that we really need to put more effort in to resolve them.
> 
> 
> 
> On Fri, Jan 15, 2021 at 8:27 AM David Gibson <david at gibson.dropbear.id.au <mailto:david at gibson.dropbear.id.au>> wrote:
> On Fri, Jan 15, 2021 at 10:49:34AM +0100, Christophe de Dinechin wrote:
> > 
> > 
> > > On 15 Jan 2021, at 04:29, David Gibson <david at gibson.dropbear.id.au <mailto:david at gibson.dropbear.id.au>> wrote:
> > > 
> > > Hi all,
> > > 
> > > I'm a pretty recently started Kata contributor.  One of many things I
> > > found frustrating when I started working on Kata was the way the code
> > > was split into a whole batch of repositories.  I'm relieved that
> > > they're now merged together for Kata 2.x.
> > > 
> > > However, the tests repository is still separate, and AIUI there are no
> > > plans to integrate it.  I still find that really annoying, so I want
> > > to make the case for integrating it into the kata-containers
> > > repository as well.
> > > 
> > > 1. It removes delays fixing test bugs
> > > 
> > > On several occasions when working on code changes, I've hit CI
> > > failures due to what turn out to be bugs in the tests code.  These
> > > have often been problems with static checks essentially unrelated to
> > > what I'm actually trying to accomplish.
> > > 
> > > To deal with this, I've had to file a separate issue and PR against
> > > the tests repo, wait for that to be tested and reviewed, and only then
> > > can I resume work on what I was actually trying to do.  Especially
> > > since I'm a different timezone from most of the Kata team, that can
> > > easily be several days of delay.
> > > 
> > > If the tests were integrated, I could include a fix for the test as a
> > > commit in the same PR, it would automatically fix the CI for that PR
> > > and could be reviewed with the same batch.
> > > 
> > > 2. Allows tests to be commited along with new features
> > > 
> > > Obviously it's desirable for new features to come with tests for those
> > > features.  Integrating the tests repo means that can be done in the
> > > same PR, reducing the amount of github busywork involved in doing so.
> > > It also means the code and tests can be reviewed and discussed in the
> > > same place.
> > > 
> > > In addition to being more convenient, that means we don't need to
> > > rerun basically the same tests for both the code PR and the tests PR.
> > > That means less demand on the CI infrastructure, which helps everyone.
> > > 
> > > 3. Testing scripts can be simplified
> > > 
> > > AFAICT the current scripts in the tests code have a bunch of
> > > conditionals for various different configurations: Kata1 vs. Kata 2.x,
> > > Rust agent vs. Go agent amongst others.  If the tests repo is
> > > integrated we can cut down the test scripts to just the cases that are
> > > relevant for the current version of the code.
> > > 
> > > Understanding how the test scripts work is a real barrier to debugging
> > > Kata at the moment, so simplifying them is valuable.
> > > 
> > > 3. Removes a barrier to running CI tests locally
> > > 
> > > At the moment debugging CI failures is really painful, because
> > > duplicating the problem in a debuggable environment is extremely
> > > awkward.  One (certainly not the only) reason for that is that the
> > > code repo and tests repo need to be both assembled together in a
> > > suitable environment.  The CI scripts do that, but this often involves
> > > downloading one or the other repo from a global URL.  If you want to
> > > do frequently repeated tests on a local repo while debugging, that has
> > > to be worked around.
> > > 
> > > If tests and code are in the same repo, it removes the need to
> > > download either one from a global URL, making it easier to replicate
> > > the CI test in a local environment and with an ad-hoc tree.  It also
> > > allows some further simplifications of the CI scripts.
> > > 
> > > 
> > > I could probably come up with more reasons, but those 3 seem like a
> > > solid start.
> > 
> > Solid +1 from me ;-)
> > 
> > Now, in the interest of exhaustivity, can you think of reasons not to?
> 
> I really can't, but I'm kind of assuming someone will tell me some.
> 
> > I can think of a couple, but I'm interested in your viewpoint here.
> > 
> 
> -- 
> David Gibson                    | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au <http://gibson.dropbear.id.au/>  | minimalist, thank you.  NOT _the_ _other_
>                                 | _way_ _around_!
> http://www.ozlabs.org/~dgibson <http://www.ozlabs.org/~dgibson>
> _______________________________________________
> kata-dev mailing list
> kata-dev at lists.katacontainers.io <mailto:kata-dev at lists.katacontainers.io>
> http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev <http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.katacontainers.io/pipermail/kata-dev/attachments/20210119/7dad4ffd/attachment.html>


More information about the kata-dev mailing list