mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-24 23:34:25 +08:00
In order to implement repair tests, changes are made to the `constraint_check` table to simulate a broken dependency, which requires the constraints on that table to be dropped. This means that the repair runs without constraints, and a bug in the update test could potentially not get caught. This commit fixes this by factoring out the repair tests from the update tests and run them as a separate pass. This means that the contraints are not dropped in the update tests and bugs there will be caught. In addition, some bash functions are factored out into a separate file to avoid duplication.
Testing using multiple versions
This tests creates multiple instances with different upgrade scenarios:
CONTAINER_UPDATED:
- install previous version
- run test setup script
- update container
- ALTER EXTENSION UPDATE
CONTAINER_CLEAN_RERUN:
- install master
- run test setup script
CONTAINER_CLEAN_RESTORE:
- dump CONTAINER_UPDATED with pg_dump
- restore in new container
After those steps the test post script is run on all instances and the output diffed, throwing an error if there is a difference between any of the instances.