Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1tXs-00EB4p-Mv for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Nov 2023 19:21:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1r1tXq-008A5S-1b for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Nov 2023 19:21:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1tXp-008A5K-N6 for pgsql-hackers@lists.postgresql.org; Sat, 11 Nov 2023 19:21:25 +0000 Received: from mail.thelabyrinth.net ([45.56.70.56]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1tXm-005wNe-6e for pgsql-hackers@postgresql.org; Sat, 11 Nov 2023 19:21:24 +0000 Received: from [10.5.0.2] (unknown [45.14.195.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: dsteele) by mail.thelabyrinth.net (Postfix) with ESMTPSA id 889B45478A for ; Sat, 11 Nov 2023 19:21:19 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------Nwq44QavX5qW4e70j8KsiMD2" Message-ID: <03e4cf19-fb76-4891-accc-edd429a25b21@pgmasters.net> Date: Sat, 11 Nov 2023 15:21:12 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Pg Hackers From: David Steele Subject: Add basic tests for the low-level backup method. List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Nwq44QavX5qW4e70j8KsiMD2 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hackers, As promised in [1], attached are some basic tests for the low-level backup method. There are currently no tests for the low-level backup method. pg_backup_start() and pg_backup_stop() are called but not exercised in any real fashion. There is a lot more that can be done, but this at least supplies some basic tests and provides a place for future improvement. Regards, -David [1] https://www.postgresql.org/message-id/2daf8adc-8db7-4204-a7f2-a7e94e2bfa4b%40pgmasters.net --------------Nwq44QavX5qW4e70j8KsiMD2 Content-Type: text/plain; charset=UTF-8; name="low-level-backup-test-v1.patch" Content-Disposition: attachment; filename="low-level-backup-test-v1.patch" Content-Transfer-Encoding: base64 RnJvbSBiMWExMGFiNGFiOTEyZTZmMTc0MjA2ZmNiOGNlNjc0OTZmOTNkZjgzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBTdGVlbGUgPGRhdmlkQHBnbWFzdGVycy5u ZXQ+CkRhdGU6IFNhdCwgMTEgTm92IDIwMjMgMTk6MTI6NDkgKzAwMDAKU3ViamVjdDogQWRk IGJhc2ljIHRlc3RzIGZvciB0aGUgbG93LWxldmVsIGJhY2t1cCBtZXRob2QuCgpUaGVyZSBh cmUgY3VycmVudGx5IG5vIHRlc3RzIGZvciB0aGUgbG93LWxldmVsIGJhY2t1cCBtZXRob2Qu IHBnX2JhY2t1cF9zdGFydCgpCmFuZCBwZ19iYWNrdXBfc3RvcCgpIGFyZSBjYWxsZWQgYnV0 IG5vdCBleGVyY2lzZWQgaW4gYW55IHJlYWwgZmFzaGlvbi4KClRoZXJlIGlzIGEgbG90IG1v cmUgdGhhdCBjYW4gYmUgZG9uZSwgYnV0IHRoaXMgYXQgbGVhc3QgcHJvdmlkZXMgc29tZSBi YXNpYwp0ZXN0cyBhbmQgcHJvdmlkZXMgYSBwbGFjZSBmb3IgZnV0dXJlIGltcHJvdmVtZW50 LgotLS0KIHNyYy90ZXN0L3JlY292ZXJ5L3QvMDQwX2xvd19sZXZlbF9iYWNrdXAucGwgfCAx MDEgKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlY292ZXJ5L3QvMDQwX2xvd19s ZXZlbF9iYWNrdXAucGwKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA0MF9s b3dfbGV2ZWxfYmFja3VwLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNDBfbG93X2xldmVs X2JhY2t1cC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Yz MGNiNmI1OWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA0MF9s b3dfbGV2ZWxfYmFja3VwLnBsCkBAIC0wLDAgKzEsMTAxIEBACisKKyMgQ29weXJpZ2h0IChj KSAyMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRlc3Qg bG93LWxldmVsIGJhY2t1cCBtZXRob2QgYnkgdXNpbmcgcGdfYmFja3VwX3N0YXJ0KCkgYW5k IHBnX2JhY2t1cF9zdG9wKCkKKyMgdG8gY3JlYXRlIGJhY2t1cHMuCisKK3VzZSBzdHJpY3Q7 Cit1c2Ugd2FybmluZ3M7CisKK3VzZSBGaWxlOjpDb3B5IHF3KGNvcHkpOwordXNlIEZpbGU6 OlBhdGggcXcocmVtb3ZlX3RyZWUpOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7 Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBT dGFydCBwcmltYXJ5IG5vZGUgd2l0aCBhcmNoaXZpbmcKK215ICRub2RlX3ByaW1hcnkgPSBQ b3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3ByaW1hcnknKTsKKyRub2RlX3ByaW1h cnktPmluaXQoaGFzX2FyY2hpdmluZyA9PiAxLCBhbGxvd3Nfc3RyZWFtaW5nID0+IDEpOwor JG5vZGVfcHJpbWFyeS0+c3RhcnQ7CisKKyMgU3RhcnQgYmFja3VwCitteSAkYmFja3VwX25h bWUgPSAnYmFja3VwMSc7CitteSAkcHNxbCA9ICRub2RlX3ByaW1hcnktPmJhY2tncm91bmRf cHNxbCgncG9zdGdyZXMnKTsKKworJHBzcWwtPnF1ZXJ5X3NhZmUoIlNFVCBjbGllbnRfbWlu X21lc3NhZ2VzIFRPIFdBUk5JTkciKTsKKyRwc3FsLT5zZXRfcXVlcnlfdGltZXJfcmVzdGFy dCgpOworJHBzcWwtPnF1ZXJ5X3NhZmUoInNlbGVjdCBwZ19iYWNrdXBfc3RhcnQoJ3Rlc3Qg bGFiZWwnKSIpOworCisjIENvcHkgZmlsZXMKK215ICRiYWNrdXBfZGlyID0gJG5vZGVfcHJp bWFyeS0+YmFja3VwX2RpcigpIC4gJy8nIC4gJGJhY2t1cF9uYW1lOworCitQb3N0Z3JlU1FM OjpUZXN0OjpSZWN1cnNpdmVDb3B5Ojpjb3B5cGF0aCgKKwkkbm9kZV9wcmltYXJ5LT5kYXRh X2RpcigpLCAkYmFja3VwX2Rpcik7CisKKyMgQ2xlYW51cCBmaWxlcy9wYXRocyB0aGF0IHNo b3VsZCBub3QgYmUgaW4gdGhlIGJhY2t1cC4gQWxzbyByZW1vdmUgcGdfY29udHJvbAorIyBi ZWNhdXNlIGl0IG5lZWRzIHRvIGJlIGNvcGllZCBsYXRlciBhbmQgaXQgd2lsbCBiZSBvYnZp b3VzIGlmIHRoZSBjb3B5IGZhaWxzLgordW5saW5rKCIkYmFja3VwX2Rpci9wb3N0bWFzdGVy LnBpZCIpCisJb3IgQkFJTF9PVVQoInVuYWJsZSB0byB1bmxpbmsgJGJhY2t1cF9kaXIvcG9z dG1hc3Rlci5waWQiKTsKK3VubGluaygiJGJhY2t1cF9kaXIvcG9zdG1hc3Rlci5vcHRzIikK KwlvciBCQUlMX09VVCgidW5hYmxlIHRvIHVubGluayAkYmFja3VwX2Rpci9wb3N0bWFzdGVy Lm9wdHMiKTsKK3VubGluaygiJGJhY2t1cF9kaXIvZ2xvYmFsL3BnX2NvbnRyb2wiKQorCW9y IEJBSUxfT1VUKCJ1bmFibGUgdG8gdW5saW5rICRiYWNrdXBfZGlyL2dsb2JhbC9wZ19jb250 cm9sIik7CisKK3JlbW92ZV90cmVlKCIkYmFja3VwX2Rpci9wZ193YWwiLCB7a2VlcF9yb290 ID0+IDF9KQorCW9yIEJBSUxfT1VUKCJ1bmFibGUgdG8gdW5saW5rIGNvbnRlbnRzIG9mICRi YWNrdXBfZGlyL3BnX3dhbCIpOworCisjIENyZWF0ZSBhIHRhYmxlIHRoYXQgd2lsbCBiZSB1 c2VkIHRvIHZlcmlmeSB0aGF0IHJlY292ZXJ5IHN0YXJ0ZWQgYXQgdGhlCisjIGNvcnJlY3Qg bG9jYXRpb24sIHJhdGhlciB0aGFuIHRoZSBsb2NhdGlvbiByZWNvcmRlZCBpbiBwZ19jb250 cm9sCiskcHNxbC0+cXVlcnlfc2FmZSgiY3JlYXRlIHRhYmxlIGNhbmFyeSAoaWQgaW50KSIp OworCisjIEFkdmFuY2UgdGhlIGNoZWNrcG9pbnQgbG9jYXRpb24gaW4gcGdfY29udHJvbCBw YXN0IHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUKKyMgYmFja3VwIHN0YXJ0ZWQuIFN3aXRjaCB0 aGUgV0FMIHRvIG1ha2UgaXQgcmVhbGx5IG9idmlvdXMgdGhhdCB0aGUgbG9jYXRpb24KKyMg aXMgZGlmZmVyZW50IGFuZCB0byBwdXQgdGhlIGNoZWNrcG9pbnQgaW4gYSBuZXcgV0FMIHNl Z21lbnQuCiskcHNxbC0+cXVlcnlfc2FmZSgic2VsZWN0IHBnX3N3aXRjaF93YWwoKSIpOwor JHBzcWwtPnF1ZXJ5X3NhZmUoImNoZWNrcG9pbnQiKTsKKworIyBDb3B5IHBnX2NvbnRyb2wg bGFzdCBzbyBpdCBjb250YWlucyB0aGUgbmV3IGNoZWNrcG9pbnQKK2NvcHkoJG5vZGVfcHJp bWFyeS0+ZGF0YV9kaXIoKSAuICcvZ2xvYmFsL3BnX2NvbnRyb2wnLAorCQkiJGJhY2t1cF9k aXIvZ2xvYmFsL3BnX2NvbnRyb2wiKQorCW9yIEJBSUxfT1VUKCJ1bmFibGUgdG8gY29weSBn bG9iYWwvcGdfY29udHJvbCIpOworCisjIFN0b3AgYmFja3VwIGFuZCBnZXQgYmFja3VwX2xh YmVsCitteSAkYmFja3VwX2xhYmVsID0gJHBzcWwtPnF1ZXJ5X3NhZmUoInNlbGVjdCBsYWJl bGZpbGUgZnJvbSBwZ19iYWNrdXBfc3RvcCgpIik7CisKKyMgUmF0aGVyIHRoYW4gd3JpdGlu ZyBvdXQgYmFja3VwX2xhYmVsLCB0cnkgdG8gcmVjb3ZlciB0aGUgYmFja3VwIHdpdGhvdXQK KyMgYmFja3VwX2xhYmVsIHRvIGRlbW9uc3RyYXRlIHRoYXQgcmVjb3Zlcnkgd2lsbCBub3Qg d29yayBjb3JyZWN0bHkgd2l0aG91dCBpdCwKKyMgaS5lLiB0aGUgY2FuYXJ5IHRhYmxlIHdp bGwgYmUgbWlzc2luZyBhbmQgdGhlIGNsdXN0ZXIgd2lsbCBiZSBjb3JydXB0LiBQcm92aWRl CisjIG9ubHkgdGhlIFdBTCBzZWdtZW50IHRoYXQgcmVjb3Zlcnkgd2lsbCB0aGluayBpdCBu ZWVkcy4KKyMKKyMgVGhlIHBvaW50IG9mIHRoaXMgdGVzdCBpcyB0byBleHBsaWNpdGx5IGRl bW9uc3RyYXRlIHRoYXQgYmFja3VwX2xhYmVsIGlzCisjIGJlaW5nIHVzZWQgaW4gYSBsYXRl ciB0ZXN0IHRvIGdldCB0aGUgY29ycmVjdCByZWNvdmVyeSBpbmZvLgorbXkgJG5vZGVfcmVw bGljYSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncmVwbGljYV9mYWlsJyk7 Ciskbm9kZV9yZXBsaWNhLT5pbml0X2Zyb21fYmFja3VwKCRub2RlX3ByaW1hcnksICRiYWNr dXBfbmFtZSk7CitteSAkY2FuYXJ5X3F1ZXJ5ID0gInNlbGVjdCBjb3VudCgqKSBmcm9tIHBn X2NsYXNzIHdoZXJlIHJlbG5hbWUgPSAnY2FuYXJ5JyI7CisKK2NvcHkoJG5vZGVfcHJpbWFy eS0+YXJjaGl2ZV9kaXIoKSAuICcvMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAzJywKKwkJJG5v ZGVfcmVwbGljYS0+ZGF0YV9kaXIoKSAuICcvcGdfd2FsLzAwMDAwMDAxMDAwMDAwMDAwMDAw MDAwMycpCisJb3IgQkFJTF9PVVQoInVuYWJsZSB0byBjb3B5IDAwMDAwMDAxMDAwMDAwMDAw MDAwMDAwMyIpOworCiskbm9kZV9yZXBsaWNhLT5zdGFydDsKKworb2soJG5vZGVfcmVwbGlj YS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRjYW5hcnlfcXVlcnkpID09IDAsCisJJ2NhbmFy eSBpcyBtaXNzaW5nJyk7CisKKyRub2RlX3JlcGxpY2EtPnRlYXJkb3duX25vZGUoKTsKKyRu b2RlX3JlcGxpY2EtPmNsZWFuX25vZGUoKTsKKworIyBTYXZlIGJhY2t1cF9sYWJlbCBpbnRv IHRoZSBiYWNrdXAgZGlyZWN0b3J5IGFuZCByZWNvdmVyIHVzaW5nIHRoZSBwcmltYXJ5J3MK KyMgYXJjaGl2ZS4gVGhpcyB0aW1lIHJlY292ZXJ5IHdpbGwgc3VjY2VlZCBhbmQgdGhlIGNh bmFyeSB0YWJsZSB3aWxsIGJlCisjIHByZXNlbnQuCithcHBlbmRfdG9fZmlsZSgiJGJhY2t1 cF9kaXIvYmFja3VwX2xhYmVsIiwgJGJhY2t1cF9sYWJlbCk7CisKKyRub2RlX3JlcGxpY2Eg PSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3JlcGxpY2Ffc3VjY2VzcycpOwor JG5vZGVfcmVwbGljYS0+aW5pdF9mcm9tX2JhY2t1cCgkbm9kZV9wcmltYXJ5LCAkYmFja3Vw X25hbWUsCisJaGFzX3Jlc3RvcmluZyA9PiAxKTsKKyRub2RlX3JlcGxpY2EtPnN0YXJ0Owor Citvaygkbm9kZV9yZXBsaWNhLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGNhbmFyeV9xdWVy eSkgPT0gMSwKKwknY2FuYXJ5IGlzIHByZXNlbnQnKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0t CjIuMzQuMQo= --------------Nwq44QavX5qW4e70j8KsiMD2--