1*8fdd821aSDavid Carlier // RUN: %clangxx -O0 -g %s -o %t 2*8fdd821aSDavid Carlier // 3*8fdd821aSDavid Carlier // REQUIRES: linux, freebsd 4*8fdd821aSDavid Carlier 5*8fdd821aSDavid Carlier #include <inttypes.h> 6*8fdd821aSDavid Carlier #include <netdb.h> 7*8fdd821aSDavid Carlier #include <stdint.h> 8*8fdd821aSDavid Carlier #include <stdio.h> 9*8fdd821aSDavid Carlier #include <stdlib.h> 10*8fdd821aSDavid Carlier #include <assert.h> 11*8fdd821aSDavid Carlier 12*8fdd821aSDavid Carlier #if defined(__linux__) 13*8fdd821aSDavid Carlier #define LOOPBACK "loopback" 14*8fdd821aSDavid Carlier #else 15*8fdd821aSDavid Carlier #define LOOPBACK "your-net" 16*8fdd821aSDavid Carlier #endif 17*8fdd821aSDavid Carlier test1()18*8fdd821aSDavid Carliervoid test1() { 19*8fdd821aSDavid Carlier struct netent *ntp = getnetent(); 20*8fdd821aSDavid Carlier assert(ntp && ntp->n_name); 21*8fdd821aSDavid Carlier assert(ntp->n_addrtype == 2); 22*8fdd821aSDavid Carlier assert(ntp->n_net == 127); 23*8fdd821aSDavid Carlier endnetent(); 24*8fdd821aSDavid Carlier } 25*8fdd821aSDavid Carlier test2()26*8fdd821aSDavid Carliervoid test2() { 27*8fdd821aSDavid Carlier struct netent *ntp = getnetbyname(LOOPBACK); 28*8fdd821aSDavid Carlier assert(ntp && ntp->n_name); 29*8fdd821aSDavid Carlier assert(ntp->n_addrtype == 2); 30*8fdd821aSDavid Carlier assert(ntp->n_net == 127); 31*8fdd821aSDavid Carlier endnetent(); 32*8fdd821aSDavid Carlier } 33*8fdd821aSDavid Carlier test3()34*8fdd821aSDavid Carliervoid test3() { 35*8fdd821aSDavid Carlier struct netent *lb = getnetbyname(LOOPBACK); 36*8fdd821aSDavid Carlier assert(lb); 37*8fdd821aSDavid Carlier struct netent *ntp = getnetbyaddr(lb->n_net, lb->n_addrtype); 38*8fdd821aSDavid Carlier assert(ntp && ntp->n_name); 39*8fdd821aSDavid Carlier assert(ntp->n_addrtype == 2); 40*8fdd821aSDavid Carlier assert(ntp->n_net == 127); 41*8fdd821aSDavid Carlier endnetent(); 42*8fdd821aSDavid Carlier } 43*8fdd821aSDavid Carlier test4()44*8fdd821aSDavid Carliervoid test4() { 45*8fdd821aSDavid Carlier setnetent(1); 46*8fdd821aSDavid Carlier 47*8fdd821aSDavid Carlier struct netent *ntp = getnetent(); 48*8fdd821aSDavid Carlier assert(ntp && ntp->n_name); 49*8fdd821aSDavid Carlier assert(ntp->n_addrtype == 2); 50*8fdd821aSDavid Carlier assert(ntp->n_net == 127); 51*8fdd821aSDavid Carlier endnetent(); 52*8fdd821aSDavid Carlier } 53*8fdd821aSDavid Carlier main(void)54*8fdd821aSDavid Carlierint main(void) { 55*8fdd821aSDavid Carlier printf("netent\n"); 56*8fdd821aSDavid Carlier 57*8fdd821aSDavid Carlier test1(); 58*8fdd821aSDavid Carlier test2(); 59*8fdd821aSDavid Carlier test3(); 60*8fdd821aSDavid Carlier test4(); 61*8fdd821aSDavid Carlier 62*8fdd821aSDavid Carlier return 0; 63*8fdd821aSDavid Carlier } 64