bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

test failures on OpenBSD 5.0


From: Bruno Haible
Subject: test failures on OpenBSD 5.0
Date: Mon, 30 Jan 2012 21:32:10 +0100
User-agent: KMail/4.7.4 (Linux/3.1.0-1.2-desktop; KDE/4.7.4; x86_64; ; )

On OpenBSD 5.0/SPARC64 I'm seeing these test failures:

-----------------------------------------------------

  test-fma2.h:93: assertion failed
  Abort trap (core dumped) 
  FAIL: test-fmal2

-----------------------------------------------------

  test-mkdirat.c:93: assertion failed
  Abort trap (core dumped) 
  FAIL: test-mkdirat

Here mkdirat (dfd, "dir3", 0700) fails with EBADF, not ENOTDIR as expected.

-----------------------------------------------------

  test-mkfifo.h:36: assertion failed
  Abort trap (core dumped) 
  FAIL: test-mkfifoat

It fails in this call:
#0  do_mknodat (name=0x20b6a0 "test-mkfifoat.tfifo", mode=384) at 
test-mkfifoat.c:65
#1  0x0000000000101810 in test_mkfifo (func=0x102510 <do_mknodat>, print=false) 
at test-mkfifo.h:28
#2  0x0000000000102600 in main () at test-mkfifoat.c:80

The mknodat() call fails to create "test-mkfifoat.tfifo" in the current
directory, with EPERM. Test case:
================================================================
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
int main()
{
  int dfd;
  int ret;

  dfd = open (".", O_RDONLY);
  if (dfd < 0) return 1;
  ret = mknodat (dfd, "test-mkfifoat.tfifo", 0600 | S_IFIFO, 0);
  printf ("%d %d\n", ret, errno);
  return 0;
}
================================================================
Actual output:
-1 1
Expected output:
0 0

-----------------------------------------------------

  test-futimens.h:101: assertion failed
  Abort trap (core dumped) 
  FAIL: test-futimens

  test-utimens.h:125: assertion failed
  Abort trap (core dumped) 
  FAIL: test-utimens

  test-utimens.h:71: assertion failed
  Abort trap (core dumped) 
  FAIL: test-utimensat

-----------------------------------------------------

  test-wcwidth.c:56: assertion failed
  Abort trap (core dumped) 
  FAIL: test-wcwidth

The attached patch fixes it.

-----------------------------------------------------

  Unconnected socket test... passed
  Connected sockets test... failed (expecting POLLHUP after shutdown)
  General socket test with fork... failed (expecting POLLHUP after shutdown)
  Pipe test... passed
  FAIL: test-poll

Well-known.


2012-01-29  Bruno Haible  <address@hidden>

        wcwidth: Work around bug in UTF-8 locale on OpenBSD 5.0.
        * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test also wcwidth of U+05B0.
        * doc/posix-functions/wcwidth.texi: Mention the OpenBSD 5.0 bug.

--- doc/posix-functions/wcwidth.texi.orig       Mon Jan 30 21:19:09 2012
+++ doc/posix-functions/wcwidth.texi    Mon Jan 30 21:17:07 2012
@@ -17,7 +17,7 @@
 @item
 This function handles combining characters in UTF-8 locales incorrectly on some
 platforms:
-MacOS X 10.3.
+MacOS X 10.3, OpenBSD 5.0.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- m4/wcwidth.m4.orig  Mon Jan 30 21:19:09 2012
+++ m4/wcwidth.m4       Mon Jan 30 21:15:57 2012
@@ -1,4 +1,4 @@
-# wcwidth.m4 serial 21
+# wcwidth.m4 serial 22
 dnl Copyright (C) 2006-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -37,6 +37,7 @@
   if test $ac_cv_func_wcwidth = yes; then
     HAVE_WCWIDTH=1
     dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
+    dnl On OpenBSD 5.0, wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1.
     dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
     dnl This leads to bugs in 'ls' (coreutils).
     AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
@@ -69,8 +70,10 @@
     {
       if (wcwidth (0x0301) > 0)
         result |= 1;
-      if (wcwidth (0x200B) > 0)
+      if (wcwidth (0x05B0) > 0)
         result |= 2;
+      if (wcwidth (0x200B) > 0)
+        result |= 4;
     }
   return result;
 }]])],




reply via email to

[Prev in Thread] Current Thread [Next in Thread]