Adjust pgcrypto's expected test results for --disable-strong-random.
authorTom Lane <[email protected]>
Sun, 2 Aug 2020 15:00:12 +0000 (11:00 -0400)
committerTom Lane <[email protected]>
Sun, 2 Aug 2020 15:00:12 +0000 (11:00 -0400)
These files were missed when commit a3ab7a707 added a new test query.
Understandable considering these files no longer exist in HEAD.
Per buildfarm member pademelon.

contrib/pgcrypto/expected/pgp-compression_1.out

index 8a046d84964e81cb6e474ff394a28e85d3ac8099..8ae44d35c74547365e8fadba90513b8e60d60b2a 100644 (file)
@@ -40,3 +40,31 @@ select pgp_sym_decrypt(
 ERROR:  generating random data is not supported by this build
 DETAIL:  This functionality requires a source of strong random numbers
 HINT:  You need to rebuild PostgreSQL using --enable-strong-random
+-- check corner case involving an input string of 16kB, as per bug #16476.
+SELECT setseed(0);
+ setseed 
+---------
+(1 row)
+
+WITH random_string AS
+(
+  -- This generates a random string of 16366 bytes.  This is chosen
+  -- as random so that it does not get compressed, and the decompression
+  -- would work on a string with the same length as the origin, making the
+  -- test behavior more predictible.  lpad() ensures that the generated
+  -- hexadecimal value is completed by extra zero characters if random()
+  -- has generated a value strictly lower than 16.
+  SELECT string_agg(decode(lpad(to_hex((random()*256)::int), 2, '0'), 'hex'), '') as bytes
+    FROM generate_series(0, 16365)
+)
+SELECT bytes =
+    pgp_sym_decrypt_bytea(
+      pgp_sym_encrypt_bytea(bytes, 'key',
+                            'compress-algo=1,compress-level=1'),
+                            'key', 'expect-compress-algo=1')
+    AS is_same
+  FROM random_string;
+ERROR:  generating random data is not supported by this build
+DETAIL:  This functionality requires a source of strong random numbers
+HINT:  You need to rebuild PostgreSQL using --enable-strong-random