mirror of https://github.com/citusdata/citus.git
* Add creating a citus cluster script Creating a citus cluster is automated. Before running this script: - Citus should be installed and its control file should be added to postgres. (make install) - Postgres should be installed. * Initialize upgrade test table and fill * Finalize the layout of upgrade tests Postgres upgrade function is added. The newly added UDFs(citus_prepare_pg_upgrade, citus_finish_pg_upgrade) are used to perform upgrade. * Refactor upgrade test and add config file * Add schedules for upgrade testing * Use pg_regress for upgrade tests pg_regress is used for creating a simple distributed table in upgrade tests. After upgrading another schedule is used to verify that the distributed table exists. Router and realtime queries are used for verifying. * Run upgrade tests as a postgres user in a temp dir postgres user is used for psql to be consistent at running tests. A temp dir is created and the temp dir's permissions are changed so that postgres user can access it. All psql commands are now run with postgres user. "Select * from t" query is changed as "Select * from t order by a" so that the result is always in the same order. * Add docopt and arguments for the upgrade script Docopt dependency is added to parse flags in script. Some refactoring in variable names is done. * Add readme for upgrade tests * Refactor upgrade tests Use relative data path instead of absolute assuming that this script will always be run from 'src/test/regress' Remove 'citus-path' flag Use specific version for docopt instead of * Use named args in string formatting * Resolve a security problem Instead of using string formatting in subprocess.call, arguments list is used. Otherwise users could do shell injection. Shell = True is removed from subprocess call as it is not recommended to use this. * Add how the test works to readme * Refactor some variables to be consistent * Update upgrade script based on the reviews It was possible that postgres server would stay running even when the script crashes, atexit library is used to ensure that we always do a teardown where we stop the databases. Some formatting is done in the code for better readability. Config class is used instead of a dictonary. A target for upgrade test is added to makefile. Unused flags/functions/variables are removed. * Format commands and remove unnecessary flag from readme |
||
---|---|---|
.. | ||
bin | ||
data | ||
expected | ||
input | ||
mitmscripts | ||
output | ||
specs | ||
sql | ||
upgrade | ||
.gitignore | ||
Makefile | ||
Pipfile | ||
Pipfile.lock | ||
after_upgrade_schedule | ||
base_schedule | ||
before_upgrade_schedule | ||
failure_base_schedule | ||
failure_schedule | ||
isolation_schedule | ||
log_test_times | ||
multi_follower_schedule | ||
multi_mx_schedule | ||
multi_schedule | ||
multi_task_tracker_extra_schedule | ||
pg_regress_multi.pl | ||
worker_schedule |