Annotation of 43BSDReno/sys/nfs/TEST/unix-tests/basic/test9.c, revision 1.1.1.1

1.1       root        1: /*     @(#)test9.c     1.4 90/01/03 NFS Rev 2 Testsuite
                      2:  *     1.4 Lachman ONC Test Suite source
                      3:  *
                      4:  * Test statfs
                      5:  *
                      6:  * Uses the following important system calls against the server:
                      7:  *
                      8:  *     chdir()
                      9:  *     mkdir()         (for initial directory creation if not -m)
                     10:  *     statfs()
                     11:  */
                     12: 
                     13: #include <sys/param.h>
                     14: #ifdef SVR3
                     15: #include <sys/types.h>
                     16: #include <sys/fs/nfs/time.h>
                     17: #include <sys/statfs.h>
                     18: #else
                     19: #include <sys/vfs.h>
                     20: #include <sys/time.h>
                     21: #endif
                     22: #include <sys/errno.h>
                     23: #include <stdio.h>
                     24: #include "tests.h"
                     25: 
                     26: int Tflag = 0;         /* print timing */
                     27: int Hflag = 0;         /* print help message */
                     28: int Fflag = 0;         /* test function only;  set count to 1, negate -t */
                     29: int Nflag = 0;         /* Suppress directory operations */
                     30: 
                     31: usage()
                     32: {
                     33:        fprintf(stdout, "usage: %s [-htfn] [count]\n", Myname);
                     34:        fprintf(stdout, "  Flags:  h    Help - print this usage info\n");
                     35:        fprintf(stdout, "          t    Print execution time statistics\n");
                     36:        fprintf(stdout, "          f    Test function only (negate -t)\n");
                     37:        fprintf(stdout, "          n    Suppress test directory create operations\n");
                     38: }
                     39: 
                     40: main(argc, argv)
                     41:        int argc;
                     42:        char *argv[];
                     43: {
                     44:        int count = 1500;       /* times to do statfs call */
                     45:        int ct;
                     46:        struct timeval time;
                     47:        struct statfs sfsb;
                     48:        char *opts;
                     49: 
                     50:        umask(0);
                     51:        setbuf(stdout, NULL);
                     52:        Myname = *argv++;
                     53:        argc--;
                     54:        while (argc && **argv == '-') {
                     55:                for (opts = &argv[0][1]; *opts; opts++) {
                     56:                        switch (*opts) {
                     57:                                case 'h':       /* help */
                     58:                                        usage();
                     59:                                        exit(1);
                     60: 
                     61:                                case 't':       /* time */
                     62:                                        Tflag++;
                     63:                                        break;
                     64:                                
                     65:                                case 'f':       /* funtionality */
                     66:                                        Fflag++;
                     67:                                        break;
                     68:                                
                     69:                                case 'n':       /* No Test Directory create */
                     70:                                        Nflag++;
                     71:                                        break;
                     72: 
                     73:                                default:
                     74:                                        error("unknown option '%c'", *opts);
                     75:                                        usage();
                     76:                                        exit(1);
                     77:                        }
                     78:                }
                     79:                argc--;
                     80:                argv++;
                     81:        }
                     82: 
                     83:        if (argc) {
                     84:                count = getparm(*argv, 1, "count");
                     85:                argv++;
                     86:                argc--;
                     87:        }
                     88:        if (argc) {
                     89:                usage();
                     90:                exit(1);
                     91:        }
                     92: 
                     93:        if (Fflag) {
                     94:                Tflag = 0;
                     95:                count = 1;
                     96:        }
                     97: 
                     98:        if (!Nflag)
                     99:                testdir(NULL);
                    100:        else
                    101:                mtestdir(NULL);
                    102: 
                    103:        fprintf(stdout, "%s: statfs\n", Myname);
                    104: 
                    105:        if (Tflag) {
                    106:                starttime();
                    107:        }
                    108: 
                    109:        for (ct = 0; ct < count; ct++) {
                    110: #ifdef SVR3
                    111:                if (statfs(".", &sfsb, sizeof(sfsb), 0) < 0) {
                    112: #else
                    113:                if (statfs(".", &sfsb) < 0) {
                    114: #endif
                    115:                        error("can't do statfs on \".\"");
                    116:                        exit(1);
                    117:                }
                    118:        }
                    119: 
                    120:        if (Tflag) {
                    121:                endtime(&time);
                    122:        }
                    123: #ifdef SVR3
                    124: #ifdef DEBUG
                    125:        fprintf(stdout, "\ttype=%d, bsize=%d, blocks=%d, bfree=%d\n\
                    126: \t  bavail=%d, files=%d, ffree=%d, vol=%s, pack=%s\n",
                    127:                sfsb.f_fstyp, sfsb.f_bsize, sfsb.f_blocks, sfsb.f_bfree,
                    128:                sfsb.f_bfree, sfsb.f_files, sfsb.f_ffree, sfsb.f_fname,
                    129:                sfsb.f_fpack);
                    130: #endif /* DEBUG */
                    131: #else /* SVR3 */
                    132: #ifdef DEBUG
                    133:        fprintf(stdout, "\ttype=%d, bsize=%d, blocks=%d, bfree=%d\n\
                    134: \t  bavail=%d, files=%d, ffree=%d, fsid=%d %d\n",
                    135:                sfsb.f_type, sfsb.f_bsize, sfsb.f_blocks, sfsb.f_bfree,
                    136:                sfsb.f_bavail, sfsb.f_files, sfsb.f_ffree,
                    137: #ifdef NFS3_2
                    138:                sfsb.f_fsid.val[0], sfsb.f_fsid.val[1]);
                    139: #else /* NFS3_2 */
                    140:                sfsb.f_fsid[0], sfsb.f_fsid[1]);
                    141: #endif /* NFS3_2 */
                    142: #endif /* DEBUG */
                    143: #endif /* SVR3 */
                    144:        fprintf(stdout, "\t%d statfs calls", count);
                    145:        if (Tflag) {
                    146:                fprintf(stdout, " in %d.%-2d seconds",
                    147:                    time.tv_sec, time.tv_usec / 10000);
                    148:        }
                    149:        fprintf(stdout, "\n");
                    150:        complete();
                    151: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.