[igt-dev] [PATCH i-g-t] lib/igt_eld: fix eld_is_supported failing if not supported

Simon Ser
2019-09-13T10:22:37Z

When glob(3) doesn't find any results, it returns GLOB_NOMATCH. I've been
confused by GLOB_NOCHECK's description and thought it would return 0.

Instead of failing on the assert, return that ELDs aren't supported in case
there's no match.

While at it, also include glob's return value in the assert message.

Signed-off-by: Simon Ser <simon.ser@intel.com>
Fixes: 3374cd0b048f ("lib/igt_eld: introduce eld_is_supported")
Cc: Petri Latvala <petri.latvala@intel.com>
---

Sorry about the fuss.

lib/igt_eld.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/igt_eld.c b/lib/igt_eld.c
index 5d1d8e01cd33..23ebf6305ae0 100644
--- a/lib/igt_eld.c
+++ b/lib/igt_eld.c
@@ -270,11 +270,14 @@ bool eld_has_igt(void)
bool eld_is_supported(void)
{
glob_t glob_buf = {0};
+ int ret;
bool has_elds;

- igt_assert_f(glob("/proc/asound/card*/" ELD_PREFIX "*",
- GLOB_NOSORT, NULL, &glob_buf) == 0,
- "glob failed\n");
+ ret = glob("/proc/asound/card*/" ELD_PREFIX "*",
+ GLOB_NOSORT, NULL, &glob_buf);
+ if (ret == GLOB_NOMATCH)
+ return false;
+ igt_assert_f(ret == 0, "glob failed: %d\n", ret);
has_elds = glob_buf.gl_pathc > 0;
globfree(&glob_buf);

--
2.23.0