From b08474435fd1ba28cbd301948aa5554a31e06a07 Mon Sep 17 00:00:00 2001 From: Monty Date: Mon, 4 Sep 2023 20:47:38 +0300 Subject: [PATCH] Fix compression tests for s390x The problem is that s390x is not using the default bzip library we use on other platforms, which causes compressed string lengths to be differnt than what mtr tests expects. Fixed by: - Added have_normal_bzip.inc, which checks if compress() returns the expected length. - Adjust the results to match the expected one - main.func_compress.test & archive.archive - Don't print lengths that depends on compression library - mysqlbinlog compress tests & connect.zip - Don't print DATA_LENGTH for SET column_compression_zlib_level=1 - main.column_compression --- mysql-test/include/have_normal_bzip.inc | 9 +++++ mysql-test/main/column_compression.inc | 3 +- mysql-test/main/column_compression.result | 36 +++++++++---------- mysql-test/main/column_compression.test | 1 + mysql-test/main/column_compression_rpl.test | 1 + mysql-test/main/func_compress.test | 1 + .../main/mysqlbinlog_row_compressed.test | 1 + .../main/mysqlbinlog_stmt_compressed.test | 2 +- mysql-test/suite/archive/archive.test | 2 ++ .../compat/oracle/t/column_compression.test | 1 + .../t/row_size_error_log_warnings_3.test | 1 + .../connect/mysql-test/connect/r/zip.result | 22 ++++++------ storage/connect/mysql-test/connect/t/zip.test | 7 ++-- 13 files changed, 52 insertions(+), 35 deletions(-) create mode 100644 mysql-test/include/have_normal_bzip.inc diff --git a/mysql-test/include/have_normal_bzip.inc b/mysql-test/include/have_normal_bzip.inc new file mode 100644 index 00000000000..36c06274398 --- /dev/null +++ b/mysql-test/include/have_normal_bzip.inc @@ -0,0 +1,9 @@ +--source include/have_compress.inc + +# Test that the system is using the default/standard bzip library. +# If not, we have to skip the test as the compression lengths displayed +# in the test will not match the results from used compression library. + +if (`select length(COMPRESS(space(5000))) != 33`) { + skip Test skipped as standard bzip is needed; +} diff --git a/mysql-test/main/column_compression.inc b/mysql-test/main/column_compression.inc index 13952b739ae..27e5fc70837 100644 --- a/mysql-test/main/column_compression.inc +++ b/mysql-test/main/column_compression.inc @@ -70,7 +70,8 @@ TRUNCATE TABLE t1; SET column_compression_zlib_level= 1; INSERT INTO t1 VALUES(REPEAT('ab', 1000)); SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_compressions', 'Column_decompressions'); -SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +# This is is using < as DATA_LENGTH produces different results on s390x-ubuntu-2004 +SELECT DATA_LENGTH < 100 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; TRUNCATE TABLE t1; SET column_compression_zlib_level= 9; diff --git a/mysql-test/main/column_compression.result b/mysql-test/main/column_compression.result index 12d2629e404..da6dfdc51f4 100644 --- a/mysql-test/main/column_compression.result +++ b/mysql-test/main/column_compression.result @@ -133,9 +133,9 @@ SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_c VARIABLE_NAME VARIABLE_VALUE COLUMN_COMPRESSIONS 3 COLUMN_DECOMPRESSIONS 12 -SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; -DATA_LENGTH -40 +SELECT DATA_LENGTH < 100 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DATA_LENGTH < 100 +1 TRUNCATE TABLE t1; SET column_compression_zlib_level= 9; INSERT INTO t1 VALUES(REPEAT('ab', 1000)); @@ -348,9 +348,9 @@ SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_c VARIABLE_NAME VARIABLE_VALUE COLUMN_COMPRESSIONS 3 COLUMN_DECOMPRESSIONS 12 -SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; -DATA_LENGTH -40 +SELECT DATA_LENGTH < 100 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DATA_LENGTH < 100 +1 TRUNCATE TABLE t1; SET column_compression_zlib_level= 9; INSERT INTO t1 VALUES(REPEAT('ab', 1000)); @@ -563,9 +563,9 @@ SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_c VARIABLE_NAME VARIABLE_VALUE COLUMN_COMPRESSIONS 3 COLUMN_DECOMPRESSIONS 12 -SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; -DATA_LENGTH -40 +SELECT DATA_LENGTH < 100 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DATA_LENGTH < 100 +1 TRUNCATE TABLE t1; SET column_compression_zlib_level= 9; INSERT INTO t1 VALUES(REPEAT('ab', 1000)); @@ -778,9 +778,9 @@ SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_c VARIABLE_NAME VARIABLE_VALUE COLUMN_COMPRESSIONS 3 COLUMN_DECOMPRESSIONS 12 -SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; -DATA_LENGTH -40 +SELECT DATA_LENGTH < 100 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DATA_LENGTH < 100 +1 TRUNCATE TABLE t1; SET column_compression_zlib_level= 9; INSERT INTO t1 VALUES(REPEAT('ab', 1000)); @@ -993,9 +993,9 @@ SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_c VARIABLE_NAME VARIABLE_VALUE COLUMN_COMPRESSIONS 3 COLUMN_DECOMPRESSIONS 12 -SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; -DATA_LENGTH -60 +SELECT DATA_LENGTH < 100 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DATA_LENGTH < 100 +1 TRUNCATE TABLE t1; SET column_compression_zlib_level= 9; INSERT INTO t1 VALUES(REPEAT('ab', 1000)); @@ -1209,9 +1209,9 @@ SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_c VARIABLE_NAME VARIABLE_VALUE COLUMN_COMPRESSIONS 3 COLUMN_DECOMPRESSIONS 12 -SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; -DATA_LENGTH -36 +SELECT DATA_LENGTH < 100 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DATA_LENGTH < 100 +1 TRUNCATE TABLE t1; SET column_compression_zlib_level= 9; INSERT INTO t1 VALUES(REPEAT('ab', 1000)); diff --git a/mysql-test/main/column_compression.test b/mysql-test/main/column_compression.test index 0a0796532b4..c628e8f9cca 100644 --- a/mysql-test/main/column_compression.test +++ b/mysql-test/main/column_compression.test @@ -1,5 +1,6 @@ --source include/have_innodb.inc --source include/have_csv.inc +--source include/have_normal_bzip.inc let $MYSQLD_DATADIR= `select @@datadir`; diff --git a/mysql-test/main/column_compression_rpl.test b/mysql-test/main/column_compression_rpl.test index 86c73a77dbd..df8e889016b 100644 --- a/mysql-test/main/column_compression_rpl.test +++ b/mysql-test/main/column_compression_rpl.test @@ -1,5 +1,6 @@ --source include/have_innodb.inc --source include/master-slave.inc +--source include/have_normal_bzip.inc --let $engine_type= myisam --let $engine_type2= innodb diff --git a/mysql-test/main/func_compress.test b/mysql-test/main/func_compress.test index f41a5898154..221dddd59f5 100644 --- a/mysql-test/main/func_compress.test +++ b/mysql-test/main/func_compress.test @@ -1,4 +1,5 @@ -- source include/have_compress.inc +-- source include/have_normal_bzip.inc # # Test for compress and uncompress functions: # diff --git a/mysql-test/main/mysqlbinlog_row_compressed.test b/mysql-test/main/mysqlbinlog_row_compressed.test index 6b62a42c449..f2806861830 100644 --- a/mysql-test/main/mysqlbinlog_row_compressed.test +++ b/mysql-test/main/mysqlbinlog_row_compressed.test @@ -4,6 +4,7 @@ --source include/have_log_bin.inc --source include/have_binlog_format_row.inc +--source include/have_normal_bzip.inc # # diff --git a/mysql-test/main/mysqlbinlog_stmt_compressed.test b/mysql-test/main/mysqlbinlog_stmt_compressed.test index 613a820d3ea..400f21f5ab9 100644 --- a/mysql-test/main/mysqlbinlog_stmt_compressed.test +++ b/mysql-test/main/mysqlbinlog_stmt_compressed.test @@ -4,7 +4,7 @@ --source include/have_log_bin.inc --source include/have_binlog_format_statement.inc - +--source include/have_normal_bzip.inc # # # mysqlbinlog: compressed query event diff --git a/mysql-test/suite/archive/archive.test b/mysql-test/suite/archive/archive.test index 2d184110a2d..38bee206ef2 100644 --- a/mysql-test/suite/archive/archive.test +++ b/mysql-test/suite/archive/archive.test @@ -1612,6 +1612,8 @@ CREATE TABLE t1(a INT, b BLOB) ENGINE=archive; SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test'; INSERT INTO t1 VALUES(1, 'sampleblob1'),(2, 'sampleblob2'); +# Compression length depends on zip library +--replace_result 583 584 291 292 SELECT DATA_LENGTH, AVG_ROW_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test'; DROP TABLE t1; diff --git a/mysql-test/suite/compat/oracle/t/column_compression.test b/mysql-test/suite/compat/oracle/t/column_compression.test index 6fcdd119890..01d4977ba96 100644 --- a/mysql-test/suite/compat/oracle/t/column_compression.test +++ b/mysql-test/suite/compat/oracle/t/column_compression.test @@ -1,5 +1,6 @@ --source include/have_innodb.inc --source include/have_csv.inc +--source include/have_normal_bzip.inc SET sql_mode=ORACLE; diff --git a/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test b/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test index 39694c05e0f..dab9bcfa864 100644 --- a/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test +++ b/mysql-test/suite/innodb/t/row_size_error_log_warnings_3.test @@ -1,6 +1,7 @@ --source include/have_innodb.inc --source include/have_sequence.inc --source include/innodb_page_size_small.inc +--source include/have_normal_bzip.inc call mtr.add_suppression("InnoDB: Cannot add field .* in table .* because after adding it, the row size is .* which is greater than maximum allowed size (.*) for a record on index leaf page."); diff --git a/storage/connect/mysql-test/connect/r/zip.result b/storage/connect/mysql-test/connect/r/zip.result index c696252ca43..3505add9add 100644 --- a/storage/connect/mysql-test/connect/r/zip.result +++ b/storage/connect/mysql-test/connect/r/zip.result @@ -70,10 +70,10 @@ cmpsize BIGINT NOT NULL FLAG=1, uncsize BIGINT NOT NULL FLAG=2, method INT NOT NULL FLAG=3) ENGINE=CONNECT TABLE_TYPE=ZIP FILE_NAME='newdos.zip'; -SELECT * FROM t4; -fn cmpsize uncsize method -new1.dos 67 79 8 -new2.dos 77 112 8 +SELECT fn, uncsize, method FROM t4; +fn uncsize method +new1.dos 79 8 +new2.dos 112 8 DROP TABLE t1,t2,t3,t4; # # Testing zipped CSV tables @@ -161,10 +161,10 @@ cmpsize BIGINT NOT NULL FLAG=1, uncsize BIGINT NOT NULL FLAG=2, method INT NOT NULL FLAG=3) ENGINE=CONNECT TABLE_TYPE=ZIP FILE_NAME='newcsv.zip'; -SELECT * FROM t4; -fn cmpsize uncsize method -new1.csv 79 83 8 -new2.csv 94 125 8 +SELECT fn,uncsize,method FROM t4; +fn uncsize method +new1.csv 83 8 +new2.csv 125 8 DROP TABLE t1,t2,t3,t4; # # Testing zipped JSON tables @@ -234,7 +234,7 @@ cmpsize BIGINT NOT NULL FLAG=1, uncsize BIGINT NOT NULL FLAG=2, method INT NOT NULL FLAG=3) ENGINE=CONNECT TABLE_TYPE=ZIP FILE_NAME='bios.zip'; -SELECT * FROM t4; -fn cmpsize uncsize method -bios.json 1096 6848 8 +SELECT fn,uncsize,method FROM t4; +fn uncsize method +bios.json 6848 8 DROP TABLE t1,t2,t3,t4; diff --git a/storage/connect/mysql-test/connect/t/zip.test b/storage/connect/mysql-test/connect/t/zip.test index 1f0a4eedee9..abef98498a0 100644 --- a/storage/connect/mysql-test/connect/t/zip.test +++ b/storage/connect/mysql-test/connect/t/zip.test @@ -35,7 +35,7 @@ cmpsize BIGINT NOT NULL FLAG=1, uncsize BIGINT NOT NULL FLAG=2, method INT NOT NULL FLAG=3) ENGINE=CONNECT TABLE_TYPE=ZIP FILE_NAME='newdos.zip'; -SELECT * FROM t4; +SELECT fn, uncsize, method FROM t4; DROP TABLE t1,t2,t3,t4; --echo # @@ -75,7 +75,7 @@ cmpsize BIGINT NOT NULL FLAG=1, uncsize BIGINT NOT NULL FLAG=2, method INT NOT NULL FLAG=3) ENGINE=CONNECT TABLE_TYPE=ZIP FILE_NAME='newcsv.zip'; -SELECT * FROM t4; +SELECT fn,uncsize,method FROM t4; DROP TABLE t1,t2,t3,t4; --echo # @@ -123,7 +123,7 @@ cmpsize BIGINT NOT NULL FLAG=1, uncsize BIGINT NOT NULL FLAG=2, method INT NOT NULL FLAG=3) ENGINE=CONNECT TABLE_TYPE=ZIP FILE_NAME='bios.zip'; -SELECT * FROM t4; +SELECT fn,uncsize,method FROM t4; DROP TABLE t1,t2,t3,t4; # @@ -133,4 +133,3 @@ DROP TABLE t1,t2,t3,t4; --remove_file $MYSQLD_DATADIR/test/newcsv.zip --remove_file $MYSQLD_DATADIR/test/bios.zip --remove_file $MYSQLD_DATADIR/test/bios.json -