root/src/tests/system/kernel/path_resolution_test.cpp
/*
 * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
 * Distributed under the terms of the MIT License.
 */

#include <stdio.h>
#include <sys/stat.h>

#include <OS.h>


static void
time_lstat(const char* path)
{
        printf("%-60s ...", path);
        fflush(stdout);
        bigtime_t startTime = system_time();

        static const int32 iterations = 10000;
        for (int32 i = 0; i < iterations; i++) {
                struct stat st;
                lstat(path, &st);
        }

        bigtime_t totalTime = system_time() - startTime;
        printf(" %5.3f us/call\n", (double)totalTime / iterations);
}


int
main()
{
        const char* const paths[] = {
                "/",
                "/boot",
                "/boot/develop",
                "/boot/develop/headers",
                "/boot/develop/headers/posix",
                "/boot/develop/headers/posix/sys",
                "/boot/develop/headers/posix/sys/stat.h",
                NULL
        };

        for (int32 i = 0; paths[i] != NULL; i++)
                time_lstat(paths[i]);

        return 0;
}