#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2023, Intel Corporation
#
#
# libpmempool_backup/TEST6 -- test backup to poolset which parts already exist
# or almost all parts already exist
#

. ../unittest/unittest.sh

require_test_type medium

# This test memcpy + persist entire pool, and it runs
# forever under pmemcheck.
EXE=../libpmempool_api/libpmempool_test$EXESUFFIX
configure_valgrind pmemcheck force-disable $EXE

require_fs_type pmem non-pmem

setup

. ./common.sh

backup_cleanup

# prepare poolset files
create_poolset_variation 1
create_poolset_variation 1 $BACKUP

# create source poolset parts
expect_normal_exit $PMEMPOOL$EXESUFFIX create obj \
	"--layout test_layout" $POOLSET

# create backup poolset parts
for j in `seq 1 4`
do
	truncate -s 20M $POOL_PART$j$BACKUP
done

backup_and_compare $POOLSET

# one of parts is too small
truncate -s 10M ${POOL_PART}3${BACKUP}
backup_and_compare $POOLSET

# one of parts does not exist
rm ${POOL_PART}3${BACKUP}
backup_and_compare $POOLSET

mv $OUT_TEMP $OUT

check

pass
