]>
git.saurik.com Git - apple/xnu.git/blob - tools/tests/libMicro/chdir.c
4 * The contents of this file are subject to the terms
5 * of the Common Development and Distribution License
6 * (the "License"). You may not use this file except
7 * in compliance with the License.
9 * You can obtain a copy of the license at
10 * src/OPENSOLARIS.LICENSE
11 * or http://www.opensolaris.org/os/licensing.
12 * See the License for the specific language governing
13 * permissions and limitations under the License.
15 * When distributing Covered Code, include this CDDL
16 * HEADER in each file and include the License file at
17 * usr/src/OPENSOLARIS.LICENSE. If applicable,
18 * add the following below this CDDL HEADER, with the
19 * fields enclosed by brackets "[]" replaced with your
20 * own identifying information: Portions Copyright [yyyy]
21 * [name of copyright owner]
27 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
28 * Use is subject to license terms.
32 * change directory benchmark
41 #define DEFAULTDIR "/"
42 #define MAXPATHLEN 1024
47 static char ** dirlist
;
52 (void) sprintf(lm_optstr
, "g");
55 (void) sprintf(lm_usage
,
56 " [-g] (do getcwd() also)\n"
57 " directory ... (default = %s)\n"
58 "notes: measures chdir() and (optionally) getcwd()",
61 (void) sprintf(lm_header
, "%5s %5s", "dirs", "gets");
68 benchmark_optswitch(int opt
, char *optarg
)
86 dircount
= lm_argc
- optind
;
88 dirlist
= (char **)malloc(sizeof (char *));
89 dirlist
[0] = DEFAULTDIR
;
92 dirlist
= (char **)malloc(dircount
* sizeof (char *));
93 for (i
= 0; i
< dircount
; i
++) {
94 dirlist
[i
] = lm_argv
[optind
++];
103 benchmark(void *tsd
, result_t
*res
)
106 char buf
[MAXPATHLEN
];
109 for (i
= 0; i
< lm_optB
; i
++) {
110 if (chdir(dirlist
[j
]) == -1)
115 if (optg
&& (getcwd(buf
, MAXPATHLEN
) == NULL
)) {
127 static char result
[256];
129 (void) sprintf(result
, "%5d %5s", dircount
, optg
? "y" : "n");