From 66a52460c1aea17fe83064ae9110a36b260a3cb3 Mon Sep 17 00:00:00 2001 From: Mark Dilger Date: Mon, 26 Apr 2021 08:52:38 -0700 Subject: [PATCH v1 2/2] Modifying toast corruption test expected output Making the test expected output match the output generated by Robert's patch. --- src/bin/pg_amcheck/t/004_verify_heapam.pl | 50 ++++++++++++++--------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/src/bin/pg_amcheck/t/004_verify_heapam.pl b/src/bin/pg_amcheck/t/004_verify_heapam.pl index 4d66eb64fe..a1772f6b0a 100644 --- a/src/bin/pg_amcheck/t/004_verify_heapam.pl +++ b/src/bin/pg_amcheck/t/004_verify_heapam.pl @@ -304,7 +304,7 @@ close($file) $node->start; # Ok, Xids and page layout look ok. We can run corruption tests. -plan tests => 38; +plan tests => 49; # Check that pg_amcheck runs against the uncorrupted table without error. $node->command_ok(['pg_amcheck', '-p', $port, 'postgres'], @@ -526,12 +526,13 @@ for (my $tupidx = 0; $tupidx < ROWCOUNT; $tupidx++) push (@corruptions, "UPDATE $toastname SET chunk_seq = chunk_seq + 1000 WHERE chunk_id = $value_id_to_corrupt"); $header = header(0, $offnum, 2); push @expected, - qr/${header}toast value 16459 chunk 0 has sequence number 1000, but expected sequence number 0/, - qr/${header}toast value 16459 chunk 1 has sequence number 1001, but expected sequence number 1/, - qr/${header}toast value 16459 chunk 2 has sequence number 1002, but expected sequence number 2/, - qr/${header}toast value 16459 chunk 3 has sequence number 1003, but expected sequence number 3/, - qr/${header}toast value 16459 chunk 4 has sequence number 1004, but expected sequence number 4/, - qr/${header}toast value 16459 chunk 5 has sequence number 1005, but expected sequence number 5/; + qr/${header}toast value 16459 index scan returned chunk 1000 when expecting chunk 0/, + qr/${header}toast value 16459 chunk 1000 follows last expected chunk 5/, + qr/${header}toast value 16459 chunk 1001 follows last expected chunk 5/, + qr/${header}toast value 16459 chunk 1002 follows last expected chunk 5/, + qr/${header}toast value 16459 chunk 1003 follows last expected chunk 5/, + qr/${header}toast value 16459 chunk 1004 follows last expected chunk 5/, + qr/${header}toast value 16459 chunk 1005 follows last expected chunk 5/; } elsif ($offnum == 17) { @@ -539,12 +540,16 @@ for (my $tupidx = 0; $tupidx < ROWCOUNT; $tupidx++) push (@corruptions, "UPDATE $toastname SET chunk_seq = chunk_seq * 1000 WHERE chunk_id = $value_id_to_corrupt"); $header = header(0, $offnum, 2); push @expected, - qr/${header}toast value $value_id_to_corrupt chunk 1 has sequence number 1000, but expected sequence number 1/, - qr/${header}toast value $value_id_to_corrupt chunk 2 has sequence number 2000, but expected sequence number 2/, - qr/${header}toast value $value_id_to_corrupt chunk 3 has sequence number 3000, but expected sequence number 3/, - qr/${header}toast value $value_id_to_corrupt chunk 4 has sequence number 4000, but expected sequence number 4/, - qr/${header}toast value $value_id_to_corrupt chunk 5 has sequence number 5000, but expected sequence number 5/; - + qr/${header}toast value 16460 index scan returned chunk 1000 when expecting chunk 1/, + qr/${header}toast value 16460 chunk 1000 follows last expected chunk 5/, + qr/${header}toast value 16460 index scan returned chunk 2000 when expecting chunk 1001/, + qr/${header}toast value 16460 chunk 2000 follows last expected chunk 5/, + qr/${header}toast value 16460 index scan returned chunk 3000 when expecting chunk 2001/, + qr/${header}toast value 16460 chunk 3000 follows last expected chunk 5/, + qr/${header}toast value 16460 index scan returned chunk 4000 when expecting chunk 3001/, + qr/${header}toast value 16460 chunk 4000 follows last expected chunk 5/, + qr/${header}toast value 16460 index scan returned chunk 5000 when expecting chunk 4001/, + qr/${header}toast value 16460 chunk 5000 follows last expected chunk 5/; } elsif ($offnum == 18) { @@ -567,13 +572,18 @@ INSERT INTO $toastname (chunk_id, chunk_seq, chunk_data) )); $header = header(0, $offnum, 2); push @expected, - qr/${header}toast value $value_id_to_corrupt chunk 6 has sequence number 1000, but expected sequence number 6/, - qr/${header}toast value $value_id_to_corrupt chunk 7 has sequence number 1010, but expected sequence number 7/, - qr/${header}toast value $value_id_to_corrupt chunk 8 has sequence number 1020, but expected sequence number 8/, - qr/${header}toast value $value_id_to_corrupt chunk 9 has sequence number 1030, but expected sequence number 9/, - qr/${header}toast value $value_id_to_corrupt chunk 10 has sequence number 1040, but expected sequence number 10/, - qr/${header}toast value $value_id_to_corrupt chunk 11 has sequence number 1050, but expected sequence number 11/, - qr/${header}toast value $value_id_to_corrupt was expected to end at chunk 6, but ended at chunk 12/; + qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1000 when expecting chunk 6/, + qr/${header}toast value $value_id_to_corrupt chunk 1000 follows last expected chunk 5/, + qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1010 when expecting chunk 1001/, + qr/${header}toast value $value_id_to_corrupt chunk 1010 follows last expected chunk 5/, + qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1020 when expecting chunk 1011/, + qr/${header}toast value $value_id_to_corrupt chunk 1020 follows last expected chunk 5/, + qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1030 when expecting chunk 1021/, + qr/${header}toast value $value_id_to_corrupt chunk 1030 follows last expected chunk 5/, + qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1040 when expecting chunk 1031/, + qr/${header}toast value $value_id_to_corrupt chunk 1040 follows last expected chunk 5/, + qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1050 when expecting chunk 1041/, + qr/${header}toast value $value_id_to_corrupt chunk 1050 follows last expected chunk 5/; } write_tuple($file, $offset, $tup); } -- 2.21.1 (Apple Git-122.3)