# plat_is_concerned() tests
#
# Copyright (C) 2014, 2018, 2019  Patrick McDermott
#
# This file is part of the ProteanOS Development Kit.
#
# The ProteanOS Development Kit is free software: you can redistribute
# it and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# The ProteanOS Development Kit is distributed in the hope that it
# will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the ProteanOS Development Kit.  If not, see
# <http://www.gnu.org/licenses/>.

set -eu

main()
{
	plan_ 18

	# Platform: all
	command_ok_ \
		'HOST "dev" DOES NOT MATCH PLAT "all"' -- \
		not plat_is_concerned \
		'dev' \
		'all'
	command_ok_ \
		'HOST "ao751h" DOES NOT MATCH PLAT "all"' -- \
		not plat_is_concerned \
		'ao751h' \
		'all'
	command_ok_ \
		'HOST "all" DOES MATCH PLAT "all"' -- \
		plat_is_concerned \
		'all' \
		'all'

	# Platform: any
	command_ok_ \
		'HOST "dev" DOES MATCH PLAT "any"' -- \
		plat_is_concerned \
		'dev' \
		'any'
	command_ok_ \
		'HOST "ao751h" DOES MATCH PLAT "any"' -- \
		plat_is_concerned \
		'ao751h' \
		'any'
	command_ok_ \
		'HOST "all" DOES NOT MATCH PLAT "any"' -- \
		not plat_is_concerned \
		'all' \
		'any'

	# Platform: dev
	command_ok_ \
		'HOST "dev" DOES MATCH PLAT "dev"' -- \
		plat_is_concerned \
		'dev' \
		'dev'
	command_ok_ \
		'HOST "ao751h" DOES NOT MATCH PLAT "dev"' -- \
		not plat_is_concerned \
		'ao751h' \
		'dev'
	command_ok_ \
		'HOST "all" DOES NOT MATCH PLAT "dev"' -- \
		not plat_is_concerned \
		'all' \
		'dev'

	# Platform: !dev
	command_ok_ \
		'HOST "dev" DOES NOT MATCH PLAT "!dev"' -- \
		not plat_is_concerned \
		'dev' \
		'!dev'
	command_ok_ \
		'HOST "ao751h" DOES MATCH PLAT "!dev"' -- \
		plat_is_concerned \
		'ao751h' \
		'!dev'
	command_ok_ \
		'HOST "all" DOES NOT MATCH PLAT "!dev"' -- \
		not plat_is_concerned \
		'all' \
		'!dev'

	# Platform: dev dimension2400
	command_ok_ \
		'HOST "dev" DOES MATCH PLAT "dev dimension2400"' -- \
		plat_is_concerned \
		'dev' \
		'dev dimension2400'
	command_ok_ \
		'HOST "ao751h" DOES NOT MATCH PLAT "dev dimension2400"' -- \
		not plat_is_concerned \
		'ao751h' \
		'dev dimension2400'
	command_ok_ \
		'HOST "all" DOES NOT MATCH PLAT "dev dimension2400"' -- \
		not plat_is_concerned \
		'all' \
		'dev dimension2400'

	# Platform: dev all
	command_ok_ \
		'HOST "dev" DOES MATCH PLAT "dev all"' -- \
		plat_is_concerned \
		'dev' \
		'dev all'
	command_ok_ \
		'HOST "ao751h" DOES NOT MATCH PLAT "dev all"' -- \
		not plat_is_concerned \
		'ao751h' \
		'dev all'
	command_ok_ \
		'HOST "all" DOES MATCH PLAT "dev all"' -D TODO -- \
		plat_is_concerned \
		'all' \
		'dev all'

	return 0
}