# List excluded test files paths
EXCLUDE_FILE := .exclude
EXCLUDE      := $(shell cat $(EXCLUDE_FILE) 2>/dev/null)
ALL_TESTS    := $(filter-out $(EXCLUDE), $(shell find . -name '*.bats'))

OPENSSH_TESTS       := $(filter ./openssh/%.bats, $(ALL_TESTS))
OPENSSL_TESTS       := $(filter ./openssl/%.bats, $(ALL_TESTS))
KRB5_TESTS          := $(filter ./krb5/%.bats, $(ALL_TESTS))
RESILIENCE_TESTS    := $(filter ./resilience/%.bats, $(ALL_TESTS))

CURR_POLICY := $(shell update-crypto-policies --show)

ifeq (, $(shell which update-crypto-policies))
$(error "crypto-policies is not installed, aborting!")
endif

.PHONY: test-krb5 test-openssh test-openssl test-upstream test-resilience

all: test-krb5 test-openssh test-openssl test-upstream test-resilience

test-krb5:
	bats $(KRB5_TESTS)
test-openssh:
	bats $(OPENSSH_TESTS)
test-openssl:
	bats $(OPENSSL_TESTS)
test-resilience:
	bats $(RESILIENCE_TESTS)
test-upstream:
	$(MAKE) -C ../../ test
