# -*- makefile -*-

# For grub-shell
grub-shell: tests/util/grub-shell.in config.status
	./config.status --file=$@:$<
	chmod +x $@
check_SCRIPTS += grub-shell
CLEANFILES += grub-shell

# For grub-shell-tester
grub-shell-tester: tests/util/grub-shell-tester.in config.status
	./config.status --file=$@:$<
	chmod +x $@
check_SCRIPTS += grub-shell-tester
CLEANFILES += grub-shell-tester

pkglib_MODULES += functional_test.mod
functional_test_mod_SOURCES = tests/lib/functional_test.c tests/lib/test.c
functional_test_mod_CFLAGS  = $(COMMON_CFLAGS)
functional_test_mod_LDFLAGS = $(COMMON_LDFLAGS)

# Rules for unit tests
check_UTILITIES += example_unit_test
example_unit_test_SOURCES = tests/example_unit_test.c kern/list.c kern/misc.c tests/lib/test.c tests/lib/unit_test.c
example_unit_test_CFLAGS  = -Wno-format

# Rules for functional tests
pkglib_MODULES += example_functional_test.mod
example_functional_test_mod_SOURCES = tests/example_functional_test.c
example_functional_test_mod_CFLAGS  = -Wno-format $(COMMON_CFLAGS)
example_functional_test_mod_LDFLAGS = $(COMMON_LDFLAGS)

# Rules for scripted tests
check_SCRIPTS += example_scripted_test
example_scripted_test_SOURCES = tests/example_scripted_test.in

check_SCRIPTS += example_grub_script_test
example_grub_script_test_SOURCES = tests/example_grub_script_test.in

#
# Rules for real tests
#

check_SCRIPTS += grub_script_echo1
grub_script_echo1_SOURCES = tests/grub_script_echo1.in

check_SCRIPTS += grub_script_echo_keywords
grub_script_echo_keywords_SOURCES = tests/grub_script_echo_keywords.in

check_SCRIPTS += grub_script_vars1
grub_script_vars1_SOURCES = tests/grub_script_vars1.in

check_SCRIPTS += grub_script_for1
grub_script_for1_SOURCES = tests/grub_script_for1.in

check_SCRIPTS += grub_script_while1
grub_script_while1_SOURCES = tests/grub_script_while1.in

check_SCRIPTS += grub_script_if
grub_script_if_SOURCES = tests/grub_script_if.in

check_SCRIPTS += grub_script_blanklines
grub_script_blanklines_SOURCES = tests/grub_script_blanklines.in

check_SCRIPTS += grub_script_final_semicolon
grub_script_final_semicolon_SOURCES = tests/grub_script_final_semicolon.in

check_SCRIPTS += grub_script_dollar
grub_script_dollar_SOURCES = tests/grub_script_dollar.in

check_SCRIPTS += grub_script_comments
grub_script_comments_SOURCES = tests/grub_script_comments.in

check_SCRIPTS += grub_script_functions
grub_script_functions_SOURCES = tests/grub_script_functions.in

check_SCRIPTS += grub_script_break
grub_script_break_SOURCES = tests/grub_script_break.in

check_SCRIPTS += grub_script_continue
grub_script_continue_SOURCES = tests/grub_script_continue.in

check_SCRIPTS += grub_script_shift
grub_script_shift_SOURCES = tests/grub_script_shift.in

# List of tests to execute on "make check"
# SCRIPTED_TESTS    = example_scripted_test
# SCRIPTED_TESTS   += example_grub_script_test
# UNIT_TESTS        = example_unit_test
# FUNCTIONAL_TESTS  = example_functional_test.mod

SCRIPTED_TESTS  = grub_script_echo1
SCRIPTED_TESTS += grub_script_echo_keywords
SCRIPTED_TESTS += grub_script_vars1
SCRIPTED_TESTS += grub_script_for1
SCRIPTED_TESTS += grub_script_while1
SCRIPTED_TESTS += grub_script_if
SCRIPTED_TESTS += grub_script_blanklines
SCRIPTED_TESTS += grub_script_final_semicolon
SCRIPTED_TESTS += grub_script_dollar
SCRIPTED_TESTS += grub_script_comments
SCRIPTED_TESTS += grub_script_functions
SCRIPTED_TESTS += grub_script_break
SCRIPTED_TESTS += grub_script_continue
SCRIPTED_TESTS += grub_script_shift

# dependencies between tests and testing-tools
$(SCRIPTED_TESTS): grub-shell grub-shell-tester
$(FUNCTIONAL_TESTS): functional_test.mod

