Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-Test-Future-IO-Impl for 
openSUSE:Factory checked in at 2026-02-09 15:34:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-Future-IO-Impl (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Test-Future-IO-Impl.new.1670 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Test-Future-IO-Impl"

Mon Feb  9 15:34:46 2026 rev:4 rq:1331903 version:0.170.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Test-Future-IO-Impl/perl-Test-Future-IO-Impl.changes
        2026-01-17 14:56:29.799555496 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-Test-Future-IO-Impl.new.1670/perl-Test-Future-IO-Impl.changes
      2026-02-09 15:34:49.923349268 +0100
@@ -1,0 +2,16 @@
+Mon Jan 19 05:55:10 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 0.170.0 (0.17)
+   see /usr/share/doc/packages/perl-Test-Future-IO-Impl/Changes
+
+  0.17    2026-01-18
+          [CHANGES]
+           * Added tests for `poll` method
+
+          [BUGFIXES]
+           * Account for the fact that read or write IO operations may have
+             already happened before they are cancelled
+           * Clear the EAGAIN error from `$wr` filehandle in EAGAIN write test
+             to stop perl writing annoying warnings during test
+
+-------------------------------------------------------------------

Old:
----
  Test-Future-IO-Impl-0.16.tar.gz

New:
----
  Test-Future-IO-Impl-0.17.tar.gz

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

Other differences:
------------------
++++++ perl-Test-Future-IO-Impl.spec ++++++
--- /var/tmp/diff_new_pack.dR9UnP/_old  2026-02-09 15:34:50.723382918 +0100
+++ /var/tmp/diff_new_pack.dR9UnP/_new  2026-02-09 15:34:50.723382918 +0100
@@ -18,10 +18,10 @@
 
 %define cpan_name Test-Future-IO-Impl
 Name:           perl-Test-Future-IO-Impl
-Version:        0.160.0
+Version:        0.170.0
 Release:        0
-# 0.16 -> normalize -> 0.160.0
-%define cpan_version 0.16
+# 0.17 -> normalize -> 0.170.0
+%define cpan_version 0.17
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Summary:        Acceptance tests for Future::IO implementations
 URL:            https://metacpan.org/release/%{cpan_name}

++++++ Test-Future-IO-Impl-0.16.tar.gz -> Test-Future-IO-Impl-0.17.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Future-IO-Impl-0.16/Changes 
new/Test-Future-IO-Impl-0.17/Changes
--- old/Test-Future-IO-Impl-0.16/Changes        2026-01-07 17:49:27.000000000 
+0100
+++ new/Test-Future-IO-Impl-0.17/Changes        2026-01-18 20:24:45.000000000 
+0100
@@ -1,5 +1,15 @@
 Revision history for Test-Future-IO-Impl
 
+0.17    2026-01-18
+        [CHANGES]
+         * Added tests for `poll` method
+
+        [BUGFIXES]
+         * Account for the fact that read or write IO operations may have
+           already happened before they are cancelled
+         * Clear the EAGAIN error from `$wr` filehandle in EAGAIN write test
+           to stop perl writing annoying warnings during test
+
 0.16    2026-01-07
         [BUGFIXES]
          * Be less sensitive to `->send` failure in peer-closed case, as OS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Future-IO-Impl-0.16/META.json 
new/Test-Future-IO-Impl-0.17/META.json
--- old/Test-Future-IO-Impl-0.16/META.json      2026-01-07 17:49:27.000000000 
+0100
+++ new/Test-Future-IO-Impl-0.17/META.json      2026-01-18 20:24:45.000000000 
+0100
@@ -33,7 +33,7 @@
    "provides" : {
       "Test::Future::IO::Impl" : {
          "file" : "lib/Test/Future/IO/Impl.pm",
-         "version" : "0.16"
+         "version" : "0.17"
       }
    },
    "release_status" : "stable",
@@ -42,6 +42,6 @@
          "http://dev.perl.org/licenses/";
       ]
    },
-   "version" : "0.16",
+   "version" : "0.17",
    "x_serialization_backend" : "JSON::PP version 4.16"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Future-IO-Impl-0.16/META.yml 
new/Test-Future-IO-Impl-0.17/META.yml
--- old/Test-Future-IO-Impl-0.16/META.yml       2026-01-07 17:49:27.000000000 
+0100
+++ new/Test-Future-IO-Impl-0.17/META.yml       2026-01-18 20:24:45.000000000 
+0100
@@ -15,7 +15,7 @@
 provides:
   Test::Future::IO::Impl:
     file: lib/Test/Future/IO/Impl.pm
-    version: '0.16'
+    version: '0.17'
 requires:
   Errno: '0'
   IO::Handle: '0'
@@ -25,5 +25,5 @@
   perl: '5.014'
 resources:
   license: http://dev.perl.org/licenses/
-version: '0.16'
+version: '0.17'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Future-IO-Impl-0.16/README 
new/Test-Future-IO-Impl-0.17/README
--- old/Test-Future-IO-Impl-0.16/README 2026-01-07 17:49:27.000000000 +0100
+++ new/Test-Future-IO-Impl-0.17/README 2026-01-18 20:24:45.000000000 +0100
@@ -43,6 +43,12 @@
 
     Tests the Future::IO->connect method.
 
+ poll
+
+    Since version 0.17.
+
+    Tests the Future::IO->poll method.
+
  recv, recvfrom
 
     Since version 0.15.
@@ -57,7 +63,10 @@
 
  sleep
 
-    Tests the Future::IO->sleep method.
+    Tests the Future::IO->sleep and Future::IO->alarm methods.
+
+    The two methods are combined in one test suite as they are very
+    similar, and neither is long or complicated.
 
  read, sysread
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Future-IO-Impl-0.16/lib/Test/Future/IO/Impl.pm 
new/Test-Future-IO-Impl-0.17/lib/Test/Future/IO/Impl.pm
--- old/Test-Future-IO-Impl-0.16/lib/Test/Future/IO/Impl.pm     2026-01-07 
17:49:27.000000000 +0100
+++ new/Test-Future-IO-Impl-0.17/lib/Test/Future/IO/Impl.pm     2026-01-18 
20:24:45.000000000 +0100
@@ -3,7 +3,7 @@
 #
 #  (C) Paul Evans, 2021-2026 -- [email protected]
 
-package Test::Future::IO::Impl 0.16;
+package Test::Future::IO::Impl 0.17;
 
 use v5.14;
 use warnings;
@@ -13,6 +13,7 @@
 
 use Errno qw( EINVAL EPIPE );
 use IO::Handle;
+use IO::Poll qw( POLLIN POLLOUT POLLHUP POLLERR );
 use Socket qw(
    pack_sockaddr_in sockaddr_family INADDR_LOOPBACK
    AF_INET AF_UNIX SOCK_DGRAM SOCK_STREAM PF_UNSPEC
@@ -205,6 +206,107 @@
    }
 }
 
+=head2 poll
+
+I<Since version 0.17.>
+
+Tests the C<< Future::IO->poll >> method.
+
+=cut
+
+# because the Future::IO default impl cannot handle HUP
+sub run_poll_no_hup_test
+{
+   # POLLIN
+   {
+      pipe my ( $rd, $wr ) or die "Cannot pipe() - $!";
+
+      $wr->autoflush();
+      $wr->print( "BYTES" );
+
+      my $f = Future::IO->poll( $rd, POLLIN );
+
+      is( scalar $f->get, POLLIN, "Future::IO->poll yields POLLIN on readable 
filehandle" );
+
+      my $f1 = Future::IO->poll( $rd, POLLIN );
+      my $f2 = Future::IO->poll( $rd, POLLIN );
+
+      is( [ scalar $f1->get, scalar $f2->get ], [ POLLIN, POLLIN ],
+         'Future::IO->poll can enqueue two POLLIN tests' );
+   }
+
+   # POLLOUT
+   {
+      pipe my ( $rd, $wr ) or die "Cannot pipe() - $!";
+
+      my $f = Future::IO->poll( $wr, POLLOUT );
+
+      is( scalar $f->get, POLLOUT, "Future::IO->poll yields POLLOUT on 
writable filehandle" );
+
+      my $f1 = Future::IO->poll( $wr, POLLOUT );
+      my $f2 = Future::IO->poll( $wr, POLLOUT );
+
+      is( [ scalar $f1->get, scalar $f2->get ], [ POLLOUT, POLLOUT ],
+         'Future::IO->poll can enqueue two POLLOUT tests' );
+   }
+
+   # POLLIN+POLLOUT at once
+   {
+      pipe my ( $rd, $wr ) or die "Cannot pipe() - $!";
+
+      $wr->autoflush();
+      $wr->print( "BYTES" );
+
+      my ( $frd, $fwr );
+
+      # IN+OUT on reading end
+      $frd = Future::IO->poll( $rd, POLLIN );
+      $fwr = Future::IO->poll( $rd, POLLOUT );
+
+      is( scalar $frd->get, POLLIN, "Future::IO->poll yields POLLIN on 
readable with simultaneous POLLOUT" );
+      # Don't assert on what $fwr saw here, as OSes/impls might differ
+      $fwr->cancel;
+
+      # IN+OUT on writing end
+      $frd = Future::IO->poll( $wr, POLLIN );
+      $fwr = Future::IO->poll( $wr, POLLOUT );
+
+      is( scalar $fwr->get, POLLOUT, "Future::IO->poll yields POLLOUT on 
writable with simultaneous POLLIN" );
+      # Don't assert on what $frd saw here, as OSes/impls might differ
+      $frd->cancel;
+   }
+}
+
+sub run_poll_test
+{
+   run_poll_no_hup_test();
+
+   # POLLHUP
+   {
+      # closing the writing end of a pipe puts the reading end at hangup 
condition
+      pipe my ( $rd, $wr ) or die "Cannot pipe() - $!";
+      close $wr;
+
+      my $f = Future::IO->poll( $rd, POLLHUP );
+
+      is( scalar $f->get, POLLHUP, "Future::IO->poll yields POLLHUP on 
hangup-in filehandle" );
+   }
+
+   # POLLERR
+   {
+      # closing the reading end of a pipe puts the writing end at error 
condition, because EPIPE
+      pipe my ( $rd, $wr ) or die "Cannot pipe() - $!";
+      close $rd;
+
+      my $f = Future::IO->poll( $wr, POLLOUT );
+
+      # We expect at least POLLERR, we might also see POLLOUT or POLLHUP as
+      # well but lets not care about that
+      my $got_revents = $f->get;
+      is( $got_revents & POLLERR, POLLERR, "Future::IO->poll yields at-least 
POLLERR on hangup-out filehandle" );
+   }
+}
+
 =head2 recv, recvfrom
 
 I<Since version 0.15.>
@@ -293,7 +395,11 @@
 
       $f1->cancel;
 
-      is( scalar $f2->get, "BYT", "Future::IO->$method can be cancelled" );
+      # At this point we don't know if $f1 performed its recv or not. There's
+      # two possible things we might see from $f2.
+
+      like( scalar $f2->get, qr/^(?:BYT|ES)$/,
+         "Result of second Future::IO->$method after first is cancelled" );
    }
 }
 
@@ -384,13 +490,22 @@
       is( scalar $f2->get, 3, 'Future::IO->send after cancelled one still 
works' );
 
       $rd->read( my $buf, 3 );
-      is( $buf, "TES", 'Cancelled Future::IO->send method did no write bytes' 
);
+
+      # At this point we don't know if $f1 performed its send or not. There's
+      # two possible things we might see from the buffer. Either way, the
+      # presence of a 'T' means that $f2 ran.
+
+      like( $buf, qr/^(?:BYT|TES)$/,
+         "A second Future::IO->send takes place after first is cancelled" );
    }
 }
 
 =head2 sleep
 
-Tests the C<< Future::IO->sleep >> method.
+Tests the C<< Future::IO->sleep >> and C<< Future::IO->alarm >> methods.
+
+The two methods are combined in one test suite as they are very similar, and
+neither is long or complicated.
 
 =cut
 
@@ -473,7 +588,11 @@
 
       $f1->cancel;
 
-      is( scalar $f2->get, "BYT", "Future::IO->$method can be cancelled" );
+      # At this point we don't know if $f1 performed its read or not. There's
+      # two possible things we might see from $f2.
+
+      like( scalar $f2->get, qr/^(?:BYT|ES)$/,
+         "Result of second Future::IO->$method after first is cancelled" );
    }
 }
 
@@ -514,6 +633,8 @@
 
       # Attempt to fill the pipe
       $wr->$method( "X" x 4096 ) for 1..256;
+      # clear the error on the filehandle to stop perl printing a warning
+      $wr->clearerr;
 
       my $f = Future::IO->$method( $wr, "more" );
 
@@ -553,7 +674,13 @@
       is( scalar $f2->get, 3, "Future::IO->$method after cancelled one still 
works" );
 
       $rd->read( my $buf, 3 );
-      is( $buf, "TES", "Cancelled Future::IO->$method did not write bytes" );
+
+      # At this point we don't know if $f1 performed its write or not. There's
+      # two possible things we might see from the buffer. Either way, the
+      # presence of a 'T' means that $f2 ran.
+
+      like( $buf, qr/^(?:BYT|TES)$/,
+         "A second Future::IO->$method takes place after first is cancelled" );
    }
 }
 

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.dR9UnP/_old  2026-02-09 15:34:50.903390490 +0100
+++ /var/tmp/diff_new_pack.dR9UnP/_new  2026-02-09 15:34:50.911390826 +0100
@@ -1,6 +1,6 @@
-mtime: 1767851134
-commit: 7a5977da5cdd2b804eb0775bef78286debe5cc1f517e8ef8e4575e29d8a78134
+mtime: 1768802111
+commit: d4b4a707c970b0839d0ef21802a16af79b0b77692b56a554c91d6af14d6dd05c
 url: https://src.opensuse.org/perl/perl-Test-Future-IO-Impl.git
-revision: 7a5977da5cdd2b804eb0775bef78286debe5cc1f517e8ef8e4575e29d8a78134
+revision: d4b4a707c970b0839d0ef21802a16af79b0b77692b56a554c91d6af14d6dd05c
 projectscmsync: https://src.opensuse.org/perl/_ObsPrj
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-01-27 14:32:32.000000000 +0100
@@ -0,0 +1 @@
+.osc

Reply via email to