// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s #include <sys/param.h> #include <sys/types.h> #include <sys/statvfs.h> #include <assert.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> void test_statvfs1() { printf("statvfs1\n"); struct statvfs buf; int rv = statvfs1("/etc/fstab", &buf, ST_WAIT); assert(rv != -1); printf("fstypename='%s'\n", buf.f_fstypename); printf("mntonname='%s'\n", buf.f_mntonname); printf("mntfromname='%s'\n", buf.f_mntfromname); } void test_fstatvfs1() { printf("fstatvfs1\n"); int fd = open("/etc/fstab", O_RDONLY); assert(fd > 0); struct statvfs buf; int rv = fstatvfs1(fd, &buf, ST_WAIT); assert(rv != -1); printf("fstypename='%s'\n", buf.f_fstypename); printf("mntonname='%s'\n", buf.f_mntonname); printf("mntfromname='%s'\n", buf.f_mntfromname); rv = close(fd); assert(rv != -1); } int main(void) { test_statvfs1(); test_fstatvfs1(); // CHECK: statvfs1 // CHECK: fstypename='{{.*}}' // CHECK: mntonname='{{.*}}' // CHECK: mntfromname='{{.*}}' // CHECK: fstatvfs1 // CHECK: fstypename='{{.*}}' // CHECK: mntonname='{{.*}}' // CHECK: mntfromname='{{.*}}' return 0; }