Message ID | 1437498503-24646-1-git-send-email-przanoni@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 21, 2015 at 02:08:23PM -0300, Paulo Zanoni wrote: > From: Paulo Zanoni <paulo.r.zanoni@intel.com> > > A helpful function for when you want to read a whole debugfs file to a > string and don't want to worry about opening and closing file > descriptors and asserting buffer sizes. > > We've been using this already for kms_frontbuffer_tracking and > kms_fbcon_fbt, so the only test with new code here is kms_fbc_crc. > > Also notice that for kms_fbc_crc we had to increase the buffer size > since the file can sometimes be bigger than 64 bytes - depending on > the reason why FBC is disabled. > > Of course, there are probably many other programs we can patch, but > I'm not doing this now. > > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> > --- > lib/igt_debugfs.c | 27 +++++++++++++++++++++++++++ > lib/igt_debugfs.h | 1 + > tests/kms_fbc_crc.c | 18 ++++-------------- > tests/kms_fbcon_fbt.c | 25 ++++--------------------- > tests/kms_frontbuffer_tracking.c | 33 ++++++++------------------------- > 5 files changed, 44 insertions(+), 60 deletions(-) > > diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c > index a2c6fe2..bc1bb05 100644 > --- a/lib/igt_debugfs.c > +++ b/lib/igt_debugfs.c > @@ -185,6 +185,33 @@ FILE *igt_debugfs_fopen(const char *filename, > return fopen(buf, mode); > } > > +/** > + * igt_debugfs_read: > + * @filename: file name > + * @buf: buffer where the contents will be stored, allocated by the caller > + * @buf_size: size of the buffer > + * > + * This function opens the debugfs file, reads it, stores the content in the > + * provided buffer, then closes the file. Users should make sure that the buffer > + * provided is big enough to fit the whole file, plus one byte. Hm if we want a helper function to slurp in an entire file I'd go with one that mallocs a suitably big buffer. That means more free calls, but imo that's less onerous than getting buffer sizes right (well at least for a library function). If you don't like that I'd rename this with a __ prefix and do a #define igt_debugfs_read(file, buf) \ __igt_debugfs_read((file), (buf), sizeof(buf)) That way it's fairly impossible to get the static sizing wrong at least. -Daniel > + */ > +void igt_debugfs_read(const char *filename, char *buf, int buf_size) > +{ > + FILE *file; > + size_t n_read; > + > + file = igt_debugfs_fopen(filename, "r"); > + igt_assert(file); > + > + n_read = fread(buf, 1, buf_size - 1, file); > + igt_assert(n_read > 0); > + igt_assert(feof(file)); > + > + buf[n_read] = '\0'; > + > + igt_assert(fclose(file) == 0); > +} > + > /* > * Pipe CRC > */ > diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h > index ece7148..a0bb75e 100644 > --- a/lib/igt_debugfs.h > +++ b/lib/igt_debugfs.h > @@ -34,6 +34,7 @@ enum pipe; > int igt_debugfs_open(const char *filename, int mode); > FILE *igt_debugfs_fopen(const char *filename, > const char *mode); > +void igt_debugfs_read(const char *filename, char *buf, int buf_size); > > /* > * Pipe CRC > diff --git a/tests/kms_fbc_crc.c b/tests/kms_fbc_crc.c > index f2a86a6..28cc165 100644 > --- a/tests/kms_fbc_crc.c > +++ b/tests/kms_fbc_crc.c > @@ -215,14 +215,9 @@ static void fill_mmap_gtt(data_t *data, uint32_t handle, unsigned char color) > > static bool fbc_enabled(data_t *data) > { > - FILE *status; > - char str[64] = {}; > + char str[128] = {}; > > - status = igt_debugfs_fopen("i915_fbc_status", "r"); > - igt_assert(status); > - > - igt_assert(fread(str, 1, sizeof(str) - 1, status) > 0); > - fclose(status); > + igt_debugfs_read("i915_fbc_status", str, sizeof(str)); > return strstr(str, "FBC enabled") != NULL; > } > > @@ -544,8 +539,7 @@ igt_main > igt_skip_on_simulation(); > > igt_fixture { > - char buf[64]; > - FILE *status; > + char buf[128]; > > data.drm_fd = drm_open_any_master(); > kmstest_set_vt_graphics_mode(); > @@ -554,11 +548,7 @@ igt_main > > igt_require_pipe_crc(); > > - status = igt_debugfs_fopen("i915_fbc_status", "r"); > - igt_require_f(status, "No i915_fbc_status found\n"); > - igt_assert_lt(0, fread(buf, 1, sizeof(buf), status)); > - fclose(status); > - buf[sizeof(buf) - 1] = '\0'; > + igt_debugfs_read("i915_fbc_status", buf, sizeof(buf)); > igt_require_f(!strstr(buf, "unsupported on this chipset"), > "FBC not supported\n"); > > diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c > index f075014..c201fde 100644 > --- a/tests/kms_fbcon_fbt.c > +++ b/tests/kms_fbcon_fbt.c > @@ -86,28 +86,11 @@ static void teardown_drm(struct drm_info *drm) > igt_assert(close(drm->fd) == 0); > } > > -static void debugfs_read(const char *filename, char *buf, int buf_size) > -{ > - FILE *file; > - size_t n_read; > - > - file = igt_debugfs_fopen(filename, "r"); > - igt_assert(file); > - > - n_read = fread(buf, 1, buf_size - 1, file); > - igt_assert(n_read > 0); > - igt_assert(feof(file)); > - > - buf[n_read] = '\0'; > - > - igt_assert(fclose(file) == 0); > -} > - > static bool fbc_supported_on_chipset(void) > { > char buf[128]; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > return !strstr(buf, "FBC unsupported on this chipset\n"); > } > > @@ -120,7 +103,7 @@ static bool fbc_is_enabled(void) > { > char buf[128]; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > return strstr(buf, "FBC enabled\n"); > } > > @@ -172,7 +155,7 @@ static bool psr_supported_on_chipset(void) > { > char buf[256]; > > - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > return strstr(buf, "Sink_Support: yes\n"); > } > > @@ -185,7 +168,7 @@ static bool psr_is_enabled(void) > { > char buf[256]; > > - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > return strstr(buf, "\nActive: yes\n"); > } > > diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c > index e9be045..e162e91 100644 > --- a/tests/kms_frontbuffer_tracking.c > +++ b/tests/kms_frontbuffer_tracking.c > @@ -556,28 +556,11 @@ static bool set_mode_for_params(struct modeset_params *params) > return (rc == 0); > } > > -static void debugfs_read(const char *filename, char *buf, int buf_size) > -{ > - FILE *file; > - size_t n_read; > - > - file = igt_debugfs_fopen(filename, "r"); > - igt_assert(file); > - > - n_read = fread(buf, 1, buf_size - 1, file); > - igt_assert(n_read > 0); > - igt_assert(feof(file)); > - > - buf[n_read] = '\0'; > - > - igt_assert(fclose(file) == 0); > -} > - > static bool fbc_is_enabled(void) > { > char buf[128]; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > return strstr(buf, "FBC enabled\n"); > } > > @@ -585,7 +568,7 @@ static bool psr_is_enabled(void) > { > char buf[256]; > > - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > return (strstr(buf, "\nActive: yes\n")); > } > > @@ -596,7 +579,7 @@ static struct timespec fbc_get_last_action(void) > char *action; > ssize_t n_read; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > > action = strstr(buf, "\nLast action:"); > igt_assert(action); > @@ -645,7 +628,7 @@ static void fbc_setup_last_action(void) > char buf[128]; > char *action; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > > action = strstr(buf, "\nLast action:"); > if (!action) { > @@ -664,7 +647,7 @@ static bool fbc_is_compressing(void) > { > char buf[128]; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > return strstr(buf, "\nCompressing: yes\n") != NULL; > } > > @@ -677,7 +660,7 @@ static void fbc_setup_compressing(void) > { > char buf[128]; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > > if (strstr(buf, "\nCompressing:")) > fbc.supports_compressing = true; > @@ -1187,7 +1170,7 @@ static bool fbc_supported_on_chipset(void) > { > char buf[128]; > > - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); > return !strstr(buf, "FBC unsupported on this chipset\n"); > } > > @@ -1211,7 +1194,7 @@ static bool psr_sink_has_support(void) > { > char buf[256]; > > - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); > return strstr(buf, "Sink_Support: yes\n"); > } > > -- > 2.1.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
2015-07-21 14:43 GMT-03:00 Daniel Vetter <daniel@ffwll.ch>: > On Tue, Jul 21, 2015 at 02:08:23PM -0300, Paulo Zanoni wrote: >> From: Paulo Zanoni <paulo.r.zanoni@intel.com> >> >> A helpful function for when you want to read a whole debugfs file to a >> string and don't want to worry about opening and closing file >> descriptors and asserting buffer sizes. >> >> We've been using this already for kms_frontbuffer_tracking and >> kms_fbcon_fbt, so the only test with new code here is kms_fbc_crc. >> >> Also notice that for kms_fbc_crc we had to increase the buffer size >> since the file can sometimes be bigger than 64 bytes - depending on >> the reason why FBC is disabled. >> >> Of course, there are probably many other programs we can patch, but >> I'm not doing this now. >> >> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> >> --- >> lib/igt_debugfs.c | 27 +++++++++++++++++++++++++++ >> lib/igt_debugfs.h | 1 + >> tests/kms_fbc_crc.c | 18 ++++-------------- >> tests/kms_fbcon_fbt.c | 25 ++++--------------------- >> tests/kms_frontbuffer_tracking.c | 33 ++++++++------------------------- >> 5 files changed, 44 insertions(+), 60 deletions(-) >> >> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c >> index a2c6fe2..bc1bb05 100644 >> --- a/lib/igt_debugfs.c >> +++ b/lib/igt_debugfs.c >> @@ -185,6 +185,33 @@ FILE *igt_debugfs_fopen(const char *filename, >> return fopen(buf, mode); >> } >> >> +/** >> + * igt_debugfs_read: >> + * @filename: file name >> + * @buf: buffer where the contents will be stored, allocated by the caller >> + * @buf_size: size of the buffer >> + * >> + * This function opens the debugfs file, reads it, stores the content in the >> + * provided buffer, then closes the file. Users should make sure that the buffer >> + * provided is big enough to fit the whole file, plus one byte. > > Hm if we want a helper function to slurp in an entire file I'd go with one > that mallocs a suitably big buffer. That means more free calls, but imo > that's less onerous than getting buffer sizes right (well at least for a > library function). Since the files are usually very small, I'm not a big fan of the malloc/free version. But maybe we could have both the malloc and the non-malloc version in case we start having to deal with big debugfs files. > > If you don't like that I'd rename this with a __ prefix and do a > > #define igt_debugfs_read(file, buf) \ > __igt_debugfs_read((file), (buf), sizeof(buf)) > > That way it's fairly impossible to get the static sizing wrong at least. Good idea! I'll do this. > -Daniel > >> + */ >> +void igt_debugfs_read(const char *filename, char *buf, int buf_size) >> +{ >> + FILE *file; >> + size_t n_read; >> + >> + file = igt_debugfs_fopen(filename, "r"); >> + igt_assert(file); >> + >> + n_read = fread(buf, 1, buf_size - 1, file); >> + igt_assert(n_read > 0); >> + igt_assert(feof(file)); >> + >> + buf[n_read] = '\0'; >> + >> + igt_assert(fclose(file) == 0); >> +} >> + >> /* >> * Pipe CRC >> */ >> diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h >> index ece7148..a0bb75e 100644 >> --- a/lib/igt_debugfs.h >> +++ b/lib/igt_debugfs.h >> @@ -34,6 +34,7 @@ enum pipe; >> int igt_debugfs_open(const char *filename, int mode); >> FILE *igt_debugfs_fopen(const char *filename, >> const char *mode); >> +void igt_debugfs_read(const char *filename, char *buf, int buf_size); >> >> /* >> * Pipe CRC >> diff --git a/tests/kms_fbc_crc.c b/tests/kms_fbc_crc.c >> index f2a86a6..28cc165 100644 >> --- a/tests/kms_fbc_crc.c >> +++ b/tests/kms_fbc_crc.c >> @@ -215,14 +215,9 @@ static void fill_mmap_gtt(data_t *data, uint32_t handle, unsigned char color) >> >> static bool fbc_enabled(data_t *data) >> { >> - FILE *status; >> - char str[64] = {}; >> + char str[128] = {}; >> >> - status = igt_debugfs_fopen("i915_fbc_status", "r"); >> - igt_assert(status); >> - >> - igt_assert(fread(str, 1, sizeof(str) - 1, status) > 0); >> - fclose(status); >> + igt_debugfs_read("i915_fbc_status", str, sizeof(str)); >> return strstr(str, "FBC enabled") != NULL; >> } >> >> @@ -544,8 +539,7 @@ igt_main >> igt_skip_on_simulation(); >> >> igt_fixture { >> - char buf[64]; >> - FILE *status; >> + char buf[128]; >> >> data.drm_fd = drm_open_any_master(); >> kmstest_set_vt_graphics_mode(); >> @@ -554,11 +548,7 @@ igt_main >> >> igt_require_pipe_crc(); >> >> - status = igt_debugfs_fopen("i915_fbc_status", "r"); >> - igt_require_f(status, "No i915_fbc_status found\n"); >> - igt_assert_lt(0, fread(buf, 1, sizeof(buf), status)); >> - fclose(status); >> - buf[sizeof(buf) - 1] = '\0'; >> + igt_debugfs_read("i915_fbc_status", buf, sizeof(buf)); >> igt_require_f(!strstr(buf, "unsupported on this chipset"), >> "FBC not supported\n"); >> >> diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c >> index f075014..c201fde 100644 >> --- a/tests/kms_fbcon_fbt.c >> +++ b/tests/kms_fbcon_fbt.c >> @@ -86,28 +86,11 @@ static void teardown_drm(struct drm_info *drm) >> igt_assert(close(drm->fd) == 0); >> } >> >> -static void debugfs_read(const char *filename, char *buf, int buf_size) >> -{ >> - FILE *file; >> - size_t n_read; >> - >> - file = igt_debugfs_fopen(filename, "r"); >> - igt_assert(file); >> - >> - n_read = fread(buf, 1, buf_size - 1, file); >> - igt_assert(n_read > 0); >> - igt_assert(feof(file)); >> - >> - buf[n_read] = '\0'; >> - >> - igt_assert(fclose(file) == 0); >> -} >> - >> static bool fbc_supported_on_chipset(void) >> { >> char buf[128]; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> return !strstr(buf, "FBC unsupported on this chipset\n"); >> } >> >> @@ -120,7 +103,7 @@ static bool fbc_is_enabled(void) >> { >> char buf[128]; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> return strstr(buf, "FBC enabled\n"); >> } >> >> @@ -172,7 +155,7 @@ static bool psr_supported_on_chipset(void) >> { >> char buf[256]; >> >> - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> return strstr(buf, "Sink_Support: yes\n"); >> } >> >> @@ -185,7 +168,7 @@ static bool psr_is_enabled(void) >> { >> char buf[256]; >> >> - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> return strstr(buf, "\nActive: yes\n"); >> } >> >> diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c >> index e9be045..e162e91 100644 >> --- a/tests/kms_frontbuffer_tracking.c >> +++ b/tests/kms_frontbuffer_tracking.c >> @@ -556,28 +556,11 @@ static bool set_mode_for_params(struct modeset_params *params) >> return (rc == 0); >> } >> >> -static void debugfs_read(const char *filename, char *buf, int buf_size) >> -{ >> - FILE *file; >> - size_t n_read; >> - >> - file = igt_debugfs_fopen(filename, "r"); >> - igt_assert(file); >> - >> - n_read = fread(buf, 1, buf_size - 1, file); >> - igt_assert(n_read > 0); >> - igt_assert(feof(file)); >> - >> - buf[n_read] = '\0'; >> - >> - igt_assert(fclose(file) == 0); >> -} >> - >> static bool fbc_is_enabled(void) >> { >> char buf[128]; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> return strstr(buf, "FBC enabled\n"); >> } >> >> @@ -585,7 +568,7 @@ static bool psr_is_enabled(void) >> { >> char buf[256]; >> >> - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> return (strstr(buf, "\nActive: yes\n")); >> } >> >> @@ -596,7 +579,7 @@ static struct timespec fbc_get_last_action(void) >> char *action; >> ssize_t n_read; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> >> action = strstr(buf, "\nLast action:"); >> igt_assert(action); >> @@ -645,7 +628,7 @@ static void fbc_setup_last_action(void) >> char buf[128]; >> char *action; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> >> action = strstr(buf, "\nLast action:"); >> if (!action) { >> @@ -664,7 +647,7 @@ static bool fbc_is_compressing(void) >> { >> char buf[128]; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> return strstr(buf, "\nCompressing: yes\n") != NULL; >> } >> >> @@ -677,7 +660,7 @@ static void fbc_setup_compressing(void) >> { >> char buf[128]; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> >> if (strstr(buf, "\nCompressing:")) >> fbc.supports_compressing = true; >> @@ -1187,7 +1170,7 @@ static bool fbc_supported_on_chipset(void) >> { >> char buf[128]; >> >> - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); >> return !strstr(buf, "FBC unsupported on this chipset\n"); >> } >> >> @@ -1211,7 +1194,7 @@ static bool psr_sink_has_support(void) >> { >> char buf[256]; >> >> - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); >> return strstr(buf, "Sink_Support: yes\n"); >> } >> >> -- >> 2.1.4 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch
diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index a2c6fe2..bc1bb05 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -185,6 +185,33 @@ FILE *igt_debugfs_fopen(const char *filename, return fopen(buf, mode); } +/** + * igt_debugfs_read: + * @filename: file name + * @buf: buffer where the contents will be stored, allocated by the caller + * @buf_size: size of the buffer + * + * This function opens the debugfs file, reads it, stores the content in the + * provided buffer, then closes the file. Users should make sure that the buffer + * provided is big enough to fit the whole file, plus one byte. + */ +void igt_debugfs_read(const char *filename, char *buf, int buf_size) +{ + FILE *file; + size_t n_read; + + file = igt_debugfs_fopen(filename, "r"); + igt_assert(file); + + n_read = fread(buf, 1, buf_size - 1, file); + igt_assert(n_read > 0); + igt_assert(feof(file)); + + buf[n_read] = '\0'; + + igt_assert(fclose(file) == 0); +} + /* * Pipe CRC */ diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h index ece7148..a0bb75e 100644 --- a/lib/igt_debugfs.h +++ b/lib/igt_debugfs.h @@ -34,6 +34,7 @@ enum pipe; int igt_debugfs_open(const char *filename, int mode); FILE *igt_debugfs_fopen(const char *filename, const char *mode); +void igt_debugfs_read(const char *filename, char *buf, int buf_size); /* * Pipe CRC diff --git a/tests/kms_fbc_crc.c b/tests/kms_fbc_crc.c index f2a86a6..28cc165 100644 --- a/tests/kms_fbc_crc.c +++ b/tests/kms_fbc_crc.c @@ -215,14 +215,9 @@ static void fill_mmap_gtt(data_t *data, uint32_t handle, unsigned char color) static bool fbc_enabled(data_t *data) { - FILE *status; - char str[64] = {}; + char str[128] = {}; - status = igt_debugfs_fopen("i915_fbc_status", "r"); - igt_assert(status); - - igt_assert(fread(str, 1, sizeof(str) - 1, status) > 0); - fclose(status); + igt_debugfs_read("i915_fbc_status", str, sizeof(str)); return strstr(str, "FBC enabled") != NULL; } @@ -544,8 +539,7 @@ igt_main igt_skip_on_simulation(); igt_fixture { - char buf[64]; - FILE *status; + char buf[128]; data.drm_fd = drm_open_any_master(); kmstest_set_vt_graphics_mode(); @@ -554,11 +548,7 @@ igt_main igt_require_pipe_crc(); - status = igt_debugfs_fopen("i915_fbc_status", "r"); - igt_require_f(status, "No i915_fbc_status found\n"); - igt_assert_lt(0, fread(buf, 1, sizeof(buf), status)); - fclose(status); - buf[sizeof(buf) - 1] = '\0'; + igt_debugfs_read("i915_fbc_status", buf, sizeof(buf)); igt_require_f(!strstr(buf, "unsupported on this chipset"), "FBC not supported\n"); diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c index f075014..c201fde 100644 --- a/tests/kms_fbcon_fbt.c +++ b/tests/kms_fbcon_fbt.c @@ -86,28 +86,11 @@ static void teardown_drm(struct drm_info *drm) igt_assert(close(drm->fd) == 0); } -static void debugfs_read(const char *filename, char *buf, int buf_size) -{ - FILE *file; - size_t n_read; - - file = igt_debugfs_fopen(filename, "r"); - igt_assert(file); - - n_read = fread(buf, 1, buf_size - 1, file); - igt_assert(n_read > 0); - igt_assert(feof(file)); - - buf[n_read] = '\0'; - - igt_assert(fclose(file) == 0); -} - static bool fbc_supported_on_chipset(void) { char buf[128]; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); return !strstr(buf, "FBC unsupported on this chipset\n"); } @@ -120,7 +103,7 @@ static bool fbc_is_enabled(void) { char buf[128]; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); return strstr(buf, "FBC enabled\n"); } @@ -172,7 +155,7 @@ static bool psr_supported_on_chipset(void) { char buf[256]; - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); return strstr(buf, "Sink_Support: yes\n"); } @@ -185,7 +168,7 @@ static bool psr_is_enabled(void) { char buf[256]; - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); return strstr(buf, "\nActive: yes\n"); } diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c index e9be045..e162e91 100644 --- a/tests/kms_frontbuffer_tracking.c +++ b/tests/kms_frontbuffer_tracking.c @@ -556,28 +556,11 @@ static bool set_mode_for_params(struct modeset_params *params) return (rc == 0); } -static void debugfs_read(const char *filename, char *buf, int buf_size) -{ - FILE *file; - size_t n_read; - - file = igt_debugfs_fopen(filename, "r"); - igt_assert(file); - - n_read = fread(buf, 1, buf_size - 1, file); - igt_assert(n_read > 0); - igt_assert(feof(file)); - - buf[n_read] = '\0'; - - igt_assert(fclose(file) == 0); -} - static bool fbc_is_enabled(void) { char buf[128]; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); return strstr(buf, "FBC enabled\n"); } @@ -585,7 +568,7 @@ static bool psr_is_enabled(void) { char buf[256]; - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); return (strstr(buf, "\nActive: yes\n")); } @@ -596,7 +579,7 @@ static struct timespec fbc_get_last_action(void) char *action; ssize_t n_read; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); action = strstr(buf, "\nLast action:"); igt_assert(action); @@ -645,7 +628,7 @@ static void fbc_setup_last_action(void) char buf[128]; char *action; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); action = strstr(buf, "\nLast action:"); if (!action) { @@ -664,7 +647,7 @@ static bool fbc_is_compressing(void) { char buf[128]; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); return strstr(buf, "\nCompressing: yes\n") != NULL; } @@ -677,7 +660,7 @@ static void fbc_setup_compressing(void) { char buf[128]; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); if (strstr(buf, "\nCompressing:")) fbc.supports_compressing = true; @@ -1187,7 +1170,7 @@ static bool fbc_supported_on_chipset(void) { char buf[128]; - debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_fbc_status", buf, ARRAY_SIZE(buf)); return !strstr(buf, "FBC unsupported on this chipset\n"); } @@ -1211,7 +1194,7 @@ static bool psr_sink_has_support(void) { char buf[256]; - debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); + igt_debugfs_read("i915_edp_psr_status", buf, ARRAY_SIZE(buf)); return strstr(buf, "Sink_Support: yes\n"); }