Skip to content
Commit d2ead3aa authored by Sam Spilsbury's avatar Sam Spilsbury Committed by Tarmac
Browse files

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.
parents eb4497ae a73883e7
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment