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.