3319
|
|
GSettings integration backend, created a testsuite for it.
This commit refactors a bunch of the backend code, adds appropriate testsuites and refactors the integration code to make it more flexible.
* Integration is now an actual object, backends can communicate through instantiation of something that implements CCSIntegration, usually by also injection CCSIntegratedSettingFactory and CCSIntegratedSettingStorage. (For example, the GNOME Integration backend is configuration system agonistic, it uses CCSIntegratedSettingFactory to defer the construction of CCSIntegratedSetting objects which handle get/set operations until runtime). * Backends are now first-class objects too, CCSDynamicBackend implements CCSBackend and wraps it so that client code can safely call the functions without having to worry about null pointers * The GSettings backend is now also a first-class object, with most of its logic moved into its own class * Introduced a conformance test for backends, found in compizconfig/tests/compizconfig_backend_conformance_test.h . This is a templated test that can be instantied for any CCSBackend provided it also has a CCSBackendTestingEnvironment to go with it (this is used to read/write raw keys bypassing the backend). This code is itself tested against a mock backend and is used to test the GSettings backend itself by loading it into memory and running through its functionality * Increased test coverage in general for the GSettings backend through our existing testsuite, we're now at about 93% coverage for the backend itself (There is no test coverage for the integration code, but that is coming). * Fixed some runtime errors with the python tests.
(LP #1035261). Fixes: . Approved by Sam Spilsbury.
|
Sam Spilsbury |
12 years ago
|
 |
|