brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · b574a93 Raw
85 lines · cpp
1// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s2 3#include <inttypes.h>4#include <netdb.h>5#include <stdint.h>6#include <stdio.h>7#include <stdlib.h>8 9#define STRING_OR_NULL(x) ((x) ? (x) : "null")10 11void test1() {12  struct netent *ntp = getnetent();13 14  printf("%s ", ntp->n_name);15 16  for (char **cp = ntp->n_aliases; *cp != NULL; cp++)17    printf("%s ", STRING_OR_NULL(*cp));18 19  printf("%d ", ntp->n_addrtype);20  printf("%" PRIu32 "\n", ntp->n_net);21 22  endnetent();23}24 25void test2() {26  struct netent *ntp = getnetbyname("loopback");27 28  printf("%s ", ntp->n_name);29 30  for (char **cp = ntp->n_aliases; *cp != NULL; cp++)31    printf("%s ", STRING_OR_NULL(*cp));32 33  printf("%d ", ntp->n_addrtype);34  printf("%" PRIu32 "\n", ntp->n_net);35 36  endnetent();37}38 39void test3() {40  struct netent *ntp = getnetbyaddr(127, 2);41 42  printf("%s ", ntp->n_name);43 44  for (char **cp = ntp->n_aliases; *cp != NULL; cp++)45    printf("%s ", STRING_OR_NULL(*cp));46 47  printf("%d ", ntp->n_addrtype);48  printf("%" PRIu32 "\n", ntp->n_net);49 50  endnetent();51}52 53void test4() {54  setnetent(1);55 56  struct netent *ntp = getnetent();57 58  printf("%s ", ntp->n_name);59 60  for (char **cp = ntp->n_aliases; *cp != NULL; cp++)61    printf("%s ", STRING_OR_NULL(*cp));62 63  printf("%d ", ntp->n_addrtype);64  printf("%" PRIu32 "\n", ntp->n_net);65 66  endnetent();67}68 69int main(void) {70  printf("netent\n");71 72  test1();73  test2();74  test3();75  test4();76 77  // CHECK: netent78  // CHECK: loopback 2 12779  // CHECK: loopback 2 12780  // CHECK: loopback 2 12781  // CHECK: loopback 2 12782 83  return 0;84}85