diff options
author | Jason Gerecke <killertofu@gmail.com> | 2017-06-16 14:50:19 -0700 |
---|---|---|
committer | Jason Gerecke <killertofu@gmail.com> | 2017-06-19 09:32:18 -0700 |
commit | 7bfbf8ed5a82e78a8235275c15e8934b02879f37 (patch) | |
tree | dce10e582a6279ab60903e7dc9c3026ad245edd4 /test | |
parent | d958ab79d21b57141415650daac88f9369a1c861 (diff) | |
download | xf86-input-wacom-7bfbf8ed5a82e78a8235275c15e8934b02879f37.tar.gz |
test: Update test_normalize_pressure to work with maxCurve
Commit d958ab79d2 changes the driver's pressure normalization functions
to use a variable "maxCurve" which defines the upper limit of pressure
values to be emitted by the driver, rather than using FILTER_PRESSURE_RES
directly. The tests were never updated to take this into account and
fail due to maxCurve never being set.
This patch has the normalize_pressure test set the value of maxCurve.
While we're at it, we have the test verify that multiple values of
maxCurve work as expected.
Fixes: d958ab79d2 (Introduce "Pressure2K" config option for incompatible software)
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/wacom-tests.c | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/test/wacom-tests.c b/test/wacom-tests.c index 486454d..80ce5bb 100644 --- a/test/wacom-tests.c +++ b/test/wacom-tests.c @@ -179,8 +179,9 @@ test_normalize_pressure(void) InputInfoRec pInfo = {0}; WacomDeviceRec priv = {0}; WacomCommonRec common = {0}; + int normalized_max = 65536; int pressure, prev_pressure = -1; - int i, j; + int i, j, k; priv.common = &common; priv.pInfo = &pInfo; @@ -189,33 +190,39 @@ test_normalize_pressure(void) priv.minPressure = 0; - /* Some random loop to check various maxZ pressure values. Starting at - * 1, because if wcmMaxZ is 0 we have other problems. */ - for (j = 1; j <= 256; j += 17) - { - common.wcmMaxZ = j; - prev_pressure = -1; + /* Check various maxCurve values */ + for (k = 512; k <= normalized_max; k += 239) { + priv.maxCurve = k; - for (i = 0; i <= common.wcmMaxZ; i++) + /* Some random loop to check various maxZ pressure values. Starting at + * 1, because if wcmMaxZ is 0 we have other problems. */ + for (j = 1; j <= 256; j += 17) { - pressure = i; + common.wcmMaxZ = j; + prev_pressure = -1; - pressure = normalizePressure(&priv, pressure); - assert(pressure >= 0); - assert(pressure <= FILTER_PRESSURE_RES); + for (i = 0; i <= common.wcmMaxZ; i++) + { + pressure = i; - /* we count up, so assume normalised pressure goes up too */ - assert(prev_pressure < pressure); - prev_pressure = pressure; - } + pressure = normalizePressure(&priv, pressure); + assert(pressure >= 0); + assert(pressure <= k); - assert(pressure == FILTER_PRESSURE_RES); + /* we count up, so assume normalised pressure goes up too */ + assert(prev_pressure < pressure); + prev_pressure = pressure; + } + + assert(pressure == k); + } } /* If minPressure is higher than ds->pressure, normalizePressure takes * minPressure and ignores actual pressure. This would be a bug in the * driver code, but we might as well test for it. */ priv.minPressure = 10; + priv.maxCurve = normalized_max; prev_pressure = normalizePressure(&priv, 0); for (i = 0; i < priv.minPressure; i++) @@ -224,7 +231,7 @@ test_normalize_pressure(void) pressure = normalizePressure(&priv, i); assert(pressure >= 0); - assert(pressure < FILTER_PRESSURE_RES); + assert(pressure < normalized_max); /* we count up, so assume normalised pressure goes up too */ assert(prev_pressure == pressure); |