#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2015-2019, Intel Corporation

#
# src/test/util_poolset/TEST1 -- unit test for util_pool_open()
#

. ../unittest/unittest.sh

require_test_type medium

setup

export TEST_LOG_LEVEL=4
export TEST_LOG_FILE=./test$UNITTEST_NUM.log

MIN_POOL=$((4 * 1024 * 1024)) # 4MiB

create_poolset $DIR/testset1 $MIN_POOL:$DIR/testfile11:z:$MIN_POOL # pass
create_poolset $DIR/testset2 $MIN_POOL:$DIR/testfile21:x \
	$MIN_POOL:$DIR/testfile22:x # fail - can't read poolset file
create_poolset $DIR/testset3 $MIN_POOL:$DIR/testfile31:x \
	$MIN_POOL:$DIR/testfile32:x # fail - no files
create_poolset $DIR/testset4 $MIN_POOL:$DIR/testfile41:z:$MIN_POOL \
	$MIN_POOL:$DIR/testfile42:x # fail - no second part
create_poolset $DIR/testset5 1M:$DIR/testfile51:z:1M \
	$MIN_POOL:$DIR/testfile52:z:$MIN_POOL # fail - part1 too small
create_poolset $DIR/testset6 $MIN_POOL:$DIR/testfile61:z:$MIN_POOL \
	1M:$DIR/testfile62:z:1M # fail - part2 too small
create_poolset $DIR/testset7 2097151:$DIR/testfile71:z:2097151 \
	$MIN_POOL:$DIR/testfile72:z:$MIN_POOL # fail - part1 too small
create_poolset $DIR/testset8 $MIN_POOL:$DIR/testfile81:z:$MIN_POOL \
	$MIN_POOL:$DIR/testfile82:z:$MIN_POOL # fail - no access permissions
create_poolset $DIR/testset9 $MIN_POOL:$DIR/testfile91:z:$MIN_POOL \
	64K:$DIR/testfile92:z:$MIN_POOL # fail - part2 size doesn't match
create_poolset $DIR/testset10 $MIN_POOL:$DIR/testfile101:z:4194304 \
	$MIN_POOL:$DIR/testfile102:z:4194303 # fail - part2 size doesn't match
create_poolset $DIR/testset11 2097153:$DIR/testfile111:z:2097153 \
	2101247:$DIR/testfile112:z:2101247 2097152:$DIR/testfile113:z:2097152 # pass

expect_normal_exit ./util_poolset$EXESUFFIX o $MIN_POOL \
	$DIR/testset0 $DIR/testset1\
	-mo:$DIR/testset2 $DIR/testset2\
	$DIR/testset3 $DIR/testset4\
	$DIR/testset5 $DIR/testset6\
	$DIR/testset7\
	-mo:$DIR/testfile82 $DIR/testset8\
	$DIR/testset9 $DIR/testset10\
	$DIR/testset11

check_files $DIR/testfile11\
	$DIR/testfile51 $DIR/testfile52\
	$DIR/testfile61 $DIR/testfile62\
	$DIR/testfile71 $DIR/testfile72\
	$DIR/testfile81 $DIR/testfile82\
	$DIR/testfile91 $DIR/testfile92\
	$DIR/testfile101 $DIR/testfile102\
	$DIR/testfile111 $DIR/testfile112 $DIR/testfile113

check_no_files $DIR/testfile21 $DIR/testfile22\
	$DIR/testfile31 $DIR/testfile32\
	$DIR/testfile42

$GREP "<1>" $TEST_LOG_FILE | sed -e "s/^.*\][ ]*//g" > ./grep$UNITTEST_NUM.log

check

pass
