test(fuzz): Fix single feature testing

     This change fixes an issue where a user provides a new feature
that can be fuzzed independently of the current setup of fuzzing.
Currently compile fails will cause issues if single feature fuzzing
is desired and the automated flow will disable sets that are not in
the SMC description file.  There are some small changes to the source
files to enable this behavior for both SDEI and Vendor.  There is also
a change to the automated scripting.

Change-Id: Ic768e9f1b285225f12f23c1e36acb668088ad129
Signed-off-by: Mark Dykes <mark.dykes@arm.com>
Signed-off-by: Kathleen Capella <kathleen.capella@arm.com>
diff --git a/smc_fuzz/script/gen_arg_struct_def.py b/smc_fuzz/script/gen_arg_struct_def.py
index ce24679..000dbaf 100755
--- a/smc_fuzz/script/gen_arg_struct_def.py
+++ b/smc_fuzz/script/gen_arg_struct_def.py
@@ -4,6 +4,8 @@
 # SPDX-License-Identifier: BSD-3-Clause
 #
 
+import re
+
 def gen_arg_struct_def(asdname,argfieldname,arglst,argnumfield):
 	asdfile = open(asdname, "w")
 	hline = "/*\n"
@@ -18,6 +20,18 @@
 	asdfile.write(hline)
 	smccount = 0
 	argcount = 0
+	featset = {}
+	hline = ""
+	for sn in argfieldname:
+		featdes = re.search(r'^([A-Z]+)_.+',sn)
+		if featdes:
+			if featdes.group(1) not in featset:
+				hline += "#define "
+				hline += featdes.group(1) + "_INCLUDE" + " 1\n"
+				featset[featdes.group(1)] = 1
+	hline += "\n"
+	asdfile.write(hline)
+	hline = ""
 	for sn in argfieldname:
 		hline = "#define "
 		hline += sn