15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
* file.
*/
#include "config.h"
#import "TestsAppDelegate.h"
static OFString *module = @"OFSystemInfo";
@implementation TestsAppDelegate (OFSystemInfoTests)
- (void)systemInfoTests
{
void *pool = objc_autoreleasePoolPush();
#ifdef OF_HAVE_FILES
OFString *userConfigPath, *userDataPath;
#endif
PRINT(GREEN, @"Page size: %zd", [OFSystemInfo pageSize]);
PRINT(GREEN, @"Number of CPUs: %zd", [OFSystemInfo numberOfCPUs]);
PRINT(GREEN, @"ObjFW version: %@", [OFSystemInfo ObjFWVersion]);
PRINT(GREEN, @"ObjFW version major: %u",
[OFSystemInfo ObjFWVersionMajor]);
PRINT(GREEN, @"ObjFW version minor: %u",
[OFSystemInfo ObjFWVersionMinor]);
PRINT(GREEN, @"Operating system name: %@",
[OFSystemInfo operatingSystemName]);
PRINT(GREEN, @"Operating system version: %@",
[OFSystemInfo operatingSystemVersion]);
#ifdef OF_HAVE_FILES
@try {
userConfigPath = [OFSystemInfo userConfigPath];
} @catch (OFNotImplementedException *e) {
userConfigPath = @"Not implemented";
}
PRINT(GREEN, @"User config path: %@", userConfigPath);
@try {
userDataPath = [OFSystemInfo userDataPath];
} @catch (OFNotImplementedException *e) {
userDataPath = @"Not implemented";
}
PRINT(GREEN, @"User data path: %@", userDataPath);
#endif
PRINT(GREEN, @"CPU vendor: %@", [OFSystemInfo CPUVendor]);
PRINT(GREEN, @"CPU model: %@", [OFSystemInfo CPUModel]);
#if defined(OF_X86_64) || defined(OF_X86)
PRINT(GREEN, @"Supports MMX: %d", [OFSystemInfo supportsMMX]);
PRINT(GREEN, @"Supports SSE: %d", [OFSystemInfo supportsSSE]);
PRINT(GREEN, @"Supports SSE2: %d", [OFSystemInfo supportsSSE2]);
PRINT(GREEN, @"Supports SSE3: %d", [OFSystemInfo supportsSSE3]);
PRINT(GREEN, @"Supports SSSE3: %d", [OFSystemInfo supportsSSSE3]);
PRINT(GREEN, @"Supports SSE4.1: %d", [OFSystemInfo supportsSSE41]);
PRINT(GREEN, @"Supports SSE4.2: %d", [OFSystemInfo supportsSSE42]);
PRINT(GREEN, @"Supports AVX: %d", [OFSystemInfo supportsAVX]);
PRINT(GREEN, @"Supports AVX2: %d", [OFSystemInfo supportsAVX2]);
PRINT(GREEN, @"Supports AES-NI: %d", [OFSystemInfo supportsAESNI]);
PRINT(GREEN, @"Supports SHA extensions: %d",
[OFSystemInfo supportsSHAExtensions]);
#endif
#ifdef OF_POWERPC
PRINT(GREEN, @"Supports AltiVec: %d", [OFSystemInfo supportsAltiVec]);
#endif
objc_autoreleasePoolPop(pool);
}
@end
|
<
<
>
>
>
|
>
|
>
|
|
|
|
|
|
|
>
|
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|
|
|
>
|
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
* file.
*/
#include "config.h"
#import "TestsAppDelegate.h"
@implementation TestsAppDelegate (OFSystemInfoTests)
- (void)systemInfoTests
{
void *pool = objc_autoreleasePoolPush();
#ifdef OF_HAVE_FILES
OFString *userConfigPath, *userDataPath;
#endif
of_stdout.foregroundColor = [OFColor lime];
[of_stdout writeFormat: @"[OFSystemInfo] Page size: %zd\n",
[OFSystemInfo pageSize]];
[of_stdout writeFormat: @"[OFSystemInfo] Number of CPUs: %zd\n",
[OFSystemInfo numberOfCPUs]];
[of_stdout writeFormat: @"[OFSystemInfo] ObjFW version: %@\n",
[OFSystemInfo ObjFWVersion]];
[of_stdout writeFormat: @"[OFSystemInfo] ObjFW version major: %u\n",
[OFSystemInfo ObjFWVersionMajor]];
[of_stdout writeFormat: @"[OFSystemInfo] ObjFW version minor: %u\n",
[OFSystemInfo ObjFWVersionMinor]];
[of_stdout writeFormat: @"[OFSystemInfo] Operating system name: %@\n",
[OFSystemInfo operatingSystemName]];
[of_stdout writeFormat:
@"[OFSystemInfo] Operating system version: %@\n",
[OFSystemInfo operatingSystemVersion]];
#ifdef OF_HAVE_FILES
@try {
userConfigPath = [OFSystemInfo userConfigPath];
} @catch (OFNotImplementedException *e) {
userConfigPath = @"Not implemented";
}
[of_stdout writeFormat: @"[OFSystemInfo] User config path: %@\n",
userConfigPath];
@try {
userDataPath = [OFSystemInfo userDataPath];
} @catch (OFNotImplementedException *e) {
userDataPath = @"Not implemented";
}
[of_stdout writeFormat: @"[OFSystemInfo] User data path: %@\n",
userDataPath];
#endif
[of_stdout writeFormat: @"[OFSystemInfo] CPU vendor: %@\n",
[OFSystemInfo CPUVendor]];
[of_stdout writeFormat: @"[OFSystemInfo] CPU model: %@\n",
[OFSystemInfo CPUModel]];
#if defined(OF_X86_64) || defined(OF_X86)
[of_stdout writeFormat: @"[OFSystemInfo] Supports MMX: %d\n",
[OFSystemInfo supportsMMX]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports SSE: %d\n",
[OFSystemInfo supportsSSE]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports SSE2: %d\n",
[OFSystemInfo supportsSSE2]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports SSE3: %d\n",
[OFSystemInfo supportsSSE3]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports SSSE3: %d\n",
[OFSystemInfo supportsSSSE3]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports SSE4.1: %d\n",
[OFSystemInfo supportsSSE41]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports SSE4.2: %d\n",
[OFSystemInfo supportsSSE42]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports AVX: %d\n",
[OFSystemInfo supportsAVX]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports AVX2: %d\n",
[OFSystemInfo supportsAVX2]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports AES-NI: %d\n",
[OFSystemInfo supportsAESNI]];
[of_stdout writeFormat: @"[OFSystemInfo] Supports SHA extensions: %d\n",
[OFSystemInfo supportsSHAExtensions]];
#endif
#ifdef OF_POWERPC
[of_stdout writeFormat: @"[OFSystemInfo] Supports AltiVec: %d\n",
[OFSystemInfo supportsAltiVec]];
#endif
objc_autoreleasePoolPop(pool);
}
@end
|