Nyall Dawson e9cd82902b Fix incorrect symbols appearing for categorized and graduated renderers
This was triggered by 18614e11, which revealed a deeper bug in the handling
of symbols by these renderers. For both renderers a const method returns
a non-const pointer to a symbol and is used to modify this symbol in place.

Because both renderers store their classes in a QList (implicitly shared)
this means that all shared class lists were being updated when a clone of
a renderer has its symbols altered in this way. Prior to 18614e these
class QLists were being detached and copied in random ways.

Work around this by forcing a deep copy of the class lists when a renderer
is cloned.
2015-12-18 16:02:49 +11:00
..
2015-10-03 21:57:17 +02:00

QGIS unit tests

Build tests

Make sure that you have enabled building of tests in CMake. cmake -DENABLE_TESTS=ON ..

Run tests

You can run all tests using make check.

Individual tests can be run using ctest.

For example if the output of make check ends like this:

   The following tests FAILED:
         77 - PyQgsLocalServer (Failed)

You could re-run the failing test with:

   ctest -V -R PyQgsLocalServer

The parameter -V enables verbose mode and -R takes a regular expression as parameter and will only run matching tests.

Advanced configuration

Postgres

Make sure that you have enabled building of postgres test in CMake. cmake -DENABLE_PGTEST=ON ..

To test the postgres provider you will need to have a database available to which the postgres provider can connect. The server will need to have postgis support enabled. By default the test uses the following connection options: dbname='qgis_test' host=localhost port=5432 user='postgres' password='postgres'

If this does not match your setup you can set the environment variable QGIS_PGTEST_DB to the desired connection string.

Please note that the database needs to be initialized using the sql-script tests/testdata/provider/testdata.sql It takes care of activating postgis for the test database and creates some tables containing test data.