Title: CYGWIN doesn't support text mode in POSIX functions like MinGW. · Issue #149946 · python/cpython · GitHub
Open Graph Title: CYGWIN doesn't support text mode in POSIX functions like MinGW. · Issue #149946 · python/cpython
X Title: CYGWIN doesn't support text mode in POSIX functions like MinGW. · Issue #149946 · python/cpython
Description: Bug report Bug description: This is one of the errors printed by make test on CYGWIN: FAIL: test_textmode (test.test_tempfile.TestMkstempInner.test_textmode) ---------------------------------------------------------------------- Tracebac...
Open Graph Description: Bug report Bug description: This is one of the errors printed by make test on CYGWIN: FAIL: test_textmode (test.test_tempfile.TestMkstempInner.test_textmode) ---------------------------------------...
X Description: Bug report Bug description: This is one of the errors printed by make test on CYGWIN: FAIL: test_textmode (test.test_tempfile.TestMkstempInner.test_textmode) ---------------------------------------...
Opengraph URL: https://github.com/python/cpython/issues/149946
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"CYGWIN doesn't support text mode in POSIX functions like MinGW.","articleBody":"# Bug report\n\n### Bug description:\n\nThis is one of the errors printed by `make test` on CYGWIN:\n```\nFAIL: test_textmode (test.test_tempfile.TestMkstempInner.test_textmode)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/home/carlo/packages/python/cpython/Lib/test/test_tempfile.py\", line 522, in test_textmode\n self.assertEqual(os.read(f.fd, 20), b\"blat\")\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError: b'blat\\x1aextra\\n' != b'blat'\n```\nFor explaining this issue, some information must be listed about the CTRL-Z (0x1A):\n\nOn CYGWIN:\n- Opening with `open()` in binary mode, it handles it as a clean flow of data without translations.\n- Opening with `open()` in text mode, it translates all 0xA to 0xD 0xA and the `read()` function ignores the CTRL-Z character as EOF.\n- Opening with `fopen()` in text mode, it also accepts the CTRL-Z as the EOF condition and this stops receiving data from `fread()`.\n\nOn native WIN32:\n- both `open()` and `fopen()` work in the same way if they open the file in text mode and CTRL-Z is treated as End-Of-File at both high and low levels, so `read()` and `fread()` give you the same results.\n\nSo, that's why this test is failing here.\n\nIn short, this kind of test cannot be executed on CYGWIN because `read()` never blocks on CTRL-Z by design.\nI would like to suggest to avoid it, if it happens.\nThe patch itself is simple, I think that it is just need to write this before test_textmode:\n```\n@unittest.skipUnless(sys.platform != \"cygwin\" and has_textmode, \"text mode not available\")\n```\n\n\n### CPython versions tested on:\n\nCPython main branch\n\n### Operating systems tested on:\n\nWindows\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-149947\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/carlo-bramini","@type":"Person","name":"carlo-bramini"},"datePublished":"2026-05-17T10:34:01.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/149946/cpython/issues/149946"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:075f3ee4-8faa-82de-d0e7-480e02f42e02 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C256:51AC4:28D17E:37C18B:6A513FDA |
| html-safe-nonce | 63b4edeb3b46e3ff7acbbcb1d60ab9639f1ca29a7c913e24603857a4a2815bb2 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMjU2OjUxQUM0OjI4RDE3RTozN0MxOEI6NkE1MTNGREEiLCJ2aXNpdG9yX2lkIjoiNjMzNzU5NzA4NDU1Mjc0MDgyNiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 62dbf7e65060c363a5df8299b7e36124b68b79cfbdafc6f3ed2f1a0af890a714 |
| hovercard-subject-tag | issue:4463183862 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/149946/issue_layout |
| twitter:image | https://opengraph.githubassets.com/43bfc91181ebfad2549ef6846b3c09cc17699caf4f59ca5db190696258ebdea1/python/cpython/issues/149946 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/43bfc91181ebfad2549ef6846b3c09cc17699caf4f59ca5db190696258ebdea1/python/cpython/issues/149946 |
| og:image:alt | Bug report Bug description: This is one of the errors printed by make test on CYGWIN: FAIL: test_textmode (test.test_tempfile.TestMkstempInner.test_textmode) ---------------------------------------... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | carlo-bramini |
| hostname | github.com |
| expected-hostname | github.com |
| None | e840f405b2718e8f2d55aafa9ff27dbce17e29d0c253011d05ea0fea3c78baff |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | e876f00c5723f6080b9d294e4958fd4d506e6faf |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width