<div>Environment: Ubuntu 16.04 x86_64</div><div>Version: dcc9b9cdb2cd6de7c5b300b8d1f5dfb3f0b31ab2</div><div><br></div><div>readv.test is fail on Ubuntu 16.04 x86_64</div><div><br></div><div>test-suite.log/readv.log:</div><div><br></div><div>251 FAIL: readv</div><div>252 ===========</div><div>253 </div><div>254 ../strace: invalid descriptor '65534'</div><div>255 readv.test: failed test: ../strace -a16 -eread=65534 -ewrite=65535 -e trace=readv,writev ./readv failed with code 1</div><div>256 FAIL readv.test (exit status: 1)</div><div><br></div><div>readv.test.tmp and readv.test.tmp.exp is empty.</div><div><br></div><div>In my computer fds[0] = 65534, fds[1] = 65534, biger then 0x7fff, so in function qual_desc will return -1.</div><div><br></div><div>/* syscall.c: 734 */</div><div>qual_desc(const char *s, const unsigned int bitflag, const int not)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>int desc = string_to_uint_upto(s, 0x7fff);</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>if (desc < 0)</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>return -1;</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>qualify_one(desc, bitflag, not, -1, NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>return 0;</div><div>}</div><div><br></div><div>My patch:</div><div><br></div><div><div>From c58e2972c732eb545c7c3bff76222f1806474a03 Mon Sep 17 00:00:00 2001</div><div>From: JingPiao Chen <chenjingpiao@foxmail.com></div><div>Date: Sun, 4 Dec 2016 19:56:19 +0800</div><div>Subject: [PATCH] tests: fix maximum fd in pipe_maxfd</div><div><br></div><div>* tests/pipe_maxfd.c: Change INT_MAX to 0x7fff.</div><div>---</div><div> tests/pipe_maxfd.c | 4 ++--</div><div> 1 file changed, 2 insertions(+), 2 deletions(-)</div><div><br></div><div>diff --git a/tests/pipe_maxfd.c b/tests/pipe_maxfd.c</div><div>index a1343f9..c7ba7d8 100644</div><div>--- a/tests/pipe_maxfd.c</div><div>+++ b/tests/pipe_maxfd.c</div><div>@@ -58,8 +58,8 @@ pipe_maxfd(int pipefd[2])</div><div> <span class="Apple-tab-span" style="white-space:pre">      </span>if (pipe(pipefd))</div><div> <span class="Apple-tab-span" style="white-space:pre">              </span>perror_msg_and_fail("pipe");</div><div> </div><div>-<span class="Apple-tab-span" style="white-space:pre"> </span>int max_fd = (rlim.rlim_cur > 0 && rlim.rlim_cur < INT_MAX)</div><div>-<span class="Apple-tab-span" style="white-space:pre">           </span>     ? rlim.rlim_cur - 1 : INT_MAX;</div><div>+<span class="Apple-tab-span" style="white-space:pre">       </span>int max_fd = (rlim.rlim_cur > 0 && rlim.rlim_cur < 0x7fff)</div><div>+<span class="Apple-tab-span" style="white-space:pre">            </span>     ? rlim.rlim_cur - 1 : 0x7fff;</div><div> </div><div> <span class="Apple-tab-span" style="white-space:pre">      </span>move_fd(&pipefd[1], &max_fd);</div><div> <span class="Apple-tab-span" style="white-space:pre">  </span>--max_fd;</div><div>-- </div><div>2.7.4</div></div><div><br></div>