This one fails to apply to api-next:

Applying: validation: atomic: added max and min tests
error: test/validation/synchronizers/synchronizers.c: does not exist in index
error: test/validation/synchronizers/synchronizers.h: does not exist in index
Patch failed at 0008 validation: atomic: added max and min tests


These files exist in master but not in api-next. git claims my repo is
up-to-date.

$ git status

On branch api-next
Your branch is up-to-date with 'origin/api-next'.


I don't think api-next has removed these files and I think they were
there last week when I reviewed v2 of this patch set. And api-next
ought to be quite up-to-date with master, there is a recent commit

*   0e9d225 :2016-01-25 - Merge branch 'master' into api-next <Maxim Uvarov>

Have I done something wrong? (probably)





On 20 January 2016 at 10:19, Petri Savolainen <petri.savolai...@nokia.com>
wrote:

> Added validation tests for atomic max and min operations.
> Results validation is a simple compare, since absolute min/max
> values depend on the number of threads.
>
> Signed-off-by: Petri Savolainen <petri.savolai...@nokia.com>
> ---
>  test/validation/synchronizers/synchronizers.c | 111
> ++++++++++++++++++++++++--
>  test/validation/synchronizers/synchronizers.h |   1 +
>  2 files changed, 105 insertions(+), 7 deletions(-)
>
> diff --git a/test/validation/synchronizers/synchronizers.c
> b/test/validation/synchronizers/synchronizers.c
> index 0302069..1454264 100644
> --- a/test/validation/synchronizers/synchronizers.c
> +++ b/test/validation/synchronizers/synchronizers.c
> @@ -33,8 +33,14 @@
>
>  #define UNUSED                 __attribute__((__unused__))
>
> +#define CHECK_MAX_MIN          (1 << 0)
> +
>  static odp_atomic_u32_t a32u;
>  static odp_atomic_u64_t a64u;
> +static odp_atomic_u32_t a32u_min;
> +static odp_atomic_u32_t a32u_max;
> +static odp_atomic_u64_t a64u_min;
> +static odp_atomic_u64_t a64u_max;
>
>  static volatile int temp_result;
>
> @@ -1202,6 +1208,50 @@ static void test_atomic_fetch_sub_64(void)
>                 odp_atomic_fetch_sub_u64(&a64u, ADD_SUB_CNT);
>  }
>
> +static void test_atomic_min_32(void)
> +{
> +       int i;
> +       uint32_t tmp;
> +
> +       for (i = 0; i < CNT; i++) {
> +               tmp = odp_atomic_fetch_dec_u32(&a32u);
> +               odp_atomic_min_u32(&a32u_min, tmp);
> +       }
> +}
> +
> +static void test_atomic_min_64(void)
> +{
> +       int i;
> +       uint64_t tmp;
> +
> +       for (i = 0; i < CNT; i++) {
> +               tmp = odp_atomic_fetch_dec_u64(&a64u);
> +               odp_atomic_min_u64(&a64u_min, tmp);
> +       }
> +}
> +
> +static void test_atomic_max_32(void)
> +{
> +       int i;
> +       uint32_t tmp;
> +
> +       for (i = 0; i < CNT; i++) {
> +               tmp = odp_atomic_fetch_inc_u32(&a32u);
> +               odp_atomic_max_u32(&a32u_max, tmp);
> +       }
> +}
> +
> +static void test_atomic_max_64(void)
> +{
> +       int i;
> +       uint64_t tmp;
> +
> +       for (i = 0; i < CNT; i++) {
> +               tmp = odp_atomic_fetch_inc_u64(&a64u);
> +               odp_atomic_max_u64(&a64u_max, tmp);
> +       }
> +}
> +
>  static void test_atomic_inc_dec_32(void)
>  {
>         test_atomic_inc_32();
> @@ -1250,22 +1300,50 @@ static void test_atomic_fetch_add_sub_64(void)
>         test_atomic_fetch_sub_64();
>  }
>
> +static void test_atomic_max_min_32(void)
> +{
> +       test_atomic_max_32();
> +       test_atomic_min_32();
> +}
> +
> +static void test_atomic_max_min_64(void)
> +{
> +       test_atomic_max_64();
> +       test_atomic_min_64();
> +}
> +
>  static void test_atomic_init(void)
>  {
>         odp_atomic_init_u32(&a32u, 0);
>         odp_atomic_init_u64(&a64u, 0);
> +       odp_atomic_init_u32(&a32u_min, 0);
> +       odp_atomic_init_u32(&a32u_max, 0);
> +       odp_atomic_init_u64(&a64u_min, 0);
> +       odp_atomic_init_u64(&a64u_max, 0);
>  }
>
>  static void test_atomic_store(void)
>  {
>         odp_atomic_store_u32(&a32u, U32_INIT_VAL);
>         odp_atomic_store_u64(&a64u, U64_INIT_VAL);
> +       odp_atomic_store_u32(&a32u_min, U32_INIT_VAL);
> +       odp_atomic_store_u32(&a32u_max, U32_INIT_VAL);
> +       odp_atomic_store_u64(&a64u_min, U64_INIT_VAL);
> +       odp_atomic_store_u64(&a64u_max, U64_INIT_VAL);
>  }
>
> -static void test_atomic_validate(void)
> +static void test_atomic_validate(int check)
>  {
>         CU_ASSERT(U32_INIT_VAL == odp_atomic_load_u32(&a32u));
>         CU_ASSERT(U64_INIT_VAL == odp_atomic_load_u64(&a64u));
> +
> +       if (check & CHECK_MAX_MIN) {
> +               CU_ASSERT(odp_atomic_load_u32(&a32u_max) >
> +                         odp_atomic_load_u32(&a32u_min));
> +
> +               CU_ASSERT(odp_atomic_load_u64(&a64u_max) >
> +                         odp_atomic_load_u64(&a64u_min));
> +       }
>  }
>
>  /* Barrier tests */
> @@ -1574,7 +1652,20 @@ static void *test_atomic_fetch_add_sub_thread(void
> *arg UNUSED)
>         return NULL;
>  }
>
> -static void test_atomic_functional(void *func_ptr(void *))
> +static void *test_atomic_max_min_thread(void *arg UNUSED)
> +{
> +       per_thread_mem_t *per_thread_mem;
> +
> +       per_thread_mem = thread_init();
> +       test_atomic_max_min_32();
> +       test_atomic_max_min_64();
> +
> +       thread_finalize(per_thread_mem);
> +
> +       return NULL;
> +}
> +
> +static void test_atomic_functional(void *func_ptr(void *), int check)
>  {
>         pthrd_arg arg;
>
> @@ -1583,27 +1674,32 @@ static void test_atomic_functional(void
> *func_ptr(void *))
>         test_atomic_store();
>         odp_cunit_thread_create(func_ptr, &arg);
>         odp_cunit_thread_exit(&arg);
> -       test_atomic_validate();
> +       test_atomic_validate(check);
>  }
>
>  void synchronizers_test_atomic_inc_dec(void)
>  {
> -       test_atomic_functional(test_atomic_inc_dec_thread);
> +       test_atomic_functional(test_atomic_inc_dec_thread, 0);
>  }
>
>  void synchronizers_test_atomic_add_sub(void)
>  {
> -       test_atomic_functional(test_atomic_add_sub_thread);
> +       test_atomic_functional(test_atomic_add_sub_thread, 0);
>  }
>
>  void synchronizers_test_atomic_fetch_inc_dec(void)
>  {
> -       test_atomic_functional(test_atomic_fetch_inc_dec_thread);
> +       test_atomic_functional(test_atomic_fetch_inc_dec_thread, 0);
>  }
>
>  void synchronizers_test_atomic_fetch_add_sub(void)
>  {
> -       test_atomic_functional(test_atomic_fetch_add_sub_thread);
> +       test_atomic_functional(test_atomic_fetch_add_sub_thread, 0);
> +}
> +
> +void synchronizers_test_atomic_max_min(void)
> +{
> +       test_atomic_functional(test_atomic_max_min_thread, CHECK_MAX_MIN);
>  }
>
>  odp_testinfo_t synchronizers_suite_atomic[] = {
> @@ -1611,6 +1707,7 @@ odp_testinfo_t synchronizers_suite_atomic[] = {
>         ODP_TEST_INFO(synchronizers_test_atomic_add_sub),
>         ODP_TEST_INFO(synchronizers_test_atomic_fetch_inc_dec),
>         ODP_TEST_INFO(synchronizers_test_atomic_fetch_add_sub),
> +       ODP_TEST_INFO(synchronizers_test_atomic_max_min),
>         ODP_TEST_INFO_NULL,
>  };
>
> diff --git a/test/validation/synchronizers/synchronizers.h
> b/test/validation/synchronizers/synchronizers.h
> index ad8db0b..b7531a0 100644
> --- a/test/validation/synchronizers/synchronizers.h
> +++ b/test/validation/synchronizers/synchronizers.h
> @@ -28,6 +28,7 @@ void synchronizers_test_atomic_inc_dec(void);
>  void synchronizers_test_atomic_add_sub(void);
>  void synchronizers_test_atomic_fetch_inc_dec(void);
>  void synchronizers_test_atomic_fetch_add_sub(void);
> +void synchronizers_test_atomic_max_min(void);
>
>  /* test arrays: */
>  extern odp_testinfo_t synchronizers_suite_barrier[];
> --
> 2.6.3
>
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to