[RFC,PATCH 3/4] acpi: only run ACPI tests if we have ACPI

Jeremy Kerr jk at ozlabs.org
Thu Apr 24 08:18:24 UTC 2014


We only want to run ACPI tests if the firmware has ACPI, so add
fwts_firmware_has_feature(FWTS_FW_FEATURE_ACPI) checks.

Signed-off-by: Jeremy Kerr <jk at ozlabs.org>

---
 src/acpi/acpitables/acpitables.c   |   10 +++++++++-
 src/acpi/checksum/checksum.c       |   10 +++++++++-
 src/acpi/method/method.c           |    3 +++
 src/acpi/syntaxcheck/syntaxcheck.c |    3 +++
 src/pci/aspm/aspm.c                |   10 +++++++++-
 5 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/acpi/acpitables/acpitables.c b/src/acpi/acpitables/acpitables.c
index 439df2a..057e1e9 100644
--- a/src/acpi/acpitables/acpitables.c
+++ b/src/acpi/acpitables/acpitables.c
@@ -605,6 +605,13 @@ static int acpi_table_check_test2(fwts_framework *fw)
 	return FWTS_OK;
 }
 
+static int acpi_table_check_init(fwts_framework *fw __attribute__((unused)))
+{
+	if (!fwts_firmware_has_feature(FWTS_FW_FEATURE_ACPI))
+		return FWTS_SKIP;
+	return FWTS_OK;
+}
+
 static fwts_framework_minor_test acpi_table_check_tests[] = {
 	{ acpi_table_check_test1, "Test ACPI tables." },
 	{ acpi_table_check_test2, "Test ACPI headers." },
@@ -613,7 +620,8 @@ static fwts_framework_minor_test acpi_table_check_tests[] = {
 
 static fwts_framework_ops acpi_table_check_ops = {
 	.description = "ACPI table settings sanity tests.",
-	.minor_tests = acpi_table_check_tests
+	.minor_tests = acpi_table_check_tests,
+	.init = acpi_table_check_init,
 };
 
 FWTS_REGISTER("acpitables", &acpi_table_check_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_BATCH);
diff --git a/src/acpi/checksum/checksum.c b/src/acpi/checksum/checksum.c
index bac266d..deb10ae 100644
--- a/src/acpi/checksum/checksum.c
+++ b/src/acpi/checksum/checksum.c
@@ -145,6 +145,13 @@ static int checksum_test1(fwts_framework *fw)
 	return checksum_scan_tables(fw);
 }
 
+static int checksum_init(fwts_framework *w __attribute__((unused)))
+{
+	if (!fwts_firmware_has_feature(FWTS_FW_FEATURE_ACPI))
+		return FWTS_SKIP;
+	return FWTS_OK;
+}
+
 static fwts_framework_minor_test checksum_tests[] = {
 	{ checksum_test1, "ACPI table checksum test." },
 	{ NULL, NULL }
@@ -152,7 +159,8 @@ static fwts_framework_minor_test checksum_tests[] = {
 
 static fwts_framework_ops checksum_ops = {
 	.description = "ACPI table checksum test.",
-	.minor_tests = checksum_tests
+	.minor_tests = checksum_tests,
+	.init = checksum_init,
 };
 
 FWTS_REGISTER("checksum", &checksum_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_BATCH);
diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index 9b789cf..b288ad9 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -375,6 +375,9 @@ static int method_init(fwts_framework *fw)
 
 	fadt_mobile_platform = false;
 
+	if (!fwts_firmware_has_feature(FWTS_FW_FEATURE_ACPI))
+		return FWTS_SKIP;
+
 	/* Some systems have multiple FADTs, sigh */
 	for (i = 0; i < 256; i++) {
 		int ret = fwts_acpi_find_table(fw, "FACP", i, &info);
diff --git a/src/acpi/syntaxcheck/syntaxcheck.c b/src/acpi/syntaxcheck/syntaxcheck.c
index 504e5c6..a6ce2f1 100644
--- a/src/acpi/syntaxcheck/syntaxcheck.c
+++ b/src/acpi/syntaxcheck/syntaxcheck.c
@@ -224,6 +224,9 @@ static syntaxcheck_error_map_item syntaxcheck_error_map[] = {
 
 static int syntaxcheck_init(fwts_framework *fw)
 {
+	if (!fwts_firmware_has_feature(FWTS_FW_FEATURE_ACPI))
+		return FWTS_SKIP;
+
 	(void)syntaxcheck_load_advice(fw);
 
 	return FWTS_OK;
diff --git a/src/pci/aspm/aspm.c b/src/pci/aspm/aspm.c
index e798c26..e4e689a 100644
--- a/src/pci/aspm/aspm.c
+++ b/src/pci/aspm/aspm.c
@@ -264,6 +264,13 @@ static int aspm_pcie_register_configuration(fwts_framework *fw)
 	return ret;
 }
 
+static int aspm_init(fwts_framework *fw __attribute__((unused)))
+{
+	if (!fwts_firmware_has_feature(FWTS_FW_FEATURE_ACPI))
+		return FWTS_SKIP;
+	return FWTS_OK;
+}
+
 static fwts_framework_minor_test aspm_tests[] = {
 	{ aspm_check_configuration, "PCIe ASPM ACPI test." },
 	{ aspm_pcie_register_configuration, "PCIe ASPM registers test." },
@@ -272,7 +279,8 @@ static fwts_framework_minor_test aspm_tests[] = {
 
 static fwts_framework_ops aspm_ops = {
 	.description = "PCIe ASPM test.",
-	.minor_tests = aspm_tests
+	.minor_tests = aspm_tests,
+	.init = aspm_init,
 };
 
 FWTS_REGISTER("aspm", &aspm_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_BATCH | FWTS_FLAG_ROOT_PRIV);



More information about the fwts-devel mailing list