From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use strict;
use FindBin qw($Bin);
use File::Basename qw(fileparse);
my $pid_file;
lives_ok { $pid_file = PID::File->new; } "instantiated pid file ok";
ok( ! $pid_file->running, "pid file is not running" );
lives_ok { $pid_file->create; } "created pid file ok";
my $expected_filename = '';
{
my @filename = fileparse( $0 );
$expected_filename = $Bin . '/';
$expected_filename .= shift @filename;
$expected_filename .= '.pid';
}
ok( $pid_file->file eq $expected_filename, "pid file is '" . $expected_filename . "' as expected");
ok( -e $pid_file->file, "pid file ('" . $pid_file->file . "') does exist");
ok( $pid_file->running, "pid file is running (me)" );
lives_ok { $pid_file->remove; } "removed pid file ok";
ok( ! -e $pid_file->file, "pid file ('" . $pid_file->file . "') does not exist");
ok( ! $pid_file->running, "pid file is not running" );
done_testing();