[Freeipa-devel] [RFE] Integration testing

Petr Viktorin pviktori at redhat.com
Tue Jun 4 17:19:02 UTC 2013


On 06/04/2013 06:15 PM, Petr Vobornik wrote:
> Hello,
>
> Some Qs:
>
> 1) does the configuration only mean: "We have this topology, run all
> test which fits into it"?

Not quite, it means "We have these machines, run tests whose topology 
can fit on them".

> IDK how should Web UI or XML-RPC tests fit
> into it.

The existing test suite, including the RPC tests, stays as it is. The 
single-machine tests generally expect IPA to be set up on the local machine.

> The difference is that configuration for Web UI tests should
> mean: "This is how FreeIPA and related stuff is installed. Tests all
> available functionality and don't test the missing." IE. if I install
> freeipa server without CA, the UI tests needs to get that info (ie. by
> no_ca flag) and then skip certificate tests or parts of other tests
> which touches this feature (like navigation tests). The same for no-dns
> and has-trust...
>
> Complete UI testing would be something like following:
>    a) set configuration A
>    b) install server with configuration A
>    c) run all UI tests (some may be skipped)
>         i) in Firefox
>       ii) in IE
>          iii) in Chrome
>    d) uninstall server
>    e) set configuration B
>    f) install server with configuration B
>    g) run all UI tests (some may be skipped)
>        i) in Firefox
>       ii) in IE
>          iii) in Chrome
>    h) uninstall server
>    i) repeat for config C
>    ...
>
> Note:: browser change is also done by change of configuration.
>
> Is it possible? Can the configuration change or should there be other
> level of configuration which can change?  Do we have time to do it? It
> may take almost a day (sequentially, with full coverage).

This would be configured in Jenkins as several jobs:

1) Run UI tests with configuration A + Firefox
2) Run UI tests with configuration A + IE
3) Run UI tests with configuration A + Chrome
4) Run UI tests with configuration B + Firefox
5) Run UI tests with configuration B + IE
6) Run UI tests with configuration B + Chrome

If we wanted exhaustive tests it could be done as a "matrix job" ([A, 
B]×[FF, IE, Chrome]), but as you say we don't have resources for that, 
so we'll have to use some sane subset.

(Note: Jenkins can aggregate results from multiple jobs, so we'd get a 
single report from all these)

> Does python nose support some master tests or can it be somehow
> configured in Jenkins so we can automate installation of IPA with
> different configurations (IE by the 'To-be-done command-line tools').

I'm not sure what you mean by master tests.
Jenkins can be configured to run different tests using different 
configurations.
But the way I see it, the different topologies would be in different 
tests, and run different checks. remember that we want a CI, not 
exhaustive testing of all the possible cases.

The command-line tools would be for external shell-based tests; I've 
heard some people might want to write those :)

> 2) There is no configuration options for trusts. IMO we would like to
> test that.

Options for that can be added when the trust tests are written.

> 3) Test runner needs to connect to remote machine as root. Should a
> config option for root password be added or can we safely assume that
> there will always be other authentication method available?

My bad, I forgot to add $IPA_ROOT_SSH_PASSWORD to the wiki page. Fixed.

Other authentication methods can be added if needed.

-- 
Petr³




More information about the Freeipa-devel mailing list