diff options
author | Kamil Rytarowski <n54@gmx.com> | 2018-02-27 02:33:30 +0000 |
---|---|---|
committer | Kamil Rytarowski <n54@gmx.com> | 2018-02-27 02:33:30 +0000 |
commit | a3d3defff92476dc862affc7ab4ca8acd0408852 (patch) | |
tree | 70d01b10d63c375e6db00864d2cadbb05e1a0bff /test/sanitizer_common | |
parent | 2332b74dc3067b27a5577ff203789c41d7ca09d8 (diff) |
Add new interceptors: getnetent(3) family
Summary:
getnetent, getnetbyaddr, getnetbyname - get network entry
Reuse them on NetBSD.
Sponsored by <The NetBSD Foundation>
Reviewers: joerg, vitalybuka
Reviewed By: vitalybuka
Subscribers: llvm-commits, kubamracek, #sanitizers
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D43543
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@326163 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/sanitizer_common')
-rw-r--r-- | test/sanitizer_common/TestCases/NetBSD/netent.cc | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/test/sanitizer_common/TestCases/NetBSD/netent.cc b/test/sanitizer_common/TestCases/NetBSD/netent.cc new file mode 100644 index 000000000..b574a9310 --- /dev/null +++ b/test/sanitizer_common/TestCases/NetBSD/netent.cc @@ -0,0 +1,84 @@ +// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s + +#include <inttypes.h> +#include <netdb.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> + +#define STRING_OR_NULL(x) ((x) ? (x) : "null") + +void test1() { + struct netent *ntp = getnetent(); + + printf("%s ", ntp->n_name); + + for (char **cp = ntp->n_aliases; *cp != NULL; cp++) + printf("%s ", STRING_OR_NULL(*cp)); + + printf("%d ", ntp->n_addrtype); + printf("%" PRIu32 "\n", ntp->n_net); + + endnetent(); +} + +void test2() { + struct netent *ntp = getnetbyname("loopback"); + + printf("%s ", ntp->n_name); + + for (char **cp = ntp->n_aliases; *cp != NULL; cp++) + printf("%s ", STRING_OR_NULL(*cp)); + + printf("%d ", ntp->n_addrtype); + printf("%" PRIu32 "\n", ntp->n_net); + + endnetent(); +} + +void test3() { + struct netent *ntp = getnetbyaddr(127, 2); + + printf("%s ", ntp->n_name); + + for (char **cp = ntp->n_aliases; *cp != NULL; cp++) + printf("%s ", STRING_OR_NULL(*cp)); + + printf("%d ", ntp->n_addrtype); + printf("%" PRIu32 "\n", ntp->n_net); + + endnetent(); +} + +void test4() { + setnetent(1); + + struct netent *ntp = getnetent(); + + printf("%s ", ntp->n_name); + + for (char **cp = ntp->n_aliases; *cp != NULL; cp++) + printf("%s ", STRING_OR_NULL(*cp)); + + printf("%d ", ntp->n_addrtype); + printf("%" PRIu32 "\n", ntp->n_net); + + endnetent(); +} + +int main(void) { + printf("netent\n"); + + test1(); + test2(); + test3(); + test4(); + + // CHECK: netent + // CHECK: loopback 2 127 + // CHECK: loopback 2 127 + // CHECK: loopback 2 127 + // CHECK: loopback 2 127 + + return 0; +} |