root/opal/mca/pmix/pmix4x/pmix/test/test_internal.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. release_cb
  2. get_cb
  3. test_internal

   1 /*
   2  * Copyright (c) 2017      Mellanox Technologies, Inc.
   3  *                         All rights reserved.
   4  * Copyright (c) 2017      Intel, Inc. All rights reserved.
   5  * $COPYRIGHT$
   6  *
   7  * Additional copyrights may follow
   8  *
   9  * $HEADER$
  10  *
  11  */
  12 
  13 #include "test_internal.h"
  14 
  15 static void release_cb(pmix_status_t status, void *cbdata)
  16 {
  17     int *ptr = (int*)cbdata;
  18     *ptr = 0;
  19 }
  20 
  21 static void get_cb(pmix_status_t status, pmix_value_t *kv, void *cbdata)
  22 {
  23     get_cbdata *cb = (get_cbdata*)cbdata;
  24     if (PMIX_SUCCESS == status) {
  25         pmix_value_xfer(cb->kv, kv);
  26     }
  27     cb->in_progress = 0;
  28     cb->status = status;
  29 }
  30 
  31 int test_internal(char *my_nspace, pmix_rank_t my_rank, test_params params) {
  32     int idx;
  33     char sval[PMIX_MAX_NSLEN];
  34     char key[PMIX_MAX_KEYLEN];
  35     pmix_value_t value;
  36     pmix_proc_t proc;
  37     pmix_status_t rc;
  38 
  39     PMIX_PROC_CONSTRUCT(&proc);
  40     (void)strncpy(proc.nspace, my_nspace, PMIX_MAX_NSLEN);
  41     proc.rank = my_rank;
  42 
  43     for (idx = 0; idx < params.test_internal; idx++) {
  44         memset(sval, 0, PMIX_MAX_NSLEN);
  45         sprintf(sval, "test_internal:%s:%d:%d", my_nspace, my_rank, idx);
  46 
  47         SET_KEY(key, 0, idx, 1);
  48         value.type = PMIX_STRING;
  49         value.data.string = sval;
  50         if (PMIX_SUCCESS != (rc = PMIx_Store_internal(&proc, key, &value))) {
  51             TEST_ERROR(("%s:%d: PMIx_Store_internal failed: %d", my_nspace, my_rank, rc));
  52             PMIX_PROC_DESTRUCT(&proc);
  53             return PMIX_ERROR;
  54         }
  55     }
  56 
  57     /* Submit the data */
  58     if (PMIX_SUCCESS != (rc = PMIx_Commit())) {
  59         TEST_ERROR(("%s:%d: PMIx_Commit failed: %d", my_nspace, my_rank, rc));
  60         PMIX_PROC_DESTRUCT(&proc);
  61         return PMIX_ERROR;
  62     }
  63 
  64     proc.rank = PMIX_RANK_WILDCARD;
  65     FENCE(1, 1, (&proc), 1);
  66     if (PMIX_SUCCESS != rc) {
  67         TEST_ERROR(("%s:%d: PMIx_Fence failed: %d", my_nspace, my_rank, rc));
  68         PMIX_PROC_DESTRUCT(&proc);
  69         return rc;
  70     }
  71 
  72     for (idx = 0; idx < params.test_internal; idx++) {
  73         memset(sval, 0, PMIX_MAX_NSLEN);
  74         sprintf(sval, "test_internal:%s:%d:%d", my_nspace, my_rank, idx);
  75 
  76         GET(string, sval, my_nspace, my_rank, 0, idx, 1, 1, 0);
  77         if (PMIX_SUCCESS != rc) {
  78             TEST_ERROR(("%s:%d: PMIx_Get of remote key on local proc", my_nspace, my_rank));
  79             PMIX_PROC_DESTRUCT(&proc);
  80             return PMIX_ERROR;
  81         }
  82     }
  83 
  84     PMIX_PROC_DESTRUCT(&proc);
  85     return PMIX_SUCCESS;
  86 }

/* [<][>][^][v][top][bottom][index][help] */