Red Hat Bugzilla – Bug 707968
[apache] Improve apache plugin test coverage
Last modified: 2011-09-30 13:50:53 EDT
Given the complexity of the plugin and the number of bugs that have been discovered in it so far, it is very important to improve the unit tests for it.
These are the areas that need improved:
* remove the current ApachePluginTest and write more detailed tests that actually do test something and not just output some heuristics to the standard output.
* test individual components discovery - ideally we need to test the actual discovery components running inside an actual plugin container, not just test that the supporting utility methods return expected data. This will require to somehow mock the native process so that the plugin code can examine it as if a true apache instance was examined.
* test configuration loading/updates - this depends on resolving the bug 707781. The augeas "translation" is already tested, but again the test should ideally work with the live components in a plugin container rather than just testing only the mapping part of the whole algorithm. This requires a mocked apache process as well as some testing configuration files.
* test the whole functionality with different configurations to check that the plugin handles all the oddities with unresolvable hostnames (when the apache is behind a loadbalancer), etc. The test configurations should include:
** normal webserver configuration
** apache behind a loadbalancer
** different combinations of resolvable and unresolvable hostnames and specified or implied ports in Listen, VirtualHost and ServerName directives
** definitions nested inside conditional If* directives (the parsing of configuration files with nested directives is already being tested but again, it'd be better to test this within a running components rather than in isolation).
* upgrade of server and vhost resources from previous versions. Because the resource key format changed and also was not completely deterministic in previous versions, we need to test upgrade from:
** RHQ 1.3.x
** RHQ 3.0.0
** RHQ 3.0.1
** RHQ 3.0.2 (this is unreleased code but patches have been sent to customers)
We need to have inventories for all the different configurations specified above as if they were discovered by the above mentioned versions and test upgrading from them. We also need to test upgrade from inventories suffering from bug 690435.
The upgrade tests as outlined above have been pushed to master branch.
removing superfluous trackers