The tests in this directory use the ClusterTest framework available
at http://github.com/clustertest/clustertest-framework

Their are two sets of tests that are included here.

disorder tests
------------------------

The disorder ("DIStributed ORDER") tests is a test suite designed to
simulate an retail store style of workload.  It includes transactions
for getting inventory, taking orders and counting inventory.

Some transactions run against the replication master while others
(read-only) run against slave databases.

To run the disorder tests.

1. Edit conf/database.properties

   * Sample found in conf/database.properties.sample, so that you can
     have your own copy separate from what is provided
   * Update the pgsql.path files to point to your $PGBIN directory
   * Update any required connection information to point to the databases
     you wish to test. 
   * Update slonik.path and slon.path to point to the slonik and slon
     binaries you wish to test.

   * Uses multiple users that must be set up:

      - "test" users
         - value of database.db[1-6].user
         - used to run the "DISORDER" OLTP activities

      - Superuser
         - Slony user is assumed to be a superuser

         - Superuser capabilities are not required in general, but
           having replication run with superuser capabilities
           simplifies configuration here.

	 - We may later revise the superuser requirements

2.  Edit conf/java.conf

    * Sample found in conf/java.conf.sample

    * This contains the shell command to set CLUSTERTESTHOME,
      indicating the main directory of the clustertest-framework
      installation.

3.  Run test

Make sure PWD is set to the directory 'clustertest', as the tests make
reference to relative directory locations.  For instance, disorder
tests are assumed to be in the subdirectory 'disorder/tests'.

The shell script run_all_disorder_tests.sh invokes the cluster test
framework against the test suite found in disorder/tests

results/$TIMESTAMP/testResult.test.txt will contain the results of each test.


Regression Tests
------------------
The regressions are a common test bed framework intended to better
support performing a comprehensive set of tests. The code lives in the source
tree under the tests directory.

Prior to version 2.1 these tests lived under the tests directory and
were written in shell.  The tests have been ported to javascript so
they run under the clustertest framework.

The regression tests are different than the disorder tests in that
they tend to take less time to run and don't use a common schema.
Each test creates its own tables (but there are a similarties
between many of the tests).

To run the regression tests


1. Edit conf/slonyregress.properties  you can use the sample in
   conf/slonyregress.sample.properties as a starting point

   * Edit the db[1-4].host, dbname,port,user and password as required.
   * Update db[1-4].pgsql.path to point to your postgresql bin directory
    ($PGBIN)
   * Edit slonik.path and slon.path to point to your slonik and slon
     binaries
   * Run the tests (run_all_regression_tests.sh) from this directory.

    
