59 lines · cpp
1// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s2 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("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("fstatvfs1\n");28 29 int fd = open("/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);41 assert(rv != -1);42}43 44int main(void) {45 test_statvfs1();46 test_fstatvfs1();47 48 // CHECK: statvfs149 // CHECK: fstypename='{{.*}}'50 // CHECK: mntonname='{{.*}}'51 // CHECK: mntfromname='{{.*}}'52 // CHECK: fstatvfs153 // CHECK: fstypename='{{.*}}'54 // CHECK: mntonname='{{.*}}'55 // CHECK: mntfromname='{{.*}}'56 57 return 0;58}59