qt5base-lts/tests/auto/corelib/io/qfile
Thiago Macieira 01872d06d9 tst_QFile: replicate the unixPipe test using FIFOs
Pipes are unnamed FIFOs, so they're basically the same.

The difference here is that open() blocks on opening a FIFO until both
ends of the FIFO are opened. This helps us in synchronizing the two
threads and thus ensuring that that the read() system call deep inside
QFile does, indeed, block.

We see this with strace -T on Linux:

[pid 662956] openat(AT_FDCWD, "/run/user/1000/tst_qfile_fifo.2575572361", O_RDONLY|O_CLOEXEC <unfinished ...>
... aux starts up ...
[pid 662957] prctl(PR_SET_NAME, "QThread") = 0 <0.000004>
[pid 662957] openat(AT_FDCWD, "/run/user/1000/tst_qfile_fifo.2575572361", O_WRONLY|O_CLOEXEC <unfinished ...>
[pid 662956] <... openat resumed>)      = 4 <0.000133>
[pid 662957] <... openat resumed>)      = 6 <0.000011>
[pid 662957] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=500000000},  <unfinished ...>
[pid 662956] read(4,  <unfinished ...>
[pid 662957] <... clock_nanosleep resumed>NULL) = 0 <0.500183>
[pid 662957] write(6, "\2", 1)          = 1 <0.000033>
[pid 662956] <... read resumed>"\2", 1) = 1 <0.500311>

Pick-to: 6.6
Change-Id: I63b988479db546dabffcfffd1766d7a48819b149
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-06-09 20:30:07 -07:00
..
resources Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
stdinprocess tests: Remove remains of qmake conversion from CMakeLists.txt files 2023-02-17 21:56:49 +01:00
.gitattributes Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
.gitignore tst_qfile: Fix execution for WinRT 2018-06-28 15:43:58 +00:00
CMakeLists.txt Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
copy-fallback.qrc Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
dosfile.txt Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
forCopying.txt Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
forRenaming.txt Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
noendofline.txt Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
rename-fallback.qrc Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
testfile.txt Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
testlog.txt Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00
tst_qfile.cpp tst_QFile: replicate the unixPipe test using FIFOs 2023-06-09 20:30:07 -07:00
two.dots.file Moving relevant tests to corelib/io 2011-08-31 10:08:38 +02:00