From: Gang Yan When running TLS tests in a virtual machine/container environment, they fail: # tls.c:1479:mutliproc_even: Expected fd (-1) >= 0 (0) # mutliproc_even: Test terminated by assertion # FAIL tls.12_aes_gcm.mutliproc_even not ok 59 tls.12_aes_gcm.mutliproc_even # RUN tls.12_aes_gcm.mutliproc_readers ... # tls.c:1479:mutliproc_readers: Expected fd (-1) >= 0 (0) # mutliproc_readers: Test terminated by assertion # FAIL tls.12_aes_gcm.mutliproc_readers not ok 60 tls.12_aes_gcm.mutliproc_readers # RUN tls.12_aes_gcm.mutliproc_writers ... # tls.c:1479:mutliproc_writers: Expected fd (-1) >= 0 (0) # mutliproc_writers: Test terminated by assertion # FAIL tls.12_aes_gcm.mutliproc_writers not ok 61 tls.12_aes_gcm.mutliproc_writers This is because the /tmp directory uses the virtiofs filesystem, which does not support the O_TMPFILE feature. This patch uses mkstemp() to create temporary files, thereby eliminating the dependency on the O_TMPFILE feature. And closes the file descriptor (fd) and deletes the temfile after the test ends. Co-developed-by: Geliang Tang Signed-off-by: Geliang Tang Signed-off-by: Gang Yan --- tools/testing/selftests/net/tls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/net/tls.c index 9e2ccea13d70..f4b8dd99d501 100644 --- a/tools/testing/selftests/net/tls.c +++ b/tools/testing/selftests/net/tls.c @@ -1456,6 +1456,7 @@ test_mutliproc(struct __test_metadata *_metadata, struct _test_data_tls *self, bool sendpg, unsigned int n_readers, unsigned int n_writers) { const unsigned int n_children = n_readers + n_writers; + char tmpfile[] = "/tmp/tls_test_tmpfile_XXXXXX"; const size_t data = 6 * 1000 * 1000; const size_t file_sz = data / 100; size_t read_bias, write_bias; @@ -1469,7 +1470,7 @@ test_mutliproc(struct __test_metadata *_metadata, struct _test_data_tls *self, write_bias = n_readers / n_writers ?: 1; /* prep a file to send */ - fd = open("/tmp/", O_TMPFILE | O_RDWR, 0600); + fd = mkstemp(tmpfile); ASSERT_GE(fd, 0); memset(buf, 0xac, file_sz); @@ -1527,6 +1528,8 @@ test_mutliproc(struct __test_metadata *_metadata, struct _test_data_tls *self, left -= res; } } + close(fd); + unlink(tmpfile); } TEST_F(tls, mutliproc_even) -- 2.51.0