xref: /haiku/src/tests/system/kernel/path_resolution_test.cpp (revision 91e9d17c3f80a741db5e753c36c4c93922494897)
1*91e9d17cSIngo Weinhold /*
2*91e9d17cSIngo Weinhold  * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
3*91e9d17cSIngo Weinhold  * Distributed under the terms of the MIT License.
4*91e9d17cSIngo Weinhold  */
5*91e9d17cSIngo Weinhold 
6*91e9d17cSIngo Weinhold #include <stdio.h>
7*91e9d17cSIngo Weinhold #include <sys/stat.h>
8*91e9d17cSIngo Weinhold 
9*91e9d17cSIngo Weinhold #include <OS.h>
10*91e9d17cSIngo Weinhold 
11*91e9d17cSIngo Weinhold 
12*91e9d17cSIngo Weinhold static void
time_lstat(const char * path)13*91e9d17cSIngo Weinhold time_lstat(const char* path)
14*91e9d17cSIngo Weinhold {
15*91e9d17cSIngo Weinhold 	printf("%-60s ...", path);
16*91e9d17cSIngo Weinhold 	fflush(stdout);
17*91e9d17cSIngo Weinhold 	bigtime_t startTime = system_time();
18*91e9d17cSIngo Weinhold 
19*91e9d17cSIngo Weinhold 	static const int32 iterations = 10000;
20*91e9d17cSIngo Weinhold 	for (int32 i = 0; i < iterations; i++) {
21*91e9d17cSIngo Weinhold 		struct stat st;
22*91e9d17cSIngo Weinhold 		lstat(path, &st);
23*91e9d17cSIngo Weinhold 	}
24*91e9d17cSIngo Weinhold 
25*91e9d17cSIngo Weinhold 	bigtime_t totalTime = system_time() - startTime;
26*91e9d17cSIngo Weinhold 	printf(" %5.3f us/call\n", (double)totalTime / iterations);
27*91e9d17cSIngo Weinhold }
28*91e9d17cSIngo Weinhold 
29*91e9d17cSIngo Weinhold 
30*91e9d17cSIngo Weinhold int
main()31*91e9d17cSIngo Weinhold main()
32*91e9d17cSIngo Weinhold {
33*91e9d17cSIngo Weinhold 	const char* const paths[] = {
34*91e9d17cSIngo Weinhold 		"/",
35*91e9d17cSIngo Weinhold 		"/boot",
36*91e9d17cSIngo Weinhold 		"/boot/develop",
37*91e9d17cSIngo Weinhold 		"/boot/develop/headers",
38*91e9d17cSIngo Weinhold 		"/boot/develop/headers/posix",
39*91e9d17cSIngo Weinhold 		"/boot/develop/headers/posix/sys",
40*91e9d17cSIngo Weinhold 		"/boot/develop/headers/posix/sys/stat.h",
41*91e9d17cSIngo Weinhold 		NULL
42*91e9d17cSIngo Weinhold 	};
43*91e9d17cSIngo Weinhold 
44*91e9d17cSIngo Weinhold 	for (int32 i = 0; paths[i] != NULL; i++)
45*91e9d17cSIngo Weinhold 		time_lstat(paths[i]);
46*91e9d17cSIngo Weinhold 
47*91e9d17cSIngo Weinhold 	return 0;
48*91e9d17cSIngo Weinhold }
49