github.com/greenplum-db/gpbackup@v0.0.0-20240517212602-89daab1885b3/ci/regression/README.md (about) 1 # Regression Testing 2 One of the core tests in gpdb is the `make installcheck-world` invocation in the main `gpdb` repo. This invocation runs a series of tests, including regression tests, that ensure the functionality of gpdb. 3 These tests leave behind many artifacts in a handful of databases, the most important of which is `regression`. This `regression` database represents a large cross-section of database objects that gpdbd 4 supports. Testing support of this collection of objects is a standard method used by the gpdb utilities. For `gpbackup` we want to ensure that we can correcly back up and restore a database containing 5 all of these objects. The `regression` pipeline automates that process. 6 7 ## Data Source 8 We use a dump of the `regression` database generated by the main gpdb pipelines, stored in a GCS bucket. This dump is generated by `pg_dumpall`, and loaded into our test database using `psql` 9 We use standalone psql commands to clean out a small number of objects with known bugs, linking to the relevant gpdb github issue. 10 11 ## Tests 12 We use a standard gpbackup invocation to save off the database, and an immediate gprestore invocation of that backup to ensure that both utilities correctly complete their functions. 13 We use a [simple golang utility](https://github.com/AJR-VMware/diffdb) to check the table counts, and the rowcounts of each table, across the backed up and restored databases to ensure that they match.