1// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
2
3#include <sys/param.h>
4#include <sys/types.h>
5
6#include <sys/statvfs.h>
7
8#include <assert.h>
9#include <fcntl.h>
10#include <stdio.h>
11#include <stdlib.h>
12#include <unistd.h>
13
14void test_statvfs1() {
15 printf(format: "statvfs1\n");
16
17 struct statvfs buf;
18 int rv = statvfs1("/etc/fstab", &buf, ST_WAIT);
19 assert(rv != -1);
20
21 printf("fstypename='%s'\n", buf.f_fstypename);
22 printf("mntonname='%s'\n", buf.f_mntonname);
23 printf("mntfromname='%s'\n", buf.f_mntfromname);
24}
25
26void test_fstatvfs1() {
27 printf(format: "fstatvfs1\n");
28
29 int fd = open(file: "/etc/fstab", O_RDONLY);
30 assert(fd > 0);
31
32 struct statvfs buf;
33 int rv = fstatvfs1(fd, &buf, ST_WAIT);
34 assert(rv != -1);
35
36 printf("fstypename='%s'\n", buf.f_fstypename);
37 printf("mntonname='%s'\n", buf.f_mntonname);
38 printf("mntfromname='%s'\n", buf.f_mntfromname);
39
40 rv = close(fd: fd);
41 assert(rv != -1);
42}
43
44int main(void) {
45 test_statvfs1();
46 test_fstatvfs1();
47
48 // CHECK: statvfs1
49 // CHECK: fstypename='{{.*}}'
50 // CHECK: mntonname='{{.*}}'
51 // CHECK: mntfromname='{{.*}}'
52 // CHECK: fstatvfs1
53 // CHECK: fstypename='{{.*}}'
54 // CHECK: mntonname='{{.*}}'
55 // CHECK: mntfromname='{{.*}}'
56
57 return 0;
58}
59

source code of compiler-rt/test/sanitizer_common/TestCases/NetBSD/statvfs1.cpp