Discussion:
[Linuxwacom-devel] [PATCH] test: Update test_normalize_pressure to work with maxCurve
Jason Gerecke
2017-06-19 16:35:27 UTC
Permalink
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 <***@wacom.com>
---
test/wacom-tests.c | 43 +++++++++++++++++++++++++------------------
1 file 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);
--
2.13.1
Peter Hutterer
2017-06-20 01:04:06 UTC
Permalink
Post by Jason Gerecke
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)
Reviewed-by: Peter Hutterer <***@who-t.net>

Cheers,
Peter
Post by Jason Gerecke
---
test/wacom-tests.c | 43 +++++++++++++++++++++++++------------------
1 file 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);
--
2.13.1
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxwacom-devel mailing list
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
Loading...