root/test/util/opal_if.c

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

DEFINITIONS

This source file includes following definitions.
  1. test_ifaddrtoname
  2. main

   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$
  13  *
  14  * Additional copyrights may follow
  15  *
  16  * $HEADER$
  17  */
  18 
  19 #include "ompi_config.h"
  20 
  21 #include <stdio.h>
  22 #include <string.h>
  23 #include <stdlib.h>
  24 #ifdef HAVE_SYS_PARAM_H
  25 #include <sys/param.h>
  26 #endif
  27 #ifdef HAVE_NETINET_IN_H
  28 #include <netinet/in.h>
  29 #endif
  30 #ifdef HAVE_UNISTD_H
  31 #include <unistd.h>
  32 #endif
  33 #ifdef HAVE_NETDB_H
  34 #include <netdb.h>
  35 #endif
  36 
  37 #include "support.h"
  38 #include "opal/runtime/opal.h"
  39 #include "opal/util/if.h"
  40 #include "opal/constants.h"
  41 
  42 
  43 static bool
  44 test_ifaddrtoname(char *addr)
  45 {
  46     int ret;
  47     char addrname[100];
  48     int len = 99;
  49 
  50     ret = opal_ifaddrtoname(addr, addrname, len);
  51 
  52     if (ret == OPAL_SUCCESS) {
  53         return true;
  54     } else {
  55         return false;
  56     }
  57 }
  58 
  59 int
  60 main(int argc, char *argv[])
  61 {
  62     char hostname[OPAL_MAXHOSTNAMELEN];
  63 
  64     opal_init(&argc, &argv);
  65     test_init("opal_if");
  66 
  67     /* 127.0.0.1 */
  68     if (test_ifaddrtoname("127.0.0.1")) {
  69         test_success();
  70     } else {
  71         test_failure("ifaddrtoname test failed for 127.0.0.1");
  72     }
  73     if (opal_ifislocal("127.0.0.1")) {
  74         test_success();
  75     } else {
  76         test_failure("ifislocal test failed for 127.0.0.1");
  77     }
  78 
  79     /* localhost */
  80     if (test_ifaddrtoname("localhost")) {
  81         test_success();
  82     } else {
  83         test_failure("ifaddrtoname test failed for localhost");
  84     }
  85     if (opal_ifislocal("localhost")) {
  86         test_success();
  87     } else {
  88         test_failure("ifislocal test failed for localhost");
  89     }
  90 
  91     /* 0.0.0.0 */
  92     if (test_ifaddrtoname("0.0.0.0")) {
  93         test_failure("ifaddrtoname test failed for 0.0.0.0");
  94     } else {
  95         test_success();
  96     }
  97     if (opal_ifislocal("0.0.0.0")) {
  98         test_failure("opal_ifislocal test failed for 0.0.0.0");
  99     } else {
 100         test_success();
 101     }
 102 
 103     /* foo.example.com */
 104     printf("This should generate a warning:\n");
 105     fflush(stdout);
 106     if (test_ifaddrtoname("foo.example.com")) {
 107         test_failure("ifaddrtoname test failed for foo.example.com");
 108     } else {
 109         test_success();
 110     }
 111     printf("This should generate a warning:\n");
 112     fflush(stdout);
 113     if (opal_ifislocal("foo.example.com")) {
 114         test_failure("ifislocal test failed for foo.example.com");
 115     } else {
 116         test_success();
 117     }
 118 
 119     /* local host name */
 120     gethostname(hostname, sizeof(hostname));
 121     if (test_ifaddrtoname(hostname)) {
 122         test_success();
 123     } else {
 124         test_failure("ifaddrtoname test failed for local host name");
 125     }
 126     if (opal_ifislocal(hostname)) {
 127         test_success();
 128     } else {
 129         test_failure("ifislocal test failed for local host name");
 130     }
 131 
 132     test_finalize();
 133     opal_finalize();
 134 
 135     return 0;
 136 }

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