refactor(build): python generate_test_list script

This change introduces generate_test_list.py which is exactly like
generate_test_list.pl except written in python. This helps remove a
dependency on perl as well as a dependency on perl's libxml bindings.
The only required dependency is python3 and its standard library.

Tested by generating tests_list.c/h for each xml file and each platform
and comparing it against the output from the original script.

Signed-off-by: Jim Ray <jimray@google.com>
Change-Id: If0fa8d0e45bf58ce35081aaeb7a9320dfcefdbf9
diff --git a/Makefile b/Makefile
index 2c31a1a..0e7a3e9 100644
--- a/Makefile
+++ b/Makefile
@@ -525,8 +525,10 @@
 
 $(AUTOGEN_DIR)/tests_list.c $(AUTOGEN_DIR)/tests_list.h: $(AUTOGEN_DIR) ${TESTS_FILE} ${PLAT_TESTS_SKIP_LIST} $(ARCH_TESTS_SKIP_LIST)
 	@echo "  AUTOGEN $@"
-	tools/generate_test_list/generate_test_list.pl $(AUTOGEN_DIR)/tests_list.c \
-		$(AUTOGEN_DIR)/tests_list.h  ${TESTS_FILE} $(PLAT_TESTS_SKIP_LIST) $(ARCH_TESTS_SKIP_LIST)
+	tools/generate_test_list/generate_test_list.py $(AUTOGEN_DIR)/tests_list.c \
+		$(AUTOGEN_DIR)/tests_list.h  ${TESTS_FILE} \
+		--plat-skip-file=$(PLAT_TESTS_SKIP_LIST) \
+		--arch-skip-file=$(ARCH_TESTS_SKIP_LIST)
 ifeq ($(SMC_FUZZING), 1)
 	$(Q)mkdir -p  ${BUILD_PLAT}/smcf
 	dtc ${SMC_FUZZ_DTS} >> ${BUILD_PLAT}/smcf/dtb