
# Copyright (c) 2021-2025, PostgreSQL Global Development Group

use strict;
use warnings FATAL => 'all';
use PostgreSQL::Test::Utils;
use Test::More;

my $tempdir = PostgreSQL::Test::Utils::tempdir;

program_help_ok('pg_verifybackup');
program_version_ok('pg_verifybackup');
program_options_handling_ok('pg_verifybackup');

command_fails_like(
	['pg_verifybackup'],
	qr/no backup directory specified/,
	'target directory must be specified');
command_fails_like(
	[ 'pg_verifybackup', $tempdir ],
	qr/could not open file.*\/backup_manifest\"/,
	'pg_verifybackup requires a manifest');
command_fails_like(
	[ 'pg_verifybackup', $tempdir, $tempdir ],
	qr/too many command-line arguments/,
	'multiple target directories not allowed');

# create fake manifest file
open(my $fh, '>', "$tempdir/backup_manifest") || die "open: $!";
close($fh);

# but then try to use an alternate, nonexisting manifest
command_fails_like(
	[
		'pg_verifybackup',
		'--manifest-path' => "$tempdir/not_the_manifest",
		$tempdir,
	],
	qr/could not open file.*\/not_the_manifest\"/,
	'pg_verifybackup respects -m flag');

done_testing();
