Ticket #15585: FileTest.cpp

File FileTest.cpp, 967 bytes (added by X512, 4 years ago)

Test program. Usage: FileTest <directory where create files> > <log file>

Line 
1#include <stdio.h>
2
3enum {
4 fileCnt = 10000
5};
6
7#if defined(__HAIKU__)
8
9#include <OS.h>
10
11typedef bigtime_t Time;
12
13enum {
14 second = 1000000
15};
16
17inline bigtime_t Now()
18{
19 return system_time();
20}
21
22#elif defined(_WIN32)
23
24#include <windows.h>
25
26typedef __int64 Time;
27
28Time second;
29
30class InitTime {
31public:
32 InitTime() {
33 QueryPerformanceFrequency((LARGE_INTEGER*)&second);
34 }
35} initTime;
36
37inline Time Now()
38{
39 __int64 res;
40 QueryPerformanceCounter((LARGE_INTEGER*)&res);
41 return res;
42}
43
44#else
45#error "Unsupported OS"
46#endif
47
48int main(int argCnt, char **args)
49{
50 FILE *f;
51 char name[256];
52 Time t, t2, times[fileCnt];
53 if (argCnt != 2)
54 return 1;
55
56 t = Now();
57 for (int i = 0; i < fileCnt; i++) {
58 sprintf(name, "%s/%d", args[1], i);
59 f = fopen(name, "w");
60 fprintf(f, "File %d/n", i);
61 fclose(f); f = NULL;
62 t2 = Now();
63 times[i] = t2 - t;
64 t = t2;
65 }
66 for (int i = 0; i < fileCnt; i++) {
67 printf("%.16E\n", double(times[i]) / double(second));
68 }
69 return 0;
70}