#!/bin/bash
# SPDX-License-Identifier: GPL-3.0+
# Copyright (C) 2026 Daniel Wagner, SUSE Labs
#
# Test bcache setup and teardown

. tests/bcache/rc

DESCRIPTION="test bcache setup and teardown"

test_device_array() {
	echo "Running ${TEST_NAME}"

	if [[ ${#TEST_DEV_ARRAY[@]} -lt 3 ]]; then
		SKIP_REASONS+=("requires at least 3 devices")
		return 1
	fi

	_setup_bcache "${TEST_DEV_ARRAY[@]}"

	local -a bcache_nodes

	mapfile -t bcache_nodes < <(_create_bcache \
				--cache "${TEST_DEV_ARRAY[0]##*/}" \
				--bdev "${TEST_DEV_ARRAY[1]##*/}" \
				--writeback)

	echo "number of bcaches: ${#bcache_nodes[*]}"

	_remove_bcache --bcache "${bcache_nodes[@]}" \
			--cache "${TEST_DEV_ARRAY[0]##*/}" \
			--bdev "${TEST_DEV_ARRAY[1]##*/}" \

	mapfile -t bcache_nodes < <(_create_bcache \
				--cache "${TEST_DEV_ARRAY[0]##*/}" \
				--bdev "${TEST_DEV_ARRAY[1]##*/}" "${TEST_DEV_ARRAY[2]##*/}" \
				--writeback)

	echo "number of bcaches: ${#bcache_nodes[*]}"

	_remove_bcache --bcache "${bcache_nodes[@]}" \
			--cache "${TEST_DEV_ARRAY[0]##*/}" \
			--bdev "${TEST_DEV_ARRAY[1]##*/}" "${TEST_DEV_ARRAY[2]##*/}"
}
