On 2015-07-21 14:32, Stuart Haslam wrote: > The odp_cpumask_def_worker() and odp_cpumask_def_control() APIs are used > to populate a mask with the CPUs available for running threads of the > same type. This does not necessarily mean those CPUs are dedicated to > running threads of that type, on a particular platform the same CPU may > appear in both the control and worker set. > > The test now verifies that the APIs; > > - populate the mask with at least 1 CPU > - return a value that matches the number of CPUs set in the mask > - don't return a value greater than the total available CPUsa > - don't return a value greater than the requested number of CPUs > > Signed-off-by: Stuart Haslam <[email protected]>
Reviewed-by: Christophe Milard <[email protected]> > --- > test/validation/cpumask/cpumask.c | 44 > +++++++++++++++++++++++++++++---------- > 1 file changed, 33 insertions(+), 11 deletions(-) > > diff --git a/test/validation/cpumask/cpumask.c > b/test/validation/cpumask/cpumask.c > index 933ee97..d72569e 100644 > --- a/test/validation/cpumask/cpumask.c > +++ b/test/validation/cpumask/cpumask.c > @@ -476,39 +476,61 @@ static void cpumask_test_odp_cpumask_setall(void) > > static void cpumask_test_odp_cpumask_def_control(void) > { > - int num; > - int max_cpus = mask_capacity(); > + unsigned num; > + unsigned mask_count; > + unsigned max_cpus = mask_capacity(); > odp_cpumask_t mask; > > num = odp_cpumask_def_control(&mask, ALL_AVAILABLE); > + mask_count = odp_cpumask_count(&mask); > > - CU_ASSERT(num >= 0); > + CU_ASSERT(mask_count == num); > + CU_ASSERT(num > 0); > CU_ASSERT(num <= max_cpus); > } > > static void cpumask_test_odp_cpumask_def_worker(void) > { > - int num; > - int max_cpus = mask_capacity(); > + unsigned num; > + unsigned mask_count; > + unsigned max_cpus = mask_capacity(); > odp_cpumask_t mask; > > num = odp_cpumask_def_worker(&mask, ALL_AVAILABLE); > + mask_count = odp_cpumask_count(&mask); > > - CU_ASSERT(num >= 0); > + CU_ASSERT(mask_count == num); > + CU_ASSERT(num > 0); > CU_ASSERT(num <= max_cpus); > } > > static void cpumask_test_odp_cpumask_def(void) > { > - int num_worker; > - int num_control; > - int max_cpus = mask_capacity(); > + unsigned mask_count; > + unsigned num_worker; > + unsigned num_control; > + unsigned max_cpus = mask_capacity(); > + unsigned available_cpus = odp_cpu_count(); > + unsigned requested_cpus; > odp_cpumask_t mask; > > - num_worker = odp_cpumask_def_worker(&mask, max_cpus - 1); > + CU_ASSERT(available_cpus <= max_cpus); > + > + if (available_cpus > 1) > + requested_cpus = available_cpus - 1; > + else > + requested_cpus = available_cpus; > + num_worker = odp_cpumask_def_worker(&mask, requested_cpus); > + mask_count = odp_cpumask_count(&mask); > + CU_ASSERT(mask_count == num_worker); > + > num_control = odp_cpumask_def_control(&mask, 1); > + mask_count = odp_cpumask_count(&mask); > + CU_ASSERT(mask_count == num_control); > > - CU_ASSERT((num_control + num_worker) <= max_cpus); > + CU_ASSERT(num_control == 1); > + CU_ASSERT(num_worker <= available_cpus); > + CU_ASSERT(num_worker > 0); > } > > static CU_TestInfo cpumask_suite[] = { > -- > 2.1.1 > > _______________________________________________ > lng-odp mailing list > [email protected] > https://lists.linaro.org/mailman/listinfo/lng-odp _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
