WL#9711: Remove *.require files
Affects: Server-8.0
—
Status: Complete
In MTR we have *.require files to perform checks. But these require files are not necessary to perform a check and adds an extra overhead. Instead of using require files, the check for the condition can be implemented in corresponding inc files. Remove *.require files and replace the check in corresponding inc files. This will avoid creation of temporary file and file comparison between temporary file and the require file. Used Documentation : ==================== https://dev.mysql.com/doc/mysqltest/2.0/en/mysqltest-commands.html
Functional requirements: ======================== F-1: All the require file should be removed and the check should be implemented in the corresponding inc files. Non-functional requirements: ============================ None
Avoid creation of temporary file and file comparison by removing all the *.require files and perform the necessary check in the inc files. I-1: No new files I-2: No new commands I-3: No new tools I-4: No impact on existing functionality
Most of our MTR tests have one or more checks like --source have_debug_sync.inc Quite a few of these checks are currently implemented with two files, e.g: 1) have_debug_sync.inc ====================== --require r/have_debug_sync.require disable_query_log; let $value= query_get_value(SHOW VARIABLES LIKE 'debug_sync', Value, 1); eval SELECT ('$value' LIKE 'ON %') AS debug_sync; enable_query_log; 2) have_debug_sync.require ========================== debug_sync 1 The way this works is that '--require' causes the result of the next query to be written to a temporary file and then there is a file comparison of the temporary file and, in this case, have_debug_sync.require. This sounds much slower than it could be. And also there are issues on Windows where a test can fail simply because of DOS/UNIX line ending differences. This WL removes all these require files and implements the check in the corresponding inc file. e.g: Modified have_debug_sync.inc: ============================= let $have_debug_sync= query_get_value(SHOW VARIABLES LIKE 'debug_sync', Value, 1); if ($have_debug_sync == 'No such row') { skip Test requires 'have_debug_sync'; } Here the check is done without a temporary files and without risk of DOS/UNIX line endings mattering.
Copyright (c) 2000, 2024, Oracle Corporation and/or its affiliates. All rights reserved.