PostgreSQL's pg_basebackup TAP test creates a junction from the short system temporary directory to the build-tree temporary directory on Windows. It then creates $superlongname through the build-tree side.
On my build, that target path was 253 characters. Perl's mkdir failed at Windows' default 248-character directory path limit, but the result was unchecked. The test then failed later with a misleading CREATE TABLESPACE "directory does not exist" error. The attached patch creates the directory through the short side of the junction and checks the result of mkdir. I tested current master 38afc3dcb25 with Meson 1.11.2 and MSVC 19.44 on Windows 11 ARM64: - Native ARM64: the unpatched isolated test failed; the patched test passed all 149 subtests. - x64 cross-build with needs_exe_wrapper=false: the unpatched test failed; the patched test passed all 149 subtests. The 2023 discussion below addressed a related pg_basebackup long-file test. I did not find an existing proposal for this unchecked long-directory creation. https://www.postgresql.org/message-id/666ac55b-3400-fb2c-2cea-0281bf36a53c%40dunslane.net Best, Harrison
0001-Fix-pg_basebackup-long-path-test-on-Windows.patch
Description: Binary data
