Hal-Cdroms
view release on metacpan or search on metacpan
t/24-wait-for-mounted.t view on Meta::CPAN
use strict;
use lib 't';
use helper;
use File::Temp qw(tempdir);
use Test::More;
plan skip_all => "You need to be root to run this test" if $> != 0;
plan skip_all => "The scsi_debug kernel module is needed to run this test" if !can_create_fake_media();
plan 'no_plan';
use_ok('Hal::Cdroms');
# Check if a volume manager is going to auto-mount the device.
my $fake_device = create_fake_media();
sleep(2);
my $auto_mounted = 0;
if (find_mount_point($fake_device)) {
system("umount /dev/$fake_device");
remove_fake_media();
$auto_mounted = 1;
}
my $fake_device = create_fake_media(3);
if (!$auto_mounted) {
my $tmp_dir = tempdir(CLEANUP => 1);
system("(sleep 4; mount /dev/$fake_device $tmp_dir)&");
}
my $cdroms = Hal::Cdroms->new;
my $udisks_path = $cdroms->wait_for_mounted();
ok($udisks_path eq "/org/freedesktop/UDisks2/block_devices/$fake_device", 'wait_for_mounted returns correct path');
my $mount_point = find_mount_point($fake_device);
ok($mount_point, 'device is mounted');
ok($cdroms->get_mount_point($udisks_path) eq $mount_point, 'get_mount_point returns correct path');
done_testing();
END {
system("umount /dev/$fake_device") if find_mount_point($fake_device);
remove_fake_media() if $> == 0;
}
( run in 1.434 second using v1.01-cache-2.11-cpan-5a3173703d6 )