This README covers documentation on how to develop with and test against
a local CIDB instance. Whenever you add or modify a cidb feature you should run
cidb_integration_test.py. Specifically, there are two large sets of data that
can be used for adding tests. Data for these are stored in individual json files
that are stored in .test_data/. Each series has a readme that roughly describes
what is in the data.

However, when adding a new test, this may not be sufficient. The test launches a
local mysqld instance that runs out of a temporary directory. To prevent this
directory from disappearing at the end of the test, run the test with --no-wipe.
$ lib/cidb_integration_test --debug --no-wipe
The test logs the path to the temporary working directory at the end.

You can launch the mysqld server again to play with the database in its final
state. You'll have to fish out the temp directory that it created -- it will
look something like /tmp/chromite.test_no_cleanup3WqzmO/chromite.testYypd_c/

Set your local tmpdir variable to the path that you found, and run
(inside the chroot):

$ /usr/sbin/mysqld --no-defaults --datadir ${tmpdir}/mysqld_dir --socket \
    ${tmpdir}/mysqld_dir/mysqld.socket --port 8440 --pid-file \
    ${tmpdir}/mysqld_dir/mysqld.pid --tmpdir ${tmpdir}/mysqld_dir/tmp &

You can connect to this instance using mysql client.

$ mysql -u root -S ${tmpdir}/mysqld_dir/mysqld.socket

At this point you can run normal SQL. To double check, run `show tables;`
You can then use the data here to create your own integration test to test
something you added to CIDB.

When you're done, remember to shutdown the mysqld instance, and delete the
temporary directory.

$ mysqladmin -u root -S ${tmpdir}/mysqld_dir/mysqld.socket shutdown
$ rm -rf ${tmpdir}

Please see ./schema.dump.readme for more information on how to read the schema.
