[PATCH] ac_adapter: skip tests when no power supply exists
Alex Hung
alex.hung at canonical.com
Thu Aug 16 07:03:30 UTC 2018
Signed-off-by: Alex Hung <alex.hung at canonical.com>
---
src/acpi/ac_adapter/ac_adapter.c | 6 ++----
src/lib/src/fwts_ac_adapter.c | 12 ++++++++++++
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/acpi/ac_adapter/ac_adapter.c b/src/acpi/ac_adapter/ac_adapter.c
index 1b21b4e..e7d2082 100644
--- a/src/acpi/ac_adapter/ac_adapter.c
+++ b/src/acpi/ac_adapter/ac_adapter.c
@@ -31,10 +31,8 @@ static int ac_adapter_init(fwts_framework *fw)
int not_matching = 0;
if (fwts_ac_adapter_get_state(FWTS_AC_ADAPTER_ANY, &matching, ¬_matching) != FWTS_OK) {
- fwts_failed(fw, LOG_LEVEL_LOW, "NoACAdapterEntry",
- "No %s or %s directory available: cannot test.",
- FWTS_SYS_CLASS_POWER_SUPPLY, FWTS_PROC_ACPI_AC_ADAPTER);
- return FWTS_ERROR;
+ fwts_log_error(fw, "Power Supply does not exist, skipping test");
+ return FWTS_SKIP;
}
return FWTS_OK;
}
diff --git a/src/lib/src/fwts_ac_adapter.c b/src/lib/src/fwts_ac_adapter.c
index 42e2025..9dd828f 100644
--- a/src/lib/src/fwts_ac_adapter.c
+++ b/src/lib/src/fwts_ac_adapter.c
@@ -78,6 +78,18 @@ int fwts_ac_adapter_get_state(const int state, int *matching, int *not_matching)
/* Try to user newer /sys interface first */
if ((ac_power_dir = opendir(FWTS_SYS_CLASS_POWER_SUPPLY))) {
+ struct dirent *ac_entry;
+ int count = 0;
+
+ while ((ac_entry = readdir(ac_power_dir)) != NULL)
+ count++;
+
+ /* no power supply dir exists */
+ if (count == 2) {
+ (void)closedir(ac_power_dir);
+ return FWTS_ERROR;
+ }
+
ac_interface = &fwts_ac_interfaces[SYS_INTERFACE];
/* then try older /proc interface */
} else if ((ac_power_dir = opendir(FWTS_PROC_ACPI_AC_ADAPTER))) {
--
2.7.4
More information about the fwts-devel
mailing list