Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package umockdev for openSUSE:Factory 
checked in at 2026-03-28 20:13:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/umockdev (Old)
 and      /work/SRC/openSUSE:Factory/.umockdev.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "umockdev"

Sat Mar 28 20:13:19 2026 rev:26 rq:1342920 version:0.19.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/umockdev/umockdev.changes        2025-11-18 
15:28:01.961555990 +0100
+++ /work/SRC/openSUSE:Factory/.umockdev.new.8177/umockdev.changes      
2026-03-28 20:14:34.092436902 +0100
@@ -1,0 +2,10 @@
+Mon Mar 23 02:45:52 UTC 2026 - Atri Bhattacharya <[email protected]>
+
+- Update to version 0.19.6:
+  * preload: Reinitialize mutexes after forking
+- Changes from version 0.19.5:
+  * ioctl: Forward standard termios calls to real pty (fixes tests
+    with Rust coreutils)
+  * ioctl: Implement POSIX-compliant errno handling
+
+-------------------------------------------------------------------

Old:
----
  umockdev-0.19.4.tar.xz

New:
----
  umockdev-0.19.6.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ umockdev.spec ++++++
--- /var/tmp/diff_new_pack.rlh8fV/_old  2026-03-28 20:14:34.684461335 +0100
+++ /var/tmp/diff_new_pack.rlh8fV/_new  2026-03-28 20:14:34.688461500 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package umockdev
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %define shlib libumockdev0
 %define shlibpre libumockdev-preload0
 Name:           umockdev
-Version:        0.19.4
+Version:        0.19.6
 Release:        0
 Summary:        Mock hardware devices for creating unit tests and bug reporting
 License:        LGPL-2.1-or-later

++++++ umockdev-0.19.4.tar.xz -> umockdev-0.19.6.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/.version new/umockdev-0.19.6/.version
--- old/umockdev-0.19.4/.version        2025-10-12 09:58:04.775742500 +0200
+++ new/umockdev-0.19.6/.version        2026-03-22 05:03:08.329472000 +0100
@@ -1 +1 @@
-0.19.4
+0.19.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/meson.build 
new/umockdev-0.19.6/meson.build
--- old/umockdev-0.19.4/meson.build     2025-10-12 09:56:41.000000000 +0200
+++ new/umockdev-0.19.6/meson.build     2026-03-22 04:59:39.000000000 +0100
@@ -162,6 +162,8 @@
    'src/uevent_sender.c',
    'src/ioctl_tree.vapi',
    'src/ioctl_tree.c',
+   'src/ioctl_termios.vapi',
+   'src/ioctl_termios.c',
    'src/utils.c',
    'src/debug.c'],
   vala_vapi: 'umockdev-1.0.vapi',
@@ -224,6 +226,8 @@
    'src/umockdev-spi.vala',
    'src/ioctl_tree.vapi',
    'src/ioctl_tree.c',
+   'src/ioctl_termios.vapi',
+   'src/ioctl_termios.c',
    'src/utils.c',
    'src/debug.c'],
   dependencies: [glib, gobject, gio_unix, vapi_posix, vapi_config, vapi_ioctl, 
vapi_selinux, libpcap, selinux],
@@ -282,7 +286,9 @@
   depends: [preload_lib])
 
   test('umockdev-vala', executable('test-umockdev-vala',
-      'tests/test-umockdev-vala.vala',
+      ['tests/test-umockdev-vala.vala',
+       'src/ioctl_termios.vapi',
+       'src/ioctl_termios.c'],
       include_directories: include_directories('src'),
       dependencies: [glib, gobject, gio, gudev, vapi_posix, vapi_assertions, 
vapi_ioctl, vapi_glibc, vapi_selinux, selinux],
       link_with: [umockdev_lib, umockdev_utils_lib],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/src/ioctl_termios.c 
new/umockdev-0.19.6/src/ioctl_termios.c
--- old/umockdev-0.19.4/src/ioctl_termios.c     1970-01-01 01:00:00.000000000 
+0100
+++ new/umockdev-0.19.6/src/ioctl_termios.c     2026-03-22 04:59:39.000000000 
+0100
@@ -0,0 +1,43 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * ioctl_termios.c - Helper functions for termios ioctl handling
+ *
+ * We can't use the Linux.Termios.TCGETS2 constants here: It is defined in 
sys/ioctl.h using _IOR(struct termios2),
+ * and Vala tries to apply sizeof() to the incomplete termios2 struct. Also, 
the TC*2 variants are not available
+ * on ppc64le, and Vala does not have conditional compilation.
+ */
+
+#include "ioctl_termios.h"
+#include <sys/ioctl.h>
+#include <asm/termbits.h>
+#include <asm/ioctls.h>
+
+bool is_termios_ioctl(unsigned long request)
+{
+    switch (request) {
+        case TCGETS:
+        case TCSETS:
+        case TCSETSW:
+        case TCSETSF:
+        case TCGETA:
+        case TCSETA:
+        case TCSETAW:
+        case TCSETAF:
+        case TIOCGWINSZ:
+        case TIOCSWINSZ:
+#ifdef TCGETS2
+        case TCGETS2:
+        case TCSETS2:
+        case TCSETSW2:
+        case TCSETSF2:
+#endif
+            return true;
+        default:
+            return false;
+    }
+}
+
+unsigned long get_tcgets_ioctl(void)
+{
+    return TCGETS;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/src/ioctl_termios.h 
new/umockdev-0.19.6/src/ioctl_termios.h
--- old/umockdev-0.19.4/src/ioctl_termios.h     1970-01-01 01:00:00.000000000 
+0100
+++ new/umockdev-0.19.6/src/ioctl_termios.h     2026-03-22 04:59:39.000000000 
+0100
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * ioctl_termios.h - Helper functions for termios ioctl handling
+ */
+
+#pragma once
+
+#include <stdbool.h>
+
+bool is_termios_ioctl(unsigned long request);
+unsigned long get_tcgets_ioctl(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/src/ioctl_termios.vapi 
new/umockdev-0.19.6/src/ioctl_termios.vapi
--- old/umockdev-0.19.4/src/ioctl_termios.vapi  1970-01-01 01:00:00.000000000 
+0100
+++ new/umockdev-0.19.6/src/ioctl_termios.vapi  2026-03-22 04:59:39.000000000 
+0100
@@ -0,0 +1,8 @@
+[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = 
"ioctl_termios.h")]
+namespace IoctlTermios {
+    [CCode (cname = "is_termios_ioctl")]
+    public bool is_termios_ioctl(ulong request);
+
+    [CCode (cname = "get_tcgets_ioctl")]
+    public ulong get_tcgets_ioctl();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/src/libumockdev-preload.c 
new/umockdev-0.19.6/src/libumockdev-preload.c
--- old/umockdev-0.19.4/src/libumockdev-preload.c       2025-10-12 
09:56:41.000000000 +0200
+++ new/umockdev-0.19.6/src/libumockdev-preload.c       2026-03-22 
04:59:39.000000000 +0100
@@ -172,6 +172,25 @@
 /* multi-thread locking for ioctls */
 pthread_mutex_t ioctl_lock = PTHREAD_MUTEX_INITIALIZER;
 
+static void
+after_fork_in_child(void)
+{
+    ioctl_lock = trap_path_lock = (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER;
+}
+
+__attribute__((constructor))
+static void
+on_load(void)
+{
+    int ret;
+
+    ret = pthread_atfork(NULL, NULL, after_fork_in_child);
+    if (ret != 0) {
+        errx(EXIT_FAILURE, "umockdev: pthread_atfork failed: %s",
+             strerror(ret));
+    }
+}
+
 #define TRAP_PATH_LOCK \
     do { \
         sigset_t sig_set; \
@@ -760,7 +779,9 @@
 
        switch (req.cmd) {
            case IOCTL_RES_DONE:
-               errno = req.arg2;
+               /* Only set errno on failure (POSIX behavior) */
+               if (req.arg1 == (unsigned long)-1)
+                   errno = req.arg2;
 
                pthread_mutex_unlock (&fdinfo->sock_lock);
                pthread_sigmask(SIG_SETMASK, &sig_restore, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/src/umockdev-ioctl.vala 
new/umockdev-0.19.6/src/umockdev-ioctl.vala
--- old/umockdev-0.19.4/src/umockdev-ioctl.vala 2025-10-12 09:56:41.000000000 
+0200
+++ new/umockdev-0.19.6/src/umockdev-ioctl.vala 2026-03-22 04:59:39.000000000 
+0100
@@ -1,5 +1,4 @@
 
-
 namespace UMockdev {
 
 /**
@@ -30,7 +29,6 @@
     return continue_emission;
 }
 
-
 /**
  * UMockdevIoctlData:
  *
@@ -568,6 +566,9 @@
         }
 
         if (!handled && args[0] == 1) {
+            /* No specific handler for this ioctl. First try stateless ioctls
+             * (like USB ioctls), then fall back to executing on the real fd
+             * for terminal ioctls on PTY-backed devices. */
             IoctlTree.Tree tree = null;
             IoctlData? data = null;
             ulong size = IoctlTree.data_size_by_id(_request);
@@ -585,16 +586,30 @@
                 return;
             }
 
+            /* Set default errno for tree.execute if it doesn't set one itself 
*/
             if ((char) type == 'E') {
                 Posix.errno = Posix.ENOENT;
             } else {
                 Posix.errno = Posix.ENOTTY;
             }
+
+            /* Try handling with ioctl tree (stateless ioctls like USB) */
             tree.execute(null, _request, *(void**) _arg.data, out ret);
-            my_errno = Posix.errno;
-            Posix.errno = 0;
+            my_errno = Posix.errno;  /* Capture errno (may be set by 
tree.execute) */
 
-            if (ret != -1) {
+            if (ret == -1) {
+                /* tree.execute failed - check if we should forward to real 
PTY for termios */
+                if (my_errno == Posix.ENOTTY && 
IoctlTermios.is_termios_ioctl(_request)) {
+                    try {
+                        ret = execute(out my_errno);
+                        /* execute() returns errno from real ioctl on failure,
+                         * or preserved errno on success (POSIX behavior) */
+                    } catch (IOError e) {
+                        /* execute() threw exception - keep ENOTTY */
+                    }
+                }
+            } else {
+                /* tree.execute succeeded - errno not used (preload doesn't 
set it on success) */
                 my_errno = 0;
             }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.4/tests/test-umockdev-vala.vala 
new/umockdev-0.19.6/tests/test-umockdev-vala.vala
--- old/umockdev-0.19.4/tests/test-umockdev-vala.vala   2025-10-12 
09:56:41.000000000 +0200
+++ new/umockdev-0.19.6/tests/test-umockdev-vala.vala   2026-03-22 
04:59:39.000000000 +0100
@@ -261,7 +261,6 @@
 
   int i = 1;
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CLAIMINTERFACE, ref i), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_GETDRIVER, ref i), 
CompareOperator.EQ, -1);
   assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.ENODATA);
   Posix.errno = 0;
@@ -279,12 +278,44 @@
   Posix.close (fd);
   Posix.errno = 0;
 
+  // Test that termios ioctls work on an emulated TTY device (backed by a real 
PTY)
+  tb_add_from_string (tb, """P: /devices/serial/ttyTest
+N: ttyTest
+E: DEVNAME=/dev/ttyTest
+E: SUBSYSTEM=tty
+""");
+
+  fd = Posix.open ("/dev/ttyTest", Posix.O_RDWR | Posix.O_NONBLOCK, 0);
+  assert_cmpint (fd, CompareOperator.GE, 0);
+  Posix.errno = 0;
+  // Use TCGETS - a simple termios ioctl; struct termios is ~60 bytes
+  uint8 tio_data[128] = {0};
+  assert_cmpint (Posix.ioctl (fd, (int) IoctlTermios.get_tcgets_ioctl(), 
tio_data), CompareOperator.EQ, 0);
+
+  // Verify errno is preserved on successful termios ioctl (POSIX behavior)
+  Posix.errno = Posix.EINVAL;  // Set a non-zero errno
+  assert_cmpint (Posix.ioctl (fd, (int) IoctlTermios.get_tcgets_ioctl(), 
tio_data), CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.EINVAL);  // Should be 
preserved
+
+  // TCGETS with NULL argument fails with expected error
+  Posix.errno = 0;
+  assert_cmpint (Posix.ioctl (fd, (int) IoctlTermios.get_tcgets_ioctl(), 
null), CompareOperator.EQ, -1);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.EFAULT);
+
+  // Non-termios ioctl on TTY is not forwarded to underlying PTY
+  Posix.errno = 0;
+  int dummy_val = 0;
+  assert_cmpint (Posix.ioctl (fd, Ioctl.FIONREAD, out dummy_val), 
CompareOperator.EQ, -1);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.ENOTTY);
+
+  Posix.close (fd);
+  Posix.errno = 0;
+
   // unknown ioctls do work on non-emulated devices
   fd = Posix.open ("/dev/stdout", Posix.O_WRONLY, 0);
   assert_cmpint (fd, CompareOperator.GE, 0);
   assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpint (Posix.ioctl (fd, Ioctl.FIONREAD, out argp), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   Posix.close (fd);
 }
 
@@ -339,12 +370,10 @@
 
   // static ioctl
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CLAIMINTERFACE, ref i), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   // loaded ioctl
   var ci = Ioctl.usbdevfs_connectinfo();
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 11);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 0);
 
@@ -352,13 +381,11 @@
   var urb_buffer = new uint8[4];
   Ioctl.usbdevfs_urb urb = {1, 129, 0, 0, urb_buffer, 4, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (urb.status, CompareOperator.EQ, 0);
   assert_cmpint (urb_buffer[0], CompareOperator.EQ, 0);
 
   Ioctl.usbdevfs_urb* urb_reap = null;
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert (urb_reap == &urb);
   assert_cmpint (urb.status, CompareOperator.EQ, -1);
   assert_cmpuint (urb.buffer[0], CompareOperator.EQ, 0x99);
@@ -374,7 +401,6 @@
   ci.devnum = 99;
   ci.slow = 99;
   assert_cmpint (Posix.ioctl (fd2, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 11);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 0);
 
@@ -382,7 +408,6 @@
   ci.devnum = 99;
   ci.slow = 99;
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 42);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 12);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 1);
 
@@ -391,7 +416,6 @@
   ci.devnum = 99;
   ci.slow = 99;
   assert_cmpint (Posix.ioctl (fd2, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 42);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 12);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 1);
   Posix.close (fd2);
@@ -438,7 +462,6 @@
   // loaded ioctl
   var ci = Ioctl.usbdevfs_connectinfo();
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 11);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 0);
 }
@@ -484,7 +507,6 @@
   // loaded ioctl
   var ci = Ioctl.usbdevfs_connectinfo();
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 11);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 0);
 }
@@ -536,12 +558,10 @@
 
   var ci = Ioctl.usbdevfs_connectinfo();
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 11);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 0);
 
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_CONNECTINFO, ref ci), 
CompareOperator.EQ, 42);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (ci.devnum, CompareOperator.EQ, 12);
   assert_cmpuint (ci.slow, CompareOperator.EQ, 1);
 
@@ -580,7 +600,6 @@
   var urb_buffer_ep1 = new uint8[8];
   Ioctl.usbdevfs_urb urb_ep1 = {1, 0x81, 0, 0, urb_buffer_ep1, 8, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_ep1), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (urb_ep1.status, CompareOperator.EQ, 0);
 
   /* Not all control transfers are skipped in this case, we need to speak 
USBHID */
@@ -588,10 +607,8 @@
   uint8 urb_buffer_setup_set_idle[8] = { 0x21, 0x0a, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00};
   Ioctl.usbdevfs_urb urb_set_idle = {2, 0x00, 0, 0, urb_buffer_setup_set_idle, 
8, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_set_idle), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert (urb_reap == &urb_set_idle);
 
   /* GET DESCIPTOR is skipped again. */
@@ -600,11 +617,9 @@
   uint8 urb_buffer_setup_set_report[9] = { 0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 
0x01, 0x00, 0x00};
   Ioctl.usbdevfs_urb urb_set_report = {2, 0x00, 0, 0, 
urb_buffer_setup_set_report, 9, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref 
urb_set_report), CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   /* Now we'll receive the SET_REPORT response as EP 1 has been submitted 
already */
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert (urb_reap == &urb_set_report);
 
   /* We cannot reap any urbs yet as we are waiting for SET_IDLE */
@@ -615,17 +630,14 @@
   urb_buffer_setup_set_idle = { 0x21, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 
0x00};
   urb_set_idle = {2, 0x00, 0, 0, urb_buffer_setup_set_idle, 8, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_set_idle), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert (urb_reap == &urb_set_idle);
 
   /* Another SET_REPORT request */
   urb_buffer_setup_set_report = { 0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 0x01, 
0x00, 0x01};
   urb_set_report = {2, 0x00, 0, 0, urb_buffer_setup_set_report, 9, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref 
urb_set_report), CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   /* We cannot reap any urbs yet, because we didn't make a request on EP 2 */
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, -1);
@@ -635,17 +647,14 @@
   var urb_buffer_ep2 = new uint8[4];
   Ioctl.usbdevfs_urb urb_ep2 = {1, 0x82, 0, 0, urb_buffer_ep2, 4, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_ep2), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (urb_ep2.status, CompareOperator.EQ, 0);
 
   /* Now we'll receive the SET_REPORT response as EP 1 has been submitted 
already */
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert (urb_reap == &urb_set_report);
 
   /* The first report is: 00000c0000000000 (EP1) */
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert (urb_reap == &urb_ep1);
   assert_cmpint (urb_ep1.status, CompareOperator.EQ, 0);
   assert_cmpuint (urb_ep1.buffer[0], CompareOperator.EQ, 0x00);
@@ -659,11 +668,9 @@
 
   /* Resubmit URB to get next report */
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_ep1), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   /* The second report is: 0000000000000000 (EP1) */
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert (urb_reap == &urb_ep1);
   assert_cmpint (urb_ep1.status, CompareOperator.EQ, 0);
   assert_cmpuint (urb_ep1.buffer[0], CompareOperator.EQ, 0x00);
@@ -770,13 +777,11 @@
 
   int i = 0;
   assert_cmpint (Posix.ioctl (fd, Ioctl.HIDIOCGRDESCSIZE, ref i), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   // HACK: This is broken on big-endian machines like s390x and ppc64, it is 
0x22000000 there
   if (BYTE_ORDER == ByteOrder.LITTLE_ENDIAN)
       assert_cmpint (i, CompareOperator.EQ, 34);
   Ioctl.hidraw_report_descriptor desc = { 34, };
   assert_cmpint (Posix.ioctl (fd, Ioctl.HIDIOCGRDESC, ref desc), 
CompareOperator.EQ, 0);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   uint8 desc_value[] = {
          0x06, 0xD0, 0xF1, 0x09, 0x01, 0xA1, 0x01, 0x09, 0x20, 0x15, 0x00, 
0x26,
          0xFF, 0x00, 0x75, 0x08, 0x95, 0x40, 0x81, 0x02, 0x09, 0x21, 0x15, 
0x00,
@@ -806,7 +811,6 @@
 
   Ioctl.cros_ec_command_v2 *s_cmd = malloc (sizeof (Ioctl.cros_ec_command_v2) 
+ 4);
   assert_cmpint (Posix.ioctl (fd, Ioctl.CROS_EC_DEV_IOCXCMD_V2, s_cmd), 
CompareOperator.EQ, 4);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   uint8 fpmode_data[] = {
     0x80, 0x00, 0x00, 0x00
   };
@@ -814,7 +818,6 @@
 
   s_cmd = realloc(s_cmd, sizeof (Ioctl.cros_ec_command_v2) + 48);
   assert_cmpint (Posix.ioctl (fd, Ioctl.CROS_EC_DEV_IOCXCMD_V2, s_cmd), 
CompareOperator.EQ, 48);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   uint8 fpinfo_data[] = {
     0x46, 0x50, 0x43, 0x20, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x02, 0x00, 0x00,
     0x01, 0x00, 0x00, 0x00, 0x94, 0x66, 0x00, 0x00, 0x47, 0x52, 0x45, 0x59,
@@ -825,7 +828,6 @@
 
   s_cmd = realloc(s_cmd, sizeof (Ioctl.cros_ec_command_v2) + 22);
   assert_cmpint (Posix.ioctl (fd, Ioctl.CROS_EC_DEV_IOCXCMD_V2, s_cmd), 
CompareOperator.EQ, 22);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   uint8 fpstats_data[] = {
     0x65, 0x63, 0x01, 0x00, 0xB4, 0x4A, 0x02, 0x00, 0x07, 0xB3, 0x03, 0x00,
     0xDC, 0x33, 0x50, 0x5A, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -1142,21 +1144,17 @@
 
   int value = (int) 0xdeadbeef;
   assert_cmpint (Posix.ioctl (fd, 1, value), CompareOperator.EQ, value);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   assert_cmpint (Posix.ioctl (fd, 2, value), CompareOperator.EQ, -1);
   assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.ENOMEM);
 
   assert_cmpint (Posix.ioctl (fd, 3, &ioctl_target), CompareOperator.EQ, 0);
   assert_cmpint (ioctl_target, CompareOperator.EQ, (int) 0xc00fffee);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   /* Test whether we can write and get the value mirrored back. */
   assert_cmpint ((int) Posix.write (fd, write_buf, 10), CompareOperator.EQ, 
10);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   assert_cmpint ((int) Posix.read (fd, read_buf, 10), CompareOperator.EQ, 10);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpint (Posix.memcmp (read_buf, write_buf, 10), CompareOperator.EQ, 
0);
 
   /* A further read returns EAGAIN */

Reply via email to