[wildfly-dev] Elytron integration tests in WildFly testsuite

Stuart Douglas stuart.w.douglas at gmail.com
Sat Dec 3 21:35:58 EST 2016


On 2 Dec 2016 11:00 PM, "Josef Cacek" <jcacek at redhat.com> wrote:
>
> We prefer duplication of all tests in the testsuite to keep test coverage.
>
> To be sure we don't have regressions with introducing Elytron and at the
same time we are able to cover current features with Elytron, we must run
all tests with both security subsystems.
> Even if a test is not security related on the first glance, the tested
component may use a security feature internally. By switching to the new
security subsystem the feature may stop work.
>

I think this is massive overkill, and would severely reduce the quality and
usability of the testsuite (more tests != a better test suite, they need to
be useful test otherwise they just add technical debt for no gain).

I just did a quick search through the code base, and as far as I can tell
there is maybe ~50 test cases that test security related functionality
(i.e. use the SecurityDomainSetup functionality), out of ~950 test cases,
so this would amount to adding around 900 useless test cases.

The argument that Elytron may cause regressions in these cases does really
work either, because these tests are not linked to a security domain
Elytron should never actually be activated, and even if this was a concern
the correct approach would be to write some smoke tests to ensure that non
Elytron deployments still work correctly.

The expediency argument also does not really work, as the tests that
actually use security will need to be modified anyway so they use Elytron
instead of the old security subsystem, so if the whole test suite was
copied the only tests that worked 'out of the box' would be the tests that
don't actually test anything security related.

IMHO a better way to test this would be to move all security related tests
into their own module, and then create subclasses of these tests in Elytron
and legacy modules. Elytron should be added to the default config, so that
even non security related tests run with Elytron present (although we
should still have at least one test module that runs without it, just as a
smoke test to make sure that legacy configs without it will still work).

Stuart


> Let's keep the current (legacy security based) tests alive until the
legacy security subsystem is fully removed.
> Then we'll simply remove the *-legacy-security testsuite modules.
>
> -- Josef
>
> ----- Original Message -----
> > From: "Tomaž Cerar" <tomaz.cerar at gmail.com>
> > To: "Darran Lofthouse" <darran.lofthouse at jboss.com>
> > Cc: wildfly-dev at lists.jboss.org
> > Sent: Friday, December 2, 2016 12:37:22 PM
> > Subject: Re: [wildfly-dev] Elytron integration tests in WildFly
testsuite
> >
> > That is probably fine, but! it should be done differently.
> >
> > instead of duplicating whole testsuite (and adding extra hour to
execution
> > and extra headaches with intermittent problems and duplication of
> > maintenance)
> > I would suggest that all security related tests get extracted to new
> > "security" testsuite module and than only that part is duplicated.
> >
> > This way we will have all security related stuff in one place.
> >
> >
> >
> > On Fri, Dec 2, 2016 at 12:09 PM, Darran Lofthouse <
> > darran.lofthouse at jboss.com > wrote:
> >
> >
> > Probably should add - any duplication should only be for security tests
> > - not everything else in there!
> >
> > On 02/12/16 11:08, Darran Lofthouse wrote:
> > > On 02/12/16 11:03, Tomaž Cerar wrote:
> > >>
> > >> On Fri, Dec 2, 2016 at 9:11 AM, Josef Cacek < jcacek at redhat.com
> > >> <mailto: jcacek at redhat.com >> wrote:
> > >>
> > >> The modules would just live side by side - basic would use Elytron
> > >> configuration, basic-legacy-security would use configuration similar
> > >> to (or same as) the current server configuration.
> > >>
> > >>
> > >>
> > >> What would this actually mean?
> > >> we will have two copies basic tests suites one running with elytron
> > >> another with legacy security subsystem?
> > >>
> > >> Do I read that right? Please say I am not.
> > >
> > > That is correct - we have two security implementations they both need
> > > testing.
> > >
> > > One needs testing for backwards compatibility and regressions, the
other
> > > for equivalent behaviour and then new features and bugs.
> > >
> > > Needing to test both was discussed previously so this is more about
how
> > > to separate both and also give the Elytron testing a good foundation
to
> > > start from.
> > >
> > >>
> > >>
> > >> _______________________________________________
> > >> wildfly-dev mailing list
> > >> wildfly-dev at lists.jboss.org
> > >> https://lists.jboss.org/mailman/listinfo/wildfly-dev
> > >>
> > >
> >
> > _______________________________________________
> > wildfly-dev mailing list
> > wildfly-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/wildfly-dev
> >
> >
> > _______________________________________________
> > wildfly-dev mailing list
> > wildfly-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20161204/d778d30f/attachment-0001.html 


More information about the wildfly-dev mailing list