pm_rps: Assert that valid sysfs writes return success

do_writeval now always checks the return value, whether we expect
success or a specific error. Also add new macro writeval_inval to
simplify repeated use of do_writeval to test for EINVAL return code.

Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Jeff McGee 2014-01-10 15:12:31 -06:00 committed by Daniel Vetter
parent 265efbb2c4
commit 44b5d7b330

View File

@ -79,11 +79,18 @@ static int do_writeval(FILE *filp, int val, int lerrno)
int ret; int ret;
rewind(filp); rewind(filp);
ret = fprintf(filp, "%d", val); ret = fprintf(filp, "%d", val);
if (ret && lerrno) if (lerrno) {
igt_assert(errno = lerrno); /* Expecting specific error */
igt_assert(ret == EOF && errno == lerrno);
} else {
/* Expecting no error */
igt_assert(ret != EOF);
}
return ret; return ret;
} }
#define writeval(filp, val) do_writeval(filp, val, 0) #define writeval(filp, val) do_writeval(filp, val, 0)
#define writeval_inval(filp, val) do_writeval(filp, val, EINVAL)
#define fcur (readval(stuff[CUR].filp)) #define fcur (readval(stuff[CUR].filp))
#define fmin (readval(stuff[MIN].filp)) #define fmin (readval(stuff[MIN].filp))
@ -170,16 +177,16 @@ igt_simple_main
checkit(); checkit();
/* And some errors */ /* And some errors */
writeval(stuff[MIN].filp, frpn - 1); writeval_inval(stuff[MIN].filp, frpn - 1);
writeval(stuff[MAX].filp, frp0 + 1000); writeval_inval(stuff[MAX].filp, frp0 + 1000);
checkit(); checkit();
writeval(stuff[MIN].filp, fmax + 1000); writeval_inval(stuff[MIN].filp, fmax + 1000);
writeval(stuff[MAX].filp, fmin - 1); writeval_inval(stuff[MAX].filp, fmin - 1);
checkit(); checkit();
do_writeval(stuff[MIN].filp, 0x11111110, EINVAL); writeval_inval(stuff[MIN].filp, 0x11111110);
do_writeval(stuff[MAX].filp, 0, EINVAL); writeval_inval(stuff[MAX].filp, 0);
writeval(stuff[MIN].filp, origmin); writeval(stuff[MIN].filp, origmin);
writeval(stuff[MAX].filp, origmax); writeval(stuff[MAX].filp, origmax);