Source: libsdl-perl
Version: 2.546-2
Severity: important
Tags: patch
Usertags: hurd
User: [email protected]
Hello,
Currently libsdl-cdrom FTBFS on GNU/Hurd since the test
SDL::CDROM::num_drives() in t/core_cd.t returns -1. This return value is
expected when the SDL_INIT_CDROM flag is not used for SDL_init(). From
/usr/include/SDL/SDL_cdrom.h:
/**
* Returns the number of CD-ROM drives on the system, or -1 if
* SDL_Init() has not been called with the SDL_INIT_CDROM flag.
*/
Note: This is confusing since the test i t/core_cd.t succeeds:
plan( skip_all => 'Failed to init cdrom' )
unless SDL::TestTool->init(SDL_INIT_CDROM);
Anyway, the attached patch, fix-core_cd-tests, fixes the test when
SDL::CDROM::num_drives() returns a number <= 0.
Thanks!
Index: libsdl-perl-2.546/t/core_cd.t
===================================================================
--- libsdl-perl-2.546.orig/t/core_cd.t
+++ libsdl-perl-2.546/t/core_cd.t
@@ -37,12 +37,13 @@ is( SDL_DATA_TRACK, 4, 'SDL_DATA_TRAC
is( SDL_DATA_TRACK(), 4, 'SDL_DATA_TRACK() should also be available' );
my $num_drives = SDL::CDROM::num_drives();
-ok( $num_drives >= 0, "[SDL::CDROM::num_drives] is $num_drives" );
SKIP:
{
- skip( "no drives available or SDL_RELEASE_TESTING not set", 17 )
+ skip( "no drives available or SDL_RELEASE_TESTING not set", 18 )
if $num_drives <= 0 || !$ENV{SDL_RELEASE_TESTING};
+
+ ok( $num_drives > 0, "[SDL::CDROM::num_drives] is $num_drives" );
for ( 0 .. $num_drives - 1 ) {
my $name = SDL::CDROM::name($_);
ok( $name, "[SDL::CDROM::name] for drive $_ is $name" );