root/test/dss/dss_cmp.c

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

DEFINITIONS

This source file includes following definitions.
  1. main
  2. test1
  3. test2
  4. test3
  5. test4
  6. test5
  7. test6
  8. test7
  9. test8
  10. test9
  11. test11
  12. test12
  13. test13

   1 /*
   2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2005 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
   9  *                         University of Stuttgart.  All rights reserved.
  10  * Copyright (c) 2004-2005 The Regents of the University of California.
  11  *                         All rights reserved.
  12  * Copyright (c) 2016      Research Organization for Information Science
  13  *                         and Technology (RIST). All rights reserved.
  14  * $COPYRIGHT$
  15  *
  16  * Additional copyrights may follow
  17  *
  18  * $HEADER$
  19  */
  20 
  21 #include "opal_config.h"
  22 
  23 
  24 #include <stdio.h>
  25 #include <string.h>
  26 #include <stdlib.h>
  27 #ifdef HAVE_SYS_PARAM_H
  28 #include <sys/param.h>
  29 #endif
  30 #ifdef HAVE_NETINET_IN_H
  31 #include <netinet/in.h>
  32 #endif
  33 
  34 #include "opal/runtime/opal.h"
  35 
  36 #include "opal/dss/dss.h"
  37 
  38 #define NUM_ITERS 3
  39 #define NUM_ELEMS 10
  40 
  41 static bool test1(void);        /* verify different buffer inits */
  42 static bool test2(void);        /* verify int16 */
  43 static bool test3(void);      /* verify int */
  44 static bool test4(void);        /* verify int32 */
  45 static bool test5(void);      /* verify int64 */
  46 static bool test6(void);        /* verify string */
  47 static bool test7(void);        /* verify BOOL */
  48 static bool test8(void);        /* verify OBJECT */
  49 static bool test9(void);        /* verify composite (multiple types and element counts) */
  50 static bool test11(void);        /* verify size_t */
  51 static bool test12(void);        /* verify pid_t */
  52 static bool test13(void);        /* verify pid_t */
  53 
  54 static FILE *test_out;
  55 
  56 
  57 int main (int argc, char* argv[])
  58 {
  59     int ret = 0;
  60 
  61     opal_init(&argc, &argv);
  62 
  63     test_out = stderr;
  64 
  65     /* run the tests */
  66 
  67     fprintf(test_out, "executing test1\n");
  68     if (test1()) {
  69         fprintf(test_out, "Test1 succeeded\n");
  70     } else {
  71       fprintf(test_out, "Test1 failed\n");
  72       ret = 1;
  73     }
  74 
  75     fprintf(test_out, "executing test2\n");
  76     if (test2()) {
  77         fprintf(test_out, "Test2 succeeded\n");
  78     } else {
  79       fprintf(test_out, "Test2 failed\n");
  80       ret = 2;
  81     }
  82 
  83     fprintf(test_out, "executing test3\n");
  84     if (test3()) {
  85         fprintf(test_out, "Test3 succeeded\n");
  86     } else {
  87       fprintf(test_out, "Test3 failed\n");
  88       ret = 3;
  89     }
  90 
  91     fprintf(test_out, "executing test4\n");
  92     if (test4()) {
  93         fprintf(test_out, "Test4 succeeded\n");
  94     } else {
  95       fprintf(test_out, "Test4 failed\n");
  96       ret = 4;
  97     }
  98 
  99     fprintf(test_out, "executing test5\n");
 100     if (test5()) {
 101         fprintf(test_out, "Test5 succeeded\n");
 102     } else {
 103       fprintf(test_out, "Test5 failed\n");
 104       ret = 5;
 105     }
 106 
 107     fprintf(test_out, "executing test6\n");
 108     if (test6()) {
 109         fprintf(test_out, "Test6 succeeded\n");
 110     } else {
 111       fprintf(test_out, "Test6 failed\n");
 112       ret = 6;
 113     }
 114 
 115     fprintf(test_out, "executing test7\n");
 116     if (test7()) {
 117         fprintf(test_out, "Test7 succeeded\n");
 118     } else {
 119       fprintf(test_out, "Test7 failed\n");
 120       ret = 7;
 121     }
 122 
 123     fprintf(test_out, "executing test8\n");
 124     if (test8()) {
 125         fprintf(test_out, "Test8 succeeded\n");
 126     } else {
 127       fprintf(test_out, "Test8 failed\n");
 128       ret = 8;
 129     }
 130 
 131     fprintf(test_out, "executing test9\n");
 132     if (test9()) {
 133         fprintf(test_out, "Test9 succeeded\n");
 134     } else {
 135       fprintf(test_out, "opal_dss test9 failed\n");
 136       ret = 9;
 137     }
 138 
 139     fprintf(test_out, "executing test11\n");
 140     if (test11()) {
 141         fprintf(test_out, "Test11 succeeded\n");
 142     } else {
 143       fprintf(test_out, "opal_dss test11 failed\n");
 144       ret = 11;
 145     }
 146 
 147     fprintf(test_out, "executing test12\n");
 148     if (test12()) {
 149         fprintf(test_out, "Test12 succeeded\n");
 150     } else {
 151       fprintf(test_out, "opal_dss test12 failed\n");
 152       ret = 12;
 153     }
 154 
 155     fprintf(test_out, "executing test13\n");
 156     if (test13()) {
 157         fprintf(test_out, "Test13 succeeded\n");
 158     } else {
 159         fprintf(test_out, "opal_dss test13 failed\n");
 160         ret = 13;
 161     }
 162 
 163     fclose(test_out);
 164 
 165     opal_finalize();
 166 
 167     return ret;
 168 }
 169 
 170 /*
 171  * INT8
 172  */
 173 static bool test1(void)
 174 {
 175     int8_t v1, v2=100;
 176     uint8_t u1, u2=150;
 177     opal_data_type_t type=OPAL_INT8, utype=OPAL_UINT8;
 178 
 179     v1 = v2;
 180     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 181         fprintf(test_out, "opal_dss.compare failed for signed equality\n");
 182         return(false);
 183     }
 184 
 185     v1 = v2 + 1;
 186     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 187         fprintf(test_out, "opal_dss.compare failed for signed value1 greater\n");
 188         return(false);
 189     }
 190 
 191     v1 = v2 - 1;
 192     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 193         fprintf(test_out, "opal_dss.compare failed for signed value2 greater\n");
 194         return(false);
 195     }
 196 
 197     u1 = u2;
 198     if (OPAL_EQUAL != opal_dss.compare(&u1, &u2, utype)) {
 199         fprintf(test_out, "opal_dss.compare failed for unsigned equality\n");
 200         return(false);
 201     }
 202 
 203     u1 = u2 + 1;
 204     if (OPAL_VALUE1_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 205         fprintf(test_out, "opal_dss.compare failed for unsigned value1 greater\n");
 206         return(false);
 207     }
 208 
 209     u1 = u2 - 1;
 210     if (OPAL_VALUE2_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 211         fprintf(test_out, "opal_dss.compare failed for unsigned value2 greater\n");
 212         return(false);
 213     }
 214 
 215     return (true);
 216 }
 217 
 218 /*
 219  * INT16
 220  */
 221 static bool test2(void)
 222 {
 223     int16_t v1, v2=100;
 224     uint16_t u1, u2=150;
 225     opal_data_type_t type=OPAL_INT16, utype=OPAL_UINT16;
 226 
 227     v1 = v2;
 228     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 229         fprintf(test_out, "opal_dss.compare failed for signed equality\n");
 230         return(false);
 231     }
 232 
 233     v1 = v2 + 1;
 234     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 235         fprintf(test_out, "opal_dss.compare failed for signed value1 greater\n");
 236         return(false);
 237     }
 238 
 239     v1 = v2 - 1;
 240     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 241         fprintf(test_out, "opal_dss.compare failed for signed value2 greater\n");
 242         return(false);
 243     }
 244 
 245     u1 = u2;
 246     if (OPAL_EQUAL != opal_dss.compare(&u1, &u2, utype)) {
 247         fprintf(test_out, "opal_dss.compare failed for unsigned equality\n");
 248         return(false);
 249     }
 250 
 251     u1 = u2 + 1;
 252     if (OPAL_VALUE1_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 253         fprintf(test_out, "opal_dss.compare failed for unsigned value1 greater\n");
 254         return(false);
 255     }
 256 
 257     u1 = u2 - 1;
 258     if (OPAL_VALUE2_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 259         fprintf(test_out, "opal_dss.compare failed for unsigned value2 greater\n");
 260         return(false);
 261     }
 262 
 263     return (true);
 264 }
 265 
 266 /*
 267  * INT32
 268  */
 269 static bool test3(void)
 270 {
 271     int32_t v1, v2=100;
 272     uint32_t u1, u2=150;
 273     opal_data_type_t type=OPAL_INT32, utype=OPAL_UINT32;
 274 
 275     v1 = v2;
 276     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 277         fprintf(test_out, "opal_dss.compare failed for signed equality\n");
 278         return(false);
 279     }
 280 
 281     v1 = v2 + 1;
 282     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 283         fprintf(test_out, "opal_dss.compare failed for signed value1 greater\n");
 284         return(false);
 285     }
 286 
 287     v1 = v2 - 1;
 288     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 289         fprintf(test_out, "opal_dss.compare failed for signed value2 greater\n");
 290         return(false);
 291     }
 292 
 293     u1 = u2;
 294     if (OPAL_EQUAL != opal_dss.compare(&u1, &u2, utype)) {
 295         fprintf(test_out, "opal_dss.compare failed for unsigned equality\n");
 296         return(false);
 297     }
 298 
 299     u1 = u2 + 1;
 300     if (OPAL_VALUE1_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 301         fprintf(test_out, "opal_dss.compare failed for unsigned value1 greater\n");
 302         return(false);
 303     }
 304 
 305     u1 = u2 - 1;
 306     if (OPAL_VALUE2_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 307         fprintf(test_out, "opal_dss.compare failed for unsigned value2 greater\n");
 308         return(false);
 309     }
 310 
 311     return (true);
 312 }
 313 
 314 /*
 315  * INT64
 316  */
 317 static bool test4(void)
 318 {
 319     int64_t v1, v2=100;
 320     uint64_t u1, u2=150;
 321     opal_data_type_t type=OPAL_INT64, utype=OPAL_UINT64;
 322 
 323     v1 = v2;
 324     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 325         fprintf(test_out, "opal_dss.compare failed for signed equality\n");
 326         return(false);
 327     }
 328 
 329     v1 = v2 + 1;
 330     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 331         fprintf(test_out, "opal_dss.compare failed for signed value1 greater\n");
 332         return(false);
 333     }
 334 
 335     v1 = v2 - 1;
 336     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 337         fprintf(test_out, "opal_dss.compare failed for signed value2 greater\n");
 338         return(false);
 339     }
 340 
 341     u1 = u2;
 342     if (OPAL_EQUAL != opal_dss.compare(&u1, &u2, utype)) {
 343         fprintf(test_out, "opal_dss.compare failed for unsigned equality\n");
 344         return(false);
 345     }
 346 
 347     u1 = u2 + 1;
 348     if (OPAL_VALUE1_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 349         fprintf(test_out, "opal_dss.compare failed for unsigned value1 greater\n");
 350         return(false);
 351     }
 352 
 353     u1 = u2 - 1;
 354     if (OPAL_VALUE2_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 355         fprintf(test_out, "opal_dss.compare failed for unsigned value2 greater\n");
 356         return(false);
 357     }
 358 
 359     return (true);
 360 }
 361 
 362 /*
 363  * INT
 364  */
 365 static bool test5(void)
 366 {
 367     int v1, v2=100;
 368     uint u1, u2=150;
 369     opal_data_type_t type=OPAL_INT, utype=OPAL_UINT;
 370 
 371     v1 = v2;
 372     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 373         fprintf(test_out, "opal_dss.compare failed for signed equality\n");
 374         return(false);
 375     }
 376 
 377     v1 = v2 + 1;
 378     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 379         fprintf(test_out, "opal_dss.compare failed for signed value1 greater\n");
 380         return(false);
 381     }
 382 
 383     v1 = v2 - 1;
 384     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 385         fprintf(test_out, "opal_dss.compare failed for signed value2 greater\n");
 386         return(false);
 387     }
 388 
 389     u1 = u2;
 390     if (OPAL_EQUAL != opal_dss.compare(&u1, &u2, utype)) {
 391         fprintf(test_out, "opal_dss.compare failed for unsigned equality\n");
 392         return(false);
 393     }
 394 
 395     u1 = u2 + 1;
 396     if (OPAL_VALUE1_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 397         fprintf(test_out, "opal_dss.compare failed for unsigned value1 greater\n");
 398         return(false);
 399     }
 400 
 401     u1 = u2 - 1;
 402     if (OPAL_VALUE2_GREATER != opal_dss.compare(&u1, &u2, utype)) {
 403         fprintf(test_out, "opal_dss.compare failed for unsigned value2 greater\n");
 404         return(false);
 405     }
 406 
 407     return (true);
 408 }
 409 
 410 /*
 411  * STRING
 412  */
 413 static bool test6(void)
 414 {
 415     char *string1="This is a short string";
 416     char *string2="This is a longer string";
 417 
 418     if (OPAL_EQUAL != opal_dss.compare(string1, string1, OPAL_STRING)) {
 419         fprintf(test_out, "opal_dss.compare failed for equality\n");
 420         return(false);
 421     }
 422 
 423     if (OPAL_VALUE2_GREATER != opal_dss.compare(string1, string2, OPAL_STRING)) {
 424         fprintf(test_out, "opal_dss.compare failed for value2 greater\n");
 425         return(false);
 426     }
 427 
 428     if (OPAL_VALUE1_GREATER != opal_dss.compare(string2, string1, OPAL_STRING)) {
 429         fprintf(test_out, "opal_dss.compare failed for value1 greater\n");
 430         return(false);
 431     }
 432 
 433     return (true);
 434 }
 435 
 436 /*
 437  * BOOL
 438  */
 439 static bool test7(void)
 440 {
 441     bool v1, v2=true;
 442 
 443     v1 = v2;
 444     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, OPAL_BOOL)) {
 445         fprintf(test_out, "opal_dss.compare failed for equality\n");
 446         return(false);
 447     }
 448 
 449     v1 = true;
 450     v2 = false;
 451     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, OPAL_BOOL)) {
 452         fprintf(test_out, "opal_dss.compare failed for value1 greater\n");
 453         return(false);
 454     }
 455 
 456     v1 = false;
 457     v2 = true;
 458     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, OPAL_BOOL)) {
 459         fprintf(test_out, "opal_dss.compare failed for value2 greater\n");
 460         return(false);
 461     }
 462 
 463     return (true);
 464 }
 465 
 466 
 467 /*
 468  * SIZE
 469  */
 470 static bool test8(void)
 471 {
 472     size_t v1, v2=100;
 473     opal_data_type_t type=OPAL_SIZE;
 474 
 475     v1 = v2;
 476     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 477         fprintf(test_out, "opal_dss.compare failed for equality\n");
 478         return(false);
 479     }
 480 
 481     v1 = v2 + 1;
 482     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 483         fprintf(test_out, "opal_dss.compare failed for value1 greater\n");
 484         return(false);
 485     }
 486 
 487     v1 = v2 - 1;
 488     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 489         fprintf(test_out, "opal_dss.compare failed for value2 greater\n");
 490         return(false);
 491     }
 492 
 493     return (true);
 494 }
 495 
 496 /*
 497  * PID
 498  */
 499 static bool test9(void)
 500 {
 501     pid_t v1, v2=100;
 502     opal_data_type_t type=OPAL_PID;
 503 
 504     v1 = v2;
 505     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 506         fprintf(test_out, "opal_dss.compare failed for equality\n");
 507         return(false);
 508     }
 509 
 510     v1 = v2 + 1;
 511     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 512         fprintf(test_out, "opal_dss.compare failed for value1 greater\n");
 513         return(false);
 514     }
 515 
 516     v1 = v2 - 1;
 517     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 518         fprintf(test_out, "opal_dss.compare failed for value2 greater\n");
 519         return(false);
 520     }
 521 
 522     return (true);
 523 }
 524 
 525 /*
 526  * DATA TYPE
 527  */
 528 static bool test11(void)
 529 {
 530     opal_data_type_t v1, v2=100;
 531     opal_data_type_t type=OPAL_DATA_TYPE;
 532 
 533     v1 = v2;
 534     if (OPAL_EQUAL != opal_dss.compare(&v1, &v2, type)) {
 535         fprintf(test_out, "opal_dss.compare failed for equality\n");
 536         return(false);
 537     }
 538 
 539     v1 = v2 + 1;
 540     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v1, &v2, type)) {
 541         fprintf(test_out, "opal_dss.compare failed for value1 greater\n");
 542         return(false);
 543     }
 544 
 545     v1 = v2 - 1;
 546     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 547         fprintf(test_out, "opal_dss.compare failed for value2 greater\n");
 548         return(false);
 549     }
 550 
 551     return (true);
 552 }
 553 
 554 /**
 555  * OPAL_BYTE_OBJECT
 556  */
 557 
 558 static bool test12(void)
 559 {
 560     int i;
 561     opal_byte_object_t v1, v2;
 562     opal_data_type_t type=OPAL_BYTE_OBJECT;
 563 
 564     v1.size = 20;
 565     v1.bytes = (uint8_t*)malloc(v1.size);
 566     for (i=0; i<v1.size; i++) v1.bytes[i] = i;
 567 
 568     v2.size = v1.size;
 569     v2.bytes = (uint8_t*)malloc(v2.size);
 570     for (i=0; i<v2.size; i++) v2.bytes[i] = v1.bytes[i];
 571     v2.bytes[(v2.size)/2] += 1;
 572 
 573 
 574     if (OPAL_EQUAL != opal_dss.compare(&v1, &v1, type)) {
 575         fprintf(test_out, "opal_dss.compare failed for equality\n");
 576         return(false);
 577     }
 578 
 579     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v2, &v1, type)) {
 580         fprintf(test_out, "opal_dss.compare failed for value1 greater\n");
 581         return(false);
 582     }
 583 
 584     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 585         fprintf(test_out, "opal_dss.compare failed for value2 greater\n");
 586         return(false);
 587     }
 588 
 589     return (true);
 590 }
 591 
 592 static bool test13(void)
 593 {
 594     int dat1=100, dat2=200;
 595     opal_value_t v1, v2;
 596     opal_data_type_t type=OPAL_VALUE;
 597 
 598     v1.type = OPAL_INT;
 599     v1.data.integer = dat1;
 600 
 601     v2.type = OPAL_INT;
 602     v2.data.integer = dat2;
 603 
 604     if (OPAL_EQUAL != opal_dss.compare(&v1, &v1, type)) {
 605         fprintf(test_out, "opal_dss.compare failed for equality\n");
 606         return(false);
 607     }
 608 
 609     if (OPAL_VALUE1_GREATER != opal_dss.compare(&v2, &v1, type)) {
 610         fprintf(test_out, "opal_dss.compare failed for value1 greater\n");
 611         return(false);
 612     }
 613 
 614     if (OPAL_VALUE2_GREATER != opal_dss.compare(&v1, &v2, type)) {
 615         fprintf(test_out, "opal_dss.compare failed for value2 greater\n");
 616         return(false);
 617     }
 618 
 619     return (true);
 620 }
 621 

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