python / cpython

The Python programming language
https://www.python.org
Other
62.15k stars 29.86k forks source link

`make test` fails on Linux (Ubuntu20.04) ext4 with mounted ntfs #121712

Open IljaManakov opened 1 month ago

IljaManakov commented 1 month ago

I have a dual-boot setup, where my Ubuntu 20.04 is on a ext4 FS and I have a data partition that is ntfs (for compat with Windows). When I check out and build cpython on the data partition a bunch of tests fail with an OSError. It seems to be related to the fact that the test suite creates the filenames as bytes assuming "utf-8" but ntfs uses "utf-16".

I have attached the log of the test run, which shows the failing tests.

P.S.: I also have encrypted the data partition with Veracrypt but I don't expect this to be relevant for this issue (but one never knows) test_log.txt

cc @encukou

encukou commented 1 month ago

The tests currently assume a nix filesystem can handle arbitrary bytes*, not just UTF-8. Anything except / and \0 is valid in a path name component. We also assume the FS can store Unix permission bits.

A PR that detects files and skips/adjusts the relevant tests would be welcome. I recommend first adding a helper and using it to skip/adjust just one or two tests, so there's not too much to change if the reviewer requests comments.