Compare commits
1375 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c1f92941cb | ||
|
|
a2b0ff2c76 | ||
|
|
70834b9d0a | ||
|
|
4d1413e5d5 | ||
|
|
678b3d95b9 | ||
|
|
33cab40573 | ||
|
|
0cf46fd198 | ||
|
|
cea88fe829 | ||
|
|
2b3246f88b | ||
|
|
fe7563d3ad | ||
|
|
cbbcb0cb9a | ||
|
|
8bd52e82f0 | ||
|
|
480cf94d0c | ||
|
|
5748a84a88 | ||
|
|
7e05c67dde | ||
|
|
4a87fb301e | ||
|
|
472fdeea03 | ||
|
|
d7186a11ac | ||
|
|
9896d0a1d5 | ||
|
|
1887b4431d | ||
|
|
fa006e04f6 | ||
|
|
dc18aa5b0c | ||
|
|
470f2dbd80 | ||
|
|
b026cb1ada | ||
|
|
ab1adb6276 | ||
|
|
2755eff0ac | ||
|
|
a29af9da51 | ||
|
|
3673eaf57d | ||
|
|
2b698d630c | ||
|
|
47417cc126 | ||
|
|
8fac5c73b0 | ||
|
|
ee99fb31b3 | ||
|
|
08ae7da2a2 | ||
|
|
d565f79c05 | ||
|
|
7085e4b2cf | ||
|
|
c41e7b3460 | ||
|
|
7038cad520 | ||
|
|
ea9df9424f | ||
|
|
b580e615cf | ||
|
|
8910c2fb9a | ||
|
|
070b2ed512 | ||
|
|
a280b288ff | ||
|
|
e792c7bef2 | ||
|
|
2ca57c5d8c | ||
|
|
fad2cd4e5d | ||
|
|
0bc981e517 | ||
|
|
852fb9378b | ||
|
|
db6037dd7b | ||
|
|
ac289cc8ff | ||
|
|
c61b7a09c0 | ||
|
|
6c2f939266 | ||
|
|
64b0483248 | ||
|
|
8765e26c5e | ||
|
|
5f093b7919 | ||
|
|
4a51138f02 | ||
|
|
b2e6aa8bac | ||
|
|
077f9dd659 | ||
|
|
17ccadb307 | ||
|
|
79f0b2b535 | ||
|
|
658d624f32 | ||
|
|
34c86410c2 | ||
|
|
bc81c03158 | ||
|
|
d3d8942cb6 | ||
|
|
bb5ac80ee7 | ||
|
|
15ab3d3434 | ||
|
|
a2ce8583de | ||
|
|
33a15ca53f | ||
|
|
22ea9587bb | ||
|
|
06e7f695be | ||
|
|
432def01d2 | ||
|
|
9d677ef936 | ||
|
|
e428d3781b | ||
|
|
25fcf9f3be | ||
|
|
73fb1b3ace | ||
|
|
33be563142 | ||
|
|
69b1b5dc1a | ||
|
|
960245ac7b | ||
|
|
f2495baadb | ||
|
|
7dbde7e982 | ||
|
|
849fa769e4 | ||
|
|
fa34e629de | ||
|
|
99ed71c045 | ||
|
|
4fc9b5046f | ||
|
|
2276ea9611 | ||
|
|
7718da8d06 | ||
|
|
b5c58544d1 | ||
|
|
92c5a89757 | ||
|
|
a5639a25b1 | ||
|
|
798a3e6fba | ||
|
|
e2fac00203 | ||
|
|
d6d64bdd13 | ||
|
|
e65f6e913f | ||
|
|
0e62d0c4c1 | ||
|
|
367b8e680f | ||
|
|
6c98586662 | ||
|
|
f17a504909 | ||
|
|
835d06be2d | ||
|
|
c1262c4476 | ||
|
|
81b2145f2a | ||
|
|
a97b5fbff8 | ||
|
|
414098f601 | ||
|
|
11b8283843 | ||
|
|
7d81b9224c | ||
|
|
673e37a22b | ||
|
|
6f8f6150a1 | ||
|
|
1698818efb | ||
|
|
297bc4206d | ||
|
|
79bee6a042 | ||
|
|
6b6c70b649 | ||
|
|
142e2f92c1 | ||
|
|
120638b8ff | ||
|
|
23c7f8ad8c | ||
|
|
eb6d354c94 | ||
|
|
94ace3c885 | ||
|
|
4a544ffb56 | ||
|
|
54898f7377 | ||
|
|
0f51b6b3a2 | ||
|
|
faf1b27b2c | ||
|
|
610fb640ad | ||
|
|
e31385f604 | ||
|
|
a3f2256336 | ||
|
|
e4b7e7f2d9 | ||
|
|
bf78f2db13 | ||
|
|
ebb76e4752 | ||
|
|
5fe117b776 | ||
|
|
1ec700cee9 | ||
|
|
2bab1bda45 | ||
|
|
036b735a69 | ||
|
|
ab2c13b82e | ||
|
|
fa148e7553 | ||
|
|
8ec8eab7cb | ||
|
|
03a122e87a | ||
|
|
5102ccd9a7 | ||
|
|
4f14e3314c | ||
|
|
3806120ef7 | ||
|
|
4097daeeb7 | ||
|
|
9aabbab6e5 | ||
|
|
7cc0abd595 | ||
|
|
14ad1180a4 | ||
|
|
5eaa004c70 | ||
|
|
6b687e75f8 | ||
|
|
597ef4c764 | ||
|
|
48fa67f007 | ||
|
|
a8fb00a7d6 | ||
|
|
b002052840 | ||
|
|
7e61625fa5 | ||
|
|
9a5f42e0c9 | ||
|
|
a17e271dad | ||
|
|
d71296dd0b | ||
|
|
8838244dc0 | ||
|
|
0208723886 | ||
|
|
db92ec4195 | ||
|
|
14589143da | ||
|
|
db4f94fdee | ||
|
|
95b3e69384 | ||
|
|
349a2a0d1a | ||
|
|
6b644b22ef | ||
|
|
0c73c8fee2 | ||
|
|
d878e36de9 | ||
|
|
db94680cb6 | ||
|
|
7f511d0805 | ||
|
|
c76354b40e | ||
|
|
700a88f598 | ||
|
|
60697dd0d5 | ||
|
|
b3c9e690e0 | ||
|
|
fdf797476b | ||
|
|
01fdd8a353 | ||
|
|
29d304474e | ||
|
|
9897174f10 | ||
|
|
f887a37971 | ||
|
|
fc2dabd639 | ||
|
|
c9c2207efc | ||
|
|
50cb6ce77a | ||
|
|
98c05394d3 | ||
|
|
e7b31a2f43 | ||
|
|
3d204682b5 | ||
|
|
11ab3743e6 | ||
|
|
7aeaeca131 | ||
|
|
a31749f1cd | ||
|
|
82f3231b35 | ||
|
|
91b3ece67d | ||
|
|
c05d0ce5c2 | ||
|
|
a706dbb72d | ||
|
|
5396c9961d | ||
|
|
9139fbaefc | ||
|
|
1ffa9c6da7 | ||
|
|
f8c4acb98a | ||
|
|
c80df7572e | ||
|
|
2b505aa3c6 | ||
|
|
9402058de9 | ||
|
|
84c3d11373 | ||
|
|
a446543681 | ||
|
|
1e77843914 | ||
|
|
e2c5bd1cc8 | ||
|
|
f1a0ecba6d | ||
|
|
f539b25374 | ||
|
|
bf4625ab70 | ||
|
|
e4f156072b | ||
|
|
ff972c3729 | ||
|
|
8e37ba9957 | ||
|
|
3f27a44916 | ||
|
|
33c942b5a4 | ||
|
|
b593bec216 | ||
|
|
a905d212d9 | ||
|
|
8a3dfe542c | ||
|
|
894b08eb1c | ||
|
|
67210f71a1 | ||
|
|
3ee4d142c3 | ||
|
|
5fad4a2a82 | ||
|
|
ab295eac25 | ||
|
|
6b6f0c7977 | ||
|
|
52f8e0ab8c | ||
|
|
8e585dcbd4 | ||
|
|
38ae716570 | ||
|
|
c38c9d10b2 | ||
|
|
ab2342035b | ||
|
|
f0d0ee0866 | ||
|
|
039d70827b | ||
|
|
f118eb4f48 | ||
|
|
2059360879 | ||
|
|
d118bb0b6e | ||
|
|
4b846a6778 | ||
|
|
0d2d37f14b | ||
|
|
259e0f4e9d | ||
|
|
2671b36d23 | ||
|
|
190aad8ce7 | ||
|
|
68b5d3776e | ||
|
|
37d3696aff | ||
|
|
df4cc7fa65 | ||
|
|
8003b1205d | ||
|
|
6adcb24f1d | ||
|
|
8be5e74092 | ||
|
|
9fc24919c7 | ||
|
|
ae90fae8a8 | ||
|
|
a574958843 | ||
|
|
ef57724ae2 | ||
|
|
e344551fea | ||
|
|
2e08a956f4 | ||
|
|
ef18199cbc | ||
|
|
fa5f02aaf6 | ||
|
|
734fdeb3e3 | ||
|
|
a3ac1d50e3 | ||
|
|
28c90a0822 | ||
|
|
de7e80ba6b | ||
|
|
81ce4e894c | ||
|
|
a521a04c78 | ||
|
|
e8137f7328 | ||
|
|
27a88e1cd4 | ||
|
|
643f454568 | ||
|
|
01a6b50e06 | ||
|
|
51af8a47ba | ||
|
|
6310f9f87c | ||
|
|
f8f3002882 | ||
|
|
524caa60b0 | ||
|
|
6639c56762 | ||
|
|
41c57a9414 | ||
|
|
872e9eb1cd | ||
|
|
c2eeb47041 | ||
|
|
bb86af2ee3 | ||
|
|
25e4f51629 | ||
|
|
9e890c7df5 | ||
|
|
a3222463ac | ||
|
|
a53df5b4ff | ||
|
|
e779ffdeaf | ||
|
|
fdb6d0f1b6 | ||
|
|
26d157ebee | ||
|
|
06bb9cdaeb | ||
|
|
6224ff2341 | ||
|
|
be5a7c4d39 | ||
|
|
f6a1eac273 | ||
|
|
b7b9d7a979 | ||
|
|
ffb6f0227f | ||
|
|
19fd1a389b | ||
|
|
b821807895 | ||
|
|
e03fc64a46 | ||
|
|
2924a1a959 | ||
|
|
ee61f69e0f | ||
|
|
a7183c313a | ||
|
|
c2983ee7f0 | ||
|
|
2f3b7ad195 | ||
|
|
8149dadb52 | ||
|
|
e9aa202a80 | ||
|
|
09a74f1b12 | ||
|
|
5e7f241682 | ||
|
|
03f5fa199b | ||
|
|
417ddc89a2 | ||
|
|
c7598310b9 | ||
|
|
cf0d4c2fd0 | ||
|
|
ef4fb2eae1 | ||
|
|
4ff4c7a333 | ||
|
|
840d19faaf | ||
|
|
6f831b6a83 | ||
|
|
24bfaecfca | ||
|
|
a7d825b6a5 | ||
|
|
02a4fdf2e6 | ||
|
|
344633e96a | ||
|
|
62838ca856 | ||
|
|
d32f62965e | ||
|
|
a273e35ecc | ||
|
|
afaf83d0f3 | ||
|
|
335f422f99 | ||
|
|
2ef8300927 | ||
|
|
1f8eb41fa0 | ||
|
|
36ee0ba814 | ||
|
|
6f6360c722 | ||
|
|
88cf1f29e2 | ||
|
|
efcdddeece | ||
|
|
7f42665dcf | ||
|
|
a46c231a1f | ||
|
|
b4c8d27e70 | ||
|
|
ca3ee1635f | ||
|
|
7f070caca2 | ||
|
|
ac1d806826 | ||
|
|
e5b807de54 | ||
|
|
6e3e89eb41 | ||
|
|
f938146c2c | ||
|
|
60db32bff9 | ||
|
|
5a1420ed7d | ||
|
|
11eca4c258 | ||
|
|
bd9ce2b541 | ||
|
|
2d1678ebad | ||
|
|
44d1b6ec8f | ||
|
|
b7a5644216 | ||
|
|
0bc2849a07 | ||
|
|
2fa2c072c7 | ||
|
|
b6d08efcb5 | ||
|
|
60c3715ab7 | ||
|
|
a92793152e | ||
|
|
3bfc86c3b1 | ||
|
|
29c709cd3c | ||
|
|
01f784ce49 | ||
|
|
9035b8c4a0 | ||
|
|
4b6b7b3b58 | ||
|
|
67d64b164a | ||
|
|
913a0a66d8 | ||
|
|
1184bd468d | ||
|
|
415058062b | ||
|
|
3dad2c0cd3 | ||
|
|
c3c668b863 | ||
|
|
6c9ed8ec67 | ||
|
|
7a35da766d | ||
|
|
ba9a280db7 | ||
|
|
78e1ff1463 | ||
|
|
d59d48fed1 | ||
|
|
1bf75bdd5e | ||
|
|
f401b4aa32 | ||
|
|
9e155e42ae | ||
|
|
76f13e29e5 | ||
|
|
1a602c6b4a | ||
|
|
23e93187ac | ||
|
|
ad17aa6d52 | ||
|
|
57ba629867 | ||
|
|
6a21fc9bdc | ||
|
|
bc7da46250 | ||
|
|
e5ee7200bd | ||
|
|
892913cea3 | ||
|
|
545728bd60 | ||
|
|
948044a809 | ||
|
|
b7d0f8c648 | ||
|
|
4f1ecf6e4f | ||
|
|
fbb7386a30 | ||
|
|
4fc35f0304 | ||
|
|
0297d70ea2 | ||
|
|
7be51e615f | ||
|
|
8aa6273250 | ||
|
|
2ee7deefb3 | ||
|
|
d4eaee2c3d | ||
|
|
0430d89ee4 | ||
|
|
7992908b9d | ||
|
|
47f617ef80 | ||
|
|
ab1e967cf2 | ||
|
|
61066a4e10 | ||
|
|
d6e1dbf8d5 | ||
|
|
cfb534aa2b | ||
|
|
f3143d1e50 | ||
|
|
19cadf6a62 | ||
|
|
0d0b19ed61 | ||
|
|
1933ffa349 | ||
|
|
483b08e584 | ||
|
|
067c9e2995 | ||
|
|
89dae4f137 | ||
|
|
859da61732 | ||
|
|
a2c514c4e3 | ||
|
|
55246e453a | ||
|
|
2702958233 | ||
|
|
9e226552cb | ||
|
|
e469794c89 | ||
|
|
b986bccd46 | ||
|
|
b430d883c6 | ||
|
|
ded8b0e28d | ||
|
|
d3f457ba4b | ||
|
|
00251658b2 | ||
|
|
7110810bbc | ||
|
|
7cf8ba5dc7 | ||
|
|
4df0f25898 | ||
|
|
59767a93fe | ||
|
|
f80adcb8a0 | ||
|
|
e163437c8c | ||
|
|
69824dc939 | ||
|
|
4f596f7b8f | ||
|
|
e6af7a2675 | ||
|
|
8e6aa772c4 | ||
|
|
875820aa78 | ||
|
|
e61f1b7400 | ||
|
|
3ff2a9690f | ||
|
|
1536d5356c | ||
|
|
b9e055b4ec | ||
|
|
7d4058d90c | ||
|
|
2655819be6 | ||
|
|
c476f28dd8 | ||
|
|
07823c37a0 | ||
|
|
d10a3e736f | ||
|
|
78a8f8fe26 | ||
|
|
06d672b969 | ||
|
|
309e66c4fb | ||
|
|
7b7e330d20 | ||
|
|
751ae49d7d | ||
|
|
2003299875 | ||
|
|
53932a23f4 | ||
|
|
08a02584ff | ||
|
|
7232b549a1 | ||
|
|
c79cd9a341 | ||
|
|
2f799644cd | ||
|
|
4cf4978f6f | ||
|
|
b9f4cb393e | ||
|
|
ffdc063cbc | ||
|
|
65b09adf6e | ||
|
|
82a3224ccf | ||
|
|
6f08299562 | ||
|
|
e9ef328b49 | ||
|
|
53fb5570ee | ||
|
|
d72aa3625f | ||
|
|
7f233b2d9f | ||
|
|
b2f76bf424 | ||
|
|
c22702e591 | ||
|
|
76528582ba | ||
|
|
34b2463350 | ||
|
|
65437851f8 | ||
|
|
f8c9cdf013 | ||
|
|
d3e7a4d1a5 | ||
|
|
274c12a65c | ||
|
|
a12089475b | ||
|
|
a8ad8334f4 | ||
|
|
fe8240cbbe | ||
|
|
c432861f31 | ||
|
|
e80b48f74f | ||
|
|
ea4550fb01 | ||
|
|
ca4d333056 | ||
|
|
0f85d39ac9 | ||
|
|
c83672bf20 | ||
|
|
8b540a428f | ||
|
|
4cfe873dac | ||
|
|
ca321c594f | ||
|
|
3124472ff5 | ||
|
|
732c150321 | ||
|
|
b8e7817a8b | ||
|
|
3eb475733d | ||
|
|
e27f2cd4f5 | ||
|
|
7cb188c075 | ||
|
|
28e4024346 | ||
|
|
e8131f8f6e | ||
|
|
df0ab2c3a7 | ||
|
|
4e9dd6093f | ||
|
|
0dd9037d7c | ||
|
|
a0fca3a7ce | ||
|
|
fc076ca6f1 | ||
|
|
296fa8120e | ||
|
|
f4de8dbaaa | ||
|
|
7542d5e9ce | ||
|
|
8285b21d17 | ||
|
|
a0d18794ba | ||
|
|
abcf66fded | ||
|
|
190131429f | ||
|
|
6e5a42759f | ||
|
|
bac1b88951 | ||
|
|
de378032de | ||
|
|
f7cc4be402 | ||
|
|
84f6e8e1a3 | ||
|
|
505b4071af | ||
|
|
1b94484a5a | ||
|
|
9f67da01bd | ||
|
|
6d15fcc721 | ||
|
|
3703a1636a | ||
|
|
2041283b29 | ||
|
|
570acd1ae1 | ||
|
|
a1a8d6beb2 | ||
|
|
f281a47a3b | ||
|
|
f66ddc072c | ||
|
|
63e0277f7d | ||
|
|
9b33ee556a | ||
|
|
afa5dcd193 | ||
|
|
7833413e65 | ||
|
|
bdc2613613 | ||
|
|
923bc85ebe | ||
|
|
05ebc7d1bc | ||
|
|
5ec87112cc | ||
|
|
d7d1528412 | ||
|
|
becf3cd9ed | ||
|
|
3838aa2565 | ||
|
|
c4df437840 | ||
|
|
a2e41e5cec | ||
|
|
1a5ec4bab1 | ||
|
|
8ec2cc189b | ||
|
|
a802571353 | ||
|
|
7e6cf58a1e | ||
|
|
53ea8d57ac | ||
|
|
cc6e7dcefb | ||
|
|
fed8b63258 | ||
|
|
9f3855df61 | ||
|
|
9c811bded1 | ||
|
|
e11b9faa07 | ||
|
|
2c1ff71aa3 | ||
|
|
8d26c39037 | ||
|
|
cc43f12ab6 | ||
|
|
c530590922 | ||
|
|
5109dabd47 | ||
|
|
a0ec388f1c | ||
|
|
eb24e07602 | ||
|
|
af8fca7503 | ||
|
|
a12b9b4e7c | ||
|
|
7edb910c35 | ||
|
|
378e1438f1 | ||
|
|
5310e8889a | ||
|
|
e254c1a6f5 | ||
|
|
dc88345069 | ||
|
|
e19504328e | ||
|
|
7ac0cdffc1 | ||
|
|
66b1474564 | ||
|
|
419c77f2d1 | ||
|
|
47ad3e82b0 | ||
|
|
755646ff19 | ||
|
|
37ab81a488 | ||
|
|
2834582dff | ||
|
|
5ab9ff4669 | ||
|
|
2ff04c4b19 | ||
|
|
b8af975c3d | ||
|
|
365318b91e | ||
|
|
b20c159f1f | ||
|
|
ddcbdc77fb | ||
|
|
893e1909e9 | ||
|
|
96c3ae5565 | ||
|
|
327c096682 | ||
|
|
e6fbee9e42 | ||
|
|
a3a5633c73 | ||
|
|
3de6d52325 | ||
|
|
540975a5a0 | ||
|
|
1cf19ce6fd | ||
|
|
71a0ebbedf | ||
|
|
3023c91df2 | ||
|
|
bfff4b08d5 | ||
|
|
9285d8f342 | ||
|
|
87e438750d | ||
|
|
850b65fcd4 | ||
|
|
b65b4e79be | ||
|
|
2483d29b72 | ||
|
|
3d49299ca5 | ||
|
|
46e9ac3c93 | ||
|
|
80020ef97e | ||
|
|
c6d9399856 | ||
|
|
dfde34c776 | ||
|
|
5901e664a9 | ||
|
|
404a8af886 | ||
|
|
e2f35c6f0d | ||
|
|
3c31134e17 | ||
|
|
85052a3e7e | ||
|
|
8e0ab94813 | ||
|
|
df3ee07729 | ||
|
|
fe8884506e | ||
|
|
ff700ff4c7 | ||
|
|
c977238115 | ||
|
|
3afe8da5a0 | ||
|
|
9bb99e691d | ||
|
|
e7e5a1e5d9 | ||
|
|
35baecb3b8 | ||
|
|
b20bf0ddc5 | ||
|
|
8ff4eb8536 | ||
|
|
9cdf6b1874 | ||
|
|
4d12ddba96 | ||
|
|
fc521eff35 | ||
|
|
5c192fcee6 | ||
|
|
9c628426ad | ||
|
|
09e3b9b005 | ||
|
|
b47b06b8d0 | ||
|
|
df9be063f2 | ||
|
|
b531e36b6d | ||
|
|
0a14668df8 | ||
|
|
ce91b466b1 | ||
|
|
769683c183 | ||
|
|
09489ac54f | ||
|
|
ede9b430b8 | ||
|
|
0311405892 | ||
|
|
da8c868247 | ||
|
|
a80cc38d31 | ||
|
|
8b280457f3 | ||
|
|
3082df135c | ||
|
|
417122edce | ||
|
|
ea6304afc9 | ||
|
|
517900be99 | ||
|
|
f09bca90c7 | ||
|
|
25372703cb | ||
|
|
d881c8ed73 | ||
|
|
49b7802a00 | ||
|
|
d42633c44a | ||
|
|
8a6275295c | ||
|
|
86cc320f4b | ||
|
|
a28fc90efe | ||
|
|
27033a5192 | ||
|
|
93dabe6b7b | ||
|
|
e3730e423b | ||
|
|
a224760c6f | ||
|
|
0ed5f440f1 | ||
|
|
65d6dc457e | ||
|
|
9edbc87f01 | ||
|
|
b2d61b843b | ||
|
|
b63e475e3b | ||
|
|
de2f726f71 | ||
|
|
ed8fb8ecad | ||
|
|
f626509133 | ||
|
|
57ce669fe5 | ||
|
|
5c3baf99a3 | ||
|
|
acd2524c42 | ||
|
|
ac32ff5b7c | ||
|
|
41df9c86d5 | ||
|
|
a299626b7d | ||
|
|
2e223cba2e | ||
|
|
2fb030888f | ||
|
|
d3720e9ea0 | ||
|
|
ade60887c9 | ||
|
|
a276b0a4d1 | ||
|
|
bc76bc65d4 | ||
|
|
c7f2aadc4c | ||
|
|
a11937081f | ||
|
|
f53271ddf3 | ||
|
|
cd934d9792 | ||
|
|
3b65a34d15 | ||
|
|
051cd7dbe4 | ||
|
|
87a1aa9761 | ||
|
|
03fe4ab3dd | ||
|
|
f69fd06c5c | ||
|
|
31a0163fb8 | ||
|
|
5ed245ec29 | ||
|
|
66fc8c5eac | ||
|
|
531e811f2a | ||
|
|
a0b7b0186d | ||
|
|
87842c0e03 | ||
|
|
5b59b2d909 | ||
|
|
729b30b968 | ||
|
|
88fa6654b2 | ||
|
|
fe8fbe1b98 | ||
|
|
8908704fed | ||
|
|
bf361b50f0 | ||
|
|
cdf6560782 | ||
|
|
f52024568e | ||
|
|
45bad928c5 | ||
|
|
2ede099f1d | ||
|
|
c4e635158d | ||
|
|
ca4d4918bb | ||
|
|
98a7883739 | ||
|
|
7dd67a89dc | ||
|
|
2f4043dc72 | ||
|
|
ceabd81039 | ||
|
|
32634dad4d | ||
|
|
c5d3cf29bd | ||
|
|
7910383f83 | ||
|
|
213c29d271 | ||
|
|
7870f61b0a | ||
|
|
2880169ddb | ||
|
|
e359a362c0 | ||
|
|
068cbbdcf9 | ||
|
|
9ee07e85a9 | ||
|
|
473eca3600 | ||
|
|
e00f64c807 | ||
|
|
d7c3a8c81e | ||
|
|
50ecd84573 | ||
|
|
5f58fdc896 | ||
|
|
e6c8d9f546 | ||
|
|
e9a07525de | ||
|
|
aed687de07 | ||
|
|
632cb7c710 | ||
|
|
1f719b1b76 | ||
|
|
0442637fc0 | ||
|
|
e9d1062fac | ||
|
|
d324637ba2 | ||
|
|
7415aea898 | ||
|
|
8c173f4fbe | ||
|
|
dab343f9b5 | ||
|
|
b5905625e3 | ||
|
|
41e422ecc9 | ||
|
|
bfdb7c58e4 | ||
|
|
d9afc0d44a | ||
|
|
ece7eddcfe | ||
|
|
63587835a3 | ||
|
|
1e9796928e | ||
|
|
d99a94d647 | ||
|
|
335b7ef931 | ||
|
|
cb250655f9 | ||
|
|
d70e64d598 | ||
|
|
0f2f41ff6c | ||
|
|
cd0b59bf87 | ||
|
|
0aa62825da | ||
|
|
dc4b713855 | ||
|
|
9c356d59cd | ||
|
|
9e18981850 | ||
|
|
5306cc9f54 | ||
|
|
d73b2c0bc4 | ||
|
|
788d1d3e28 | ||
|
|
6d2ad9ae03 | ||
|
|
fe613f1f54 | ||
|
|
98acce582a | ||
|
|
fcc0018ab1 | ||
|
|
e94a9f98a6 | ||
|
|
2e79cbf8a6 | ||
|
|
a2435498e1 | ||
|
|
2109002dc7 | ||
|
|
c8f846b4de | ||
|
|
d49785b863 | ||
|
|
0ed26f76e5 | ||
|
|
cdcecd8879 | ||
|
|
15127d0104 | ||
|
|
29f17f1fd2 | ||
|
|
63d26f7cc0 | ||
|
|
6a84ac16f1 | ||
|
|
e2a584549d | ||
|
|
1d16a3645d | ||
|
|
11537cb636 | ||
|
|
dde77c36c8 | ||
|
|
6e9d91a24c | ||
|
|
8f8044d52a | ||
|
|
1dc5d21046 | ||
|
|
68e7e2eff9 | ||
|
|
5d9cd6991d | ||
|
|
11efbedc20 | ||
|
|
77e698c91b | ||
|
|
3ff13bd3e9 | ||
|
|
0bec2dc635 | ||
|
|
dc9f14e9dc | ||
|
|
5690996c9e | ||
|
|
5270926b30 | ||
|
|
f718524330 | ||
|
|
6fcaa42bdb | ||
|
|
2724442416 | ||
|
|
4a19981a98 | ||
|
|
2dcb331aca | ||
|
|
2e34d13d5c | ||
|
|
fc2066117a | ||
|
|
22df4734b0 | ||
|
|
9e3790b35e | ||
|
|
94d7404357 | ||
|
|
3291618016 | ||
|
|
a8d2d096ca | ||
|
|
f645969a1b | ||
|
|
ef6aeab21e | ||
|
|
fc2f0efe29 | ||
|
|
29dcb2e782 | ||
|
|
f86d9f4fbf | ||
|
|
359af64442 | ||
|
|
f076848bf9 | ||
|
|
97963cf6b2 | ||
|
|
2f3f06f35b | ||
|
|
1e8d10b121 | ||
|
|
bc9cd7f364 | ||
|
|
2bf416f16f | ||
|
|
15dd619ea1 | ||
|
|
3edf383248 | ||
|
|
b92a926614 | ||
|
|
1b5ff93462 | ||
|
|
ba2a325762 | ||
|
|
2aa88fd5e2 | ||
|
|
d5bce250dc | ||
|
|
6684d827f8 | ||
|
|
b4b1a7eb45 | ||
|
|
70c1c4bb08 | ||
|
|
9ce47ccfc5 | ||
|
|
be1867f98d | ||
|
|
3b47c0c12b | ||
|
|
2ebc4e05ff | ||
|
|
db36f95508 | ||
|
|
608b27bcf1 | ||
|
|
2b75139e87 | ||
|
|
e37789f5bd | ||
|
|
b09dad3b56 | ||
|
|
bebf9a7cd6 | ||
|
|
853d37bcbe | ||
|
|
384619146e | ||
|
|
457d284f1e | ||
|
|
d2d96af37c | ||
|
|
63669356de | ||
|
|
cbd56b106c | ||
|
|
ad2803bcde | ||
|
|
11090103e3 | ||
|
|
71ce513b02 | ||
|
|
0463bb4667 | ||
|
|
42d7246d87 | ||
|
|
af8999f5d2 | ||
|
|
681b007017 | ||
|
|
9e5a67f4f5 | ||
|
|
a1fd9e5e4d | ||
|
|
de75f7b20a | ||
|
|
dfa22abd4e | ||
|
|
62769ff58d | ||
|
|
c8322dfd4b | ||
|
|
00c86faea2 | ||
|
|
65e5fc78c1 | ||
|
|
47d43cca9b | ||
|
|
4c911b9176 | ||
|
|
9b6ae61e71 | ||
|
|
28a579136c | ||
|
|
c5dd052476 | ||
|
|
328a4366ab | ||
|
|
c757829566 | ||
|
|
c9e3db6077 | ||
|
|
a745fe09bb | ||
|
|
8ffde5b53d | ||
|
|
1e95bd2cf2 | ||
|
|
890d7fe048 | ||
|
|
8254fec563 | ||
|
|
3172e49a56 | ||
|
|
e7a2a7b5eb | ||
|
|
bbd4656b8b | ||
|
|
a4399578ee | ||
|
|
a4f0cbd53b | ||
|
|
9a3a8668e4 | ||
|
|
0b92c8019a | ||
|
|
6f562d0560 | ||
|
|
1a4995a87a | ||
|
|
22fa761e8e | ||
|
|
a6725a415d | ||
|
|
6dd96ea414 | ||
|
|
39ea33ae4e | ||
|
|
7313943017 | ||
|
|
db478c34fc | ||
|
|
4e64bac57f | ||
|
|
85f555b848 | ||
|
|
11b1ad1b14 | ||
|
|
f4ea87131c | ||
|
|
18e281d5cf | ||
|
|
82cd3c1447 | ||
|
|
8e992e5c85 | ||
|
|
8f20ff042b | ||
|
|
78d280dc5a | ||
|
|
9b77c4dbb4 | ||
|
|
95c3cf6951 | ||
|
|
99f880c34a | ||
|
|
b20b34c569 | ||
|
|
ece449f050 | ||
|
|
e15b736e1f | ||
|
|
9d8d1e689f | ||
|
|
2861672bf9 | ||
|
|
55593610dc | ||
|
|
c1c0a94cd4 | ||
|
|
9def58b211 | ||
|
|
d6b6d7631f | ||
|
|
73eef7a11a | ||
|
|
650b689ad5 | ||
|
|
673489f6f5 | ||
|
|
2db7cf9660 | ||
|
|
790b3625fe | ||
|
|
47b50018df | ||
|
|
bd7d2b4e5f | ||
|
|
52f7de4ea6 | ||
|
|
bf83f78e96 | ||
|
|
aaeea7372c | ||
|
|
43ec99b830 | ||
|
|
5433279f90 | ||
|
|
18a860d32b | ||
|
|
4e6872e31d | ||
|
|
859ebca16a | ||
|
|
4a14a868ab | ||
|
|
3a49252378 | ||
|
|
6d24497665 | ||
|
|
699ede0d95 | ||
|
|
ef968316ff | ||
|
|
6626f86cec | ||
|
|
294bfd488b | ||
|
|
92172da6b7 | ||
|
|
cb41681e9f | ||
|
|
4e4f2dde72 | ||
|
|
1299ac74e8 | ||
|
|
11e50f9c8b | ||
|
|
4167d346c6 | ||
|
|
3f93db214c | ||
|
|
72d69a8ccb | ||
|
|
3910e6f2cc | ||
|
|
eae98cc06a | ||
|
|
2c7b7f4ff3 | ||
|
|
114f94ba11 | ||
|
|
2c5070d34a | ||
|
|
f4508ea766 | ||
|
|
cf8dc18cfd | ||
|
|
25afe6313f | ||
|
|
a9042dad3a | ||
|
|
08d2c9e39b | ||
|
|
88c1d5e4cf | ||
|
|
440eb38920 | ||
|
|
e68049b612 | ||
|
|
35d8df0f08 | ||
|
|
1edd60f919 | ||
|
|
80a553e63d | ||
|
|
ff7bf7d1de | ||
|
|
bcaca6042c | ||
|
|
79ecd9ae17 | ||
|
|
6e1d45df7a | ||
|
|
dcfe9840fc | ||
|
|
2a6bec9409 | ||
|
|
58cb071b65 | ||
|
|
9c1a525514 | ||
|
|
cc5b09661e | ||
|
|
09f4dea6d4 | ||
|
|
84ed3c504f | ||
|
|
53a6a85909 | ||
|
|
f9dd9c3f2c | ||
|
|
9ee56d7ecf | ||
|
|
beb03041f3 | ||
|
|
3f09b801b2 | ||
|
|
d39b7f5307 | ||
|
|
52c533a9ee | ||
|
|
79351c4cbe | ||
|
|
9b3b5edd82 | ||
|
|
83b5115aa4 | ||
|
|
060f09067f | ||
|
|
509133e0dc | ||
|
|
2f68303085 | ||
|
|
a40c08c0a5 | ||
|
|
2718847c96 | ||
|
|
dfb06d5679 | ||
|
|
a609c20ee9 | ||
|
|
ad02af1ed3 | ||
|
|
c2b3f326c1 | ||
|
|
7c6894c700 | ||
|
|
1223ef2356 | ||
|
|
ce4d002458 | ||
|
|
eb04908e77 | ||
|
|
ab9538f922 | ||
|
|
0261dec8df | ||
|
|
fa3144fdd8 | ||
|
|
f38b88d591 | ||
|
|
5193556183 | ||
|
|
0b0ff8ddf4 | ||
|
|
8e9eea9aa2 | ||
|
|
3bdee751de | ||
|
|
68ac640236 | ||
|
|
0a90971308 | ||
|
|
ea623095be | ||
|
|
bcb5fbb03b | ||
|
|
e0a0715d09 | ||
|
|
6d595c693c | ||
|
|
9c8c810226 | ||
|
|
60437b9156 | ||
|
|
4b0dcb428f | ||
|
|
71d37b74b7 | ||
|
|
79203b63b0 | ||
|
|
66f545f5d5 | ||
|
|
257a629254 | ||
|
|
cdd0fa9db3 | ||
|
|
4025334c5b | ||
|
|
e25637aaf4 | ||
|
|
db023450cc | ||
|
|
1c11e3843b | ||
|
|
ede496a21b | ||
|
|
e45fd1a60f | ||
|
|
9fa3fd8b97 | ||
|
|
a0470e588b | ||
|
|
45f2d49dc2 | ||
|
|
53b8b48ba3 | ||
|
|
e9cb4cac84 | ||
|
|
0b63f47e68 | ||
|
|
6d59c0f03a | ||
|
|
ffd3270cab | ||
|
|
3379a6bf34 | ||
|
|
2c19337986 | ||
|
|
0148a8949c | ||
|
|
83a023a2a6 | ||
|
|
4ec0dd07da | ||
|
|
9c5e30bb50 | ||
|
|
41169330b6 | ||
|
|
53fd3ff4a7 | ||
|
|
cd87404c29 | ||
|
|
354f63a521 | ||
|
|
5d9375b48b | ||
|
|
2ab7c30cbe | ||
|
|
6a9a659429 | ||
|
|
8e43f61dee | ||
|
|
900e566dce | ||
|
|
34069838c5 | ||
|
|
0c085c4ee9 | ||
|
|
b6b9c2e6e1 | ||
|
|
c9b7e2ade7 | ||
|
|
3f5f37a5af | ||
|
|
ffaa6da142 | ||
|
|
c96f329349 | ||
|
|
4ded61fd5c | ||
|
|
0905e4eef0 | ||
|
|
f9e822aa69 | ||
|
|
6e403dd41f | ||
|
|
247b80884e | ||
|
|
e2b319c6df | ||
|
|
e1345ca9ac | ||
|
|
4e1a726743 | ||
|
|
d7ca83f021 | ||
|
|
76c6d3ebf9 | ||
|
|
98c4929501 | ||
|
|
a6674b82e9 | ||
|
|
941906fbd0 | ||
|
|
1eb72b08d6 | ||
|
|
7fc4f12d16 | ||
|
|
e395a7a2e8 | ||
|
|
0dc404286b | ||
|
|
63d963e190 | ||
|
|
1f3d9d9a71 | ||
|
|
508fb4ad21 | ||
|
|
bc6e94df52 | ||
|
|
fcaa047d87 | ||
|
|
d6a7b3f956 | ||
|
|
47cef2726a | ||
|
|
4789fcda0d | ||
|
|
4027c28907 | ||
|
|
be3eeed77a | ||
|
|
45facd61ac | ||
|
|
53592eee0a | ||
|
|
b3f0cc8a37 | ||
|
|
fa887ff97f | ||
|
|
ac590ca50b | ||
|
|
c8e8c1b907 | ||
|
|
c9703435e2 | ||
|
|
f56a153d46 | ||
|
|
fc4736b124 | ||
|
|
f993fe45ec | ||
|
|
6bec33e5df | ||
|
|
809349340b | ||
|
|
718d09dba4 | ||
|
|
abc4d8906d | ||
|
|
11cfb8e855 | ||
|
|
64a081e052 | ||
|
|
ac45a9329b | ||
|
|
c9193a4c47 | ||
|
|
c89499c517 | ||
|
|
a45757a3c4 | ||
|
|
24d963b630 | ||
|
|
5a93331bdc | ||
|
|
611170c72d | ||
|
|
ecede77d63 | ||
|
|
460bd7e7f9 | ||
|
|
6de87fe870 | ||
|
|
07056907cb | ||
|
|
d4198d0371 | ||
|
|
7cc9ed0b4b | ||
|
|
a039727f74 | ||
|
|
8c7442d75c | ||
|
|
b342bc002d | ||
|
|
73a92ed086 | ||
|
|
b58582f449 | ||
|
|
305e6d70a5 | ||
|
|
e23c837082 | ||
|
|
6a91ed45ec | ||
|
|
45b3325510 | ||
|
|
764a9588f6 | ||
|
|
d268ebc2e4 | ||
|
|
5890af3a95 | ||
|
|
1e47011290 | ||
|
|
a55dd4dd10 | ||
|
|
4275af6f51 | ||
|
|
e601c740a4 | ||
|
|
1d46fdf0a9 | ||
|
|
e2217ddf33 | ||
|
|
eed8c5ef83 | ||
|
|
1bbcdfa458 | ||
|
|
4b6459dde6 | ||
|
|
341dda1eff | ||
|
|
9914b80db7 | ||
|
|
3805f7002d | ||
|
|
e6dbd74393 | ||
|
|
c480868d2f | ||
|
|
e0df691a0b | ||
|
|
b2961f1936 | ||
|
|
e8480f0855 | ||
|
|
00214bd8c1 | ||
|
|
d5b7197793 | ||
|
|
c6edeeef1c | ||
|
|
4edfa4c2b2 | ||
|
|
64a6f5c197 | ||
|
|
31ac494408 | ||
|
|
85d576ec68 | ||
|
|
d9d48e060d | ||
|
|
03393a00cc | ||
|
|
bf2e86002b | ||
|
|
e62a1b9beb | ||
|
|
66ee94b15d | ||
|
|
1bd6983b35 | ||
|
|
e236dc922c | ||
|
|
28a90e2cc8 | ||
|
|
80b17dedb8 | ||
|
|
2457f27557 | ||
|
|
492e8ab3e6 | ||
|
|
edf75419c8 | ||
|
|
afbb3d439e | ||
|
|
22114366c7 | ||
|
|
ca36aeab22 | ||
|
|
3d22c14436 | ||
|
|
b5cb2232a1 | ||
|
|
bcc0d398ad | ||
|
|
9ed9516700 | ||
|
|
aff9bc8de9 | ||
|
|
4947d4ef73 | ||
|
|
2cb5deeb71 | ||
|
|
2ab82ed6a5 | ||
|
|
32d9a75975 | ||
|
|
e636c0c163 | ||
|
|
223d169c3a | ||
|
|
b85c72fa23 | ||
|
|
919d4c0b4d | ||
|
|
504e25bfcf | ||
|
|
0b00debf50 | ||
|
|
b7c8025aa0 | ||
|
|
2f354aec02 | ||
|
|
8d03af2570 | ||
|
|
370199a77b | ||
|
|
dc52fb58ef | ||
|
|
deea31eb01 | ||
|
|
ec592336cf | ||
|
|
eae06fdfb8 | ||
|
|
04ed24fcbc | ||
|
|
3134144a58 | ||
|
|
c4c2912817 | ||
|
|
48ed4dc83b | ||
|
|
fe98e95aaf | ||
|
|
707001b7d0 | ||
|
|
7c71ecc710 | ||
|
|
660c4bbb73 | ||
|
|
4b6bec708a | ||
|
|
ffdb2485fd | ||
|
|
4066bcebdd | ||
|
|
f5ff5338a4 | ||
|
|
5c59eee778 | ||
|
|
66e727caa1 | ||
|
|
30fbfb7296 | ||
|
|
ecd36e8ba5 | ||
|
|
9a0bc3a5dd | ||
|
|
577ff051e1 | ||
|
|
f06986ed80 | ||
|
|
2a4ad1005b | ||
|
|
d6eb12dba0 | ||
|
|
1400493f26 | ||
|
|
060919ddb5 | ||
|
|
f9ae8e546e | ||
|
|
8b40053209 | ||
|
|
46cb4fecc2 | ||
|
|
d5defe52ac | ||
|
|
2ed5a4ec07 | ||
|
|
54cd526cce | ||
|
|
c43511ef95 | ||
|
|
df2255b369 | ||
|
|
ab6f52ea4a | ||
|
|
84b5580333 | ||
|
|
3ac89e0041 | ||
|
|
000f4ba487 | ||
|
|
baeb3da5b6 | ||
|
|
d7a04d678d | ||
|
|
d32846a94e | ||
|
|
e7e201d9a1 | ||
|
|
fd9e5a6685 | ||
|
|
3f80e41cc4 | ||
|
|
dce1e25345 | ||
|
|
699d9a7822 | ||
|
|
d319839682 | ||
|
|
f411449798 | ||
|
|
0867cc3749 | ||
|
|
83aa121740 | ||
|
|
9bd36df56c | ||
|
|
17b120cbce | ||
|
|
3ff9299457 | ||
|
|
2a043d47c0 | ||
|
|
7d1365de3a | ||
|
|
76eb5d7bca | ||
|
|
b7f86b7634 | ||
|
|
65f7cca658 | ||
|
|
930ae1de35 | ||
|
|
d3ff37c070 | ||
|
|
8f187721b0 | ||
|
|
56b9857fa4 | ||
|
|
195ec1e1ec | ||
|
|
60b6561b89 | ||
|
|
c5bcd42382 | ||
|
|
3d94b9a9f7 | ||
|
|
9cbba0eebf | ||
|
|
4ed6b8f741 | ||
|
|
997f4a2cc2 | ||
|
|
19560fa00d | ||
|
|
d0237ed24a | ||
|
|
76ea6ca9d3 | ||
|
|
e5facf31e9 | ||
|
|
acc512b600 | ||
|
|
9538dd7285 | ||
|
|
66ff69471d | ||
|
|
de54acf175 | ||
|
|
72e6047c8c | ||
|
|
871d630551 | ||
|
|
d3002a8e65 | ||
|
|
f4e6d8921e | ||
|
|
e6e0ac37ae | ||
|
|
394e295811 | ||
|
|
8170db2e7c | ||
|
|
c175c8527c | ||
|
|
475d99af59 | ||
|
|
b30cbf638f | ||
|
|
516e39d737 | ||
|
|
1fd3fd9588 | ||
|
|
ee2dfbf11f | ||
|
|
0f201375e1 | ||
|
|
5111bcb6f3 | ||
|
|
2fdc54f62d | ||
|
|
743409ef1c | ||
|
|
d88d5a756d | ||
|
|
5a6c8dd983 | ||
|
|
4490dde69c | ||
|
|
8654c554ea | ||
|
|
e3b968802a | ||
|
|
387d386b8a | ||
|
|
38fcbc6412 | ||
|
|
3f1e485e9a | ||
|
|
568daeb0c8 | ||
|
|
74b38adc61 | ||
|
|
ec48bda85b | ||
|
|
81988aa10e | ||
|
|
9af41ff8c0 | ||
|
|
ab4f396e74 | ||
|
|
e47faa11b7 | ||
|
|
5ceaa9c69d | ||
|
|
204878e743 | ||
|
|
c9f4ebdcd4 | ||
|
|
b6e8f60b72 | ||
|
|
e94490d55d | ||
|
|
86968247fd | ||
|
|
d126f227b0 | ||
|
|
e61c148411 | ||
|
|
d4c0b8aa9b | ||
|
|
7b163e7475 | ||
|
|
8cc2f02f1f | ||
|
|
e463d3c261 | ||
|
|
1142786b55 | ||
|
|
8f2a1e24b7 | ||
|
|
6d05f5e6e7 | ||
|
|
90c0b94435 | ||
|
|
a5a1abe670 | ||
|
|
2495d01bea | ||
|
|
386ee6e23b | ||
|
|
17c97467d7 | ||
|
|
95431cb944 | ||
|
|
773a9c377c | ||
|
|
a82c1d8e6d | ||
|
|
192fc1a0cd | ||
|
|
8bb6f632bb | ||
|
|
59865f49a9 | ||
|
|
224f9702ac | ||
|
|
80f9036327 | ||
|
|
d741f9e0ff | ||
|
|
14d42b51e3 | ||
|
|
c597a2dadd | ||
|
|
aa6e10a4b8 | ||
|
|
32c6e2d371 | ||
|
|
f0b4e85a5b | ||
|
|
7c55979561 | ||
|
|
f63976e833 | ||
|
|
06743fc076 | ||
|
|
2249328776 | ||
|
|
65ab3b5aca | ||
|
|
1bae8b3541 | ||
|
|
9a8e005a79 | ||
|
|
0c547a65d0 | ||
|
|
0cc646a60d | ||
|
|
414acebf64 | ||
|
|
2b0364464e | ||
|
|
be57f8eafc | ||
|
|
8f41896a47 | ||
|
|
0e1c62051e | ||
|
|
d2a12edb06 | ||
|
|
18f81f6c38 | ||
|
|
3706917cc3 | ||
|
|
ee1e5f932c | ||
|
|
96463b0eae | ||
|
|
b623d305f4 | ||
|
|
12df1c8316 | ||
|
|
d55d27e816 | ||
|
|
a0177952b6 | ||
|
|
ea3eec6438 | ||
|
|
fa63231915 | ||
|
|
8ba0f420cd | ||
|
|
a855d5560b | ||
|
|
202e1745ca | ||
|
|
7a1fda21ff | ||
|
|
d1cf5938f2 | ||
|
|
d1ca6ad9f5 | ||
|
|
5e69a0cc7f | ||
|
|
b0833c1437 | ||
|
|
e88592b1ee | ||
|
|
f7bba09772 | ||
|
|
28d00c08cf | ||
|
|
0b8702bf0f | ||
|
|
5c2fe4ef86 | ||
|
|
73e8368ee0 | ||
|
|
7679af256b | ||
|
|
378bb49dd9 | ||
|
|
762d98c6a2 | ||
|
|
69f449b199 | ||
|
|
b7d4a31805 | ||
|
|
6f00af8ddb | ||
|
|
05b4c90ba1 | ||
|
|
d35573ae97 | ||
|
|
4620ac6af6 | ||
|
|
b30be27c68 | ||
|
|
9d307ca2fc | ||
|
|
8ce35dd771 | ||
|
|
123f982898 | ||
|
|
eceaf92806 | ||
|
|
2bbe0e02dc | ||
|
|
b9f2e48f11 | ||
|
|
9eb323e9a7 | ||
|
|
1cb10c3c35 | ||
|
|
21817cd187 | ||
|
|
86519919da | ||
|
|
479d153262 | ||
|
|
99e3d6b62a | ||
|
|
9e11eb6ebe | ||
|
|
1d5c4b88f5 | ||
|
|
16ee622c5f | ||
|
|
fe76aa3bed | ||
|
|
bb5385e3f6 | ||
|
|
e1e5ab55d4 | ||
|
|
5c937d0a19 | ||
|
|
f5465f6634 | ||
|
|
7c89a57a35 | ||
|
|
d7842c0ef6 | ||
|
|
ae51b7a333 | ||
|
|
2289cbad2b | ||
|
|
7d4773be31 | ||
|
|
89443b99c8 | ||
|
|
e6555dca53 | ||
|
|
f510712cc6 | ||
|
|
eb126f7e39 | ||
|
|
44881b0ecb | ||
|
|
b3891efa11 | ||
|
|
fadada1130 | ||
|
|
aa6b123d71 | ||
|
|
d23bca1c46 | ||
|
|
18a8f03a89 | ||
|
|
222cc70b86 | ||
|
|
810d4ce8e2 | ||
|
|
bef6df0cf1 | ||
|
|
db8c955464 | ||
|
|
200be24751 | ||
|
|
cc815aea76 | ||
|
|
e0f17f4cef | ||
|
|
e5de1334a7 | ||
|
|
75334d3e6f | ||
|
|
e5e1cfab63 | ||
|
|
e08c8c231e | ||
|
|
11ceeac2e1 | ||
|
|
160cb97d8e | ||
|
|
2aaaa24b0a | ||
|
|
be79fd9d73 | ||
|
|
08fcab1748 | ||
|
|
8d824647d6 | ||
|
|
9af7d5bc02 | ||
|
|
122844f143 | ||
|
|
6bbac6e39f | ||
|
|
452e5ecebb | ||
|
|
d31f6b96a4 | ||
|
|
1426813600 | ||
|
|
d2b9e6ced1 | ||
|
|
ff18ef244d | ||
|
|
849bf15b12 | ||
|
|
d1de3ddb73 | ||
|
|
cbf60147c0 | ||
|
|
da7c5e7b58 | ||
|
|
421734cbe1 | ||
|
|
712bed1f82 |
4
AUTHORS
4
AUTHORS
@@ -1,8 +1,8 @@
|
||||
Copyright 2008 - 2014 by Phoronix Media.
|
||||
Copyright 2008 - 2016 by Phoronix Media.
|
||||
|
||||
Lead Architects:
|
||||
|
||||
- Michael Larabel <michael@phoronix.com>
|
||||
- Matthew Tippett <matthew@phoronix.com>
|
||||
|
||||
There's also other individuals and organizations who have contributed patches, ideas, and made other contributions to the Phoronix Test Suite. These names are mentioned in the HTML / PDF documentation.
|
||||
There's also other individuals and organizations who have contributed patches, ideas, and made other contributions to the Phoronix Test Suite.
|
||||
|
||||
2079
CHANGE-LOG
2079
CHANGE-LOG
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,7 @@
|
||||
Phoronix Test Suite 5.2.0m3
|
||||
# Phoronix Test Suite 6.2.1
|
||||
http://www.phoronix-test-suite.com/
|
||||
#####################################
|
||||
|
||||
The Phoronix Test Suite is the most comprehensive testing and benchmarking
|
||||
The **Phoronix Test Suite** is the most comprehensive testing and benchmarking
|
||||
platform available for Linux, Solaris, Mac OS X, and BSD operating systems. The
|
||||
Phoronix Test Suite allows for carrying out tests in a fully automated manner
|
||||
from test installation to execution and reporting. All tests are meant to be
|
||||
@@ -31,15 +30,15 @@ seamless collection of test profiles and/or additional test suites. A test
|
||||
profile consists of a set of bash/shell scripts and XML files while a test suite
|
||||
is a single XML file.
|
||||
|
||||
OpenBenchmarking.org <http://www.openbenchmarking.org/> also allows for
|
||||
[OpenBenchmarking.org](http://www.openbenchmarking.org/) also allows for
|
||||
conducting side-by-side result comparisons, a central location for storing and
|
||||
sharing test results, and collaborating over test data. Phoromatic
|
||||
<http://www.phoromatic.com/> is a complementary platform to OpenBenchmarking.org
|
||||
and the Phoronix Test Suite for interfacing with Phoronix Test Suite client(s)
|
||||
to automatically execute test runs on a timed, per-commit, or other
|
||||
trigger-driven basis. Phoromatic is designed for enterprise and allows for the
|
||||
easy management of multiple networked systems running Phoronix Test Suite
|
||||
clients via a single web-based interface.
|
||||
sharing test results, and collaborating over test data.
|
||||
[Phoromatic](http://www.phoromatic.com/) is a complementary platform to
|
||||
OpenBenchmarking.org and the Phoronix Test Suite for interfacing with Phoronix
|
||||
Test Suite client(s) to automatically execute test runs on a timed, per-commit,
|
||||
or other trigger-driven basis. Phoromatic is designed for enterprise and allows
|
||||
for the easy management of multiple networked systems running Phoronix Test
|
||||
Suite clients via a single web-based interface.
|
||||
|
||||
Professional support and custom engineering for the Phoronix Test Suite,
|
||||
Phoromatic, and OpenBenchmarking.org is available by contacting
|
||||
@@ -47,10 +46,9 @@ Phoromatic, and OpenBenchmarking.org is available by contacting
|
||||
|
||||
Full details on the Phoronix Test Suite setup and usage is available from the
|
||||
included HTML/PDF documentation within the phoronix-test-suite package and from
|
||||
the Phoronix Test Suite web-site.
|
||||
the Phoronix Test Suite website.
|
||||
|
||||
INSTALLATION & SETUP:
|
||||
#####################
|
||||
## Installation & Setup
|
||||
|
||||
The Phoronix Test Suite is supported on Linux, *BSD, Solaris, Mac OS X, and
|
||||
Windows systems. However, the most full-featured and well supported operating
|
||||
@@ -63,32 +61,31 @@ architectures.
|
||||
The Phoronix Test Suite can be installed for system-wide usage or run locally
|
||||
without installation from the extracted tar.gz/zip package. The only hard
|
||||
dependency on the Phoronix Test Suite is having command-line support for PHP
|
||||
(PHP 5.2+) installed. A complete PHP stack (e.g. with web-server) is NOT needed,
|
||||
but merely the PHP command-line support, which is widely available from
|
||||
operating system package managers under the name php, php5-cli, or php5.
|
||||
(PHP 5.3+) installed. A complete PHP stack (e.g. with web-server) is **not**
|
||||
needed, but merely the PHP command-line support, which is widely available from
|
||||
operating system package managers under the name `php`, `php5-cli`, or `php5`.
|
||||
|
||||
USAGE:
|
||||
######
|
||||
## Usage
|
||||
|
||||
The process to download, install/setup, execute, and report the results of a
|
||||
benchmark can be as simple as a command such as *phoronix-test-suite benchmark
|
||||
smallpt* to run a simple CPU test profile. If wishing to simply install a test,
|
||||
it's a matter of running *phoronix-test-suite install <test or suite name>* and
|
||||
to run it's *phoronix-test-suite run <test or suite name>*. There's also a batch
|
||||
mode for non-interactive benchmarking by first running *phoronix-test-suite
|
||||
batch-setup* and then using the *batch-run* sub-command rather than *run*.
|
||||
benchmark can be as simple as a command such as `phoronix-test-suite benchmark
|
||||
smallpt` to run a simple CPU test profile. If wishing to simply install a test,
|
||||
it's a matter of running `phoronix-test-suite install <test or suite name>` and
|
||||
to run it's `phoronix-test-suite run <test or suite name>`. There's also a batch
|
||||
mode for non-interactive benchmarking by first running `phoronix-test-suite
|
||||
batch-setup` and then using the `batch-run` sub-command rather than `run`.
|
||||
|
||||
Viewing installed system hardware and software is available via
|
||||
*phoronix-test-suite system-info* or *phoronix-test-suite detailed-system-info*
|
||||
`phoronix-test-suite system-info` or `phoronix-test-suite detailed-system-info`
|
||||
for greater verbosity.
|
||||
|
||||
Facilitating a result comparison from OpenBenchmarking.org can be done by
|
||||
running, for example, *phoronix-test-suite benchmark 1204293-BY-PHORONIX357* if
|
||||
running, for example, `phoronix-test-suite benchmark 1204293-BY-PHORONIX357` if
|
||||
wishing to compare the results of the
|
||||
*http://openbenchmarking.org/result/1204293-BY-PHORONIX357* result file.
|
||||
`http://openbenchmarking.org/result/1204293-BY-PHORONIX357` result file.
|
||||
|
||||
Additional information is available from the Phoronix Test Suite web-site
|
||||
Additional information is available from the Phoronix Test Suite website
|
||||
<http://www.phoronix-test-suite.com/> and the material bundled within the
|
||||
phoronix-test-suite/documentation/ directory. A man page is also bundled with
|
||||
`phoronix-test-suite/documentation/` directory. A man page is also bundled with
|
||||
the phoronix-test-suite software.
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2013, Phoronix Media
|
||||
Copyright (C) 2008 - 2013, Michael Larabel
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -23,9 +23,20 @@
|
||||
if(!is_executable("phoronix-test-suite") || !is_dir("pts-core/"))
|
||||
{
|
||||
echo "\nYou must run this script from the root directory of the phoronix-test-suite/ folder!\n";
|
||||
echo "Example: php5 pts-core/static/scripts/package-build-deb.php\n";
|
||||
echo "Example: php5 deploy/deb-package/build-package-deb.php\n";
|
||||
exit(0);
|
||||
}
|
||||
if(!is_executable('/usr/bin/dpkg'))
|
||||
{
|
||||
echo PHP_EOL . "dpkg must be present on the system to generate the phoronix-test-suite Debian package." . PHP_EOL . PHP_EOL;
|
||||
exit;
|
||||
}
|
||||
if(!is_executable('/usr/bin/fakeroot'))
|
||||
{
|
||||
echo PHP_EOL . "fakeroot must be present on the system to generate the phoronix-test-suite Debian package." . PHP_EOL . PHP_EOL;
|
||||
exit;
|
||||
}
|
||||
|
||||
@require("pts-core/pts-core.php");
|
||||
|
||||
if(!defined("PTS_VERSION"))
|
||||
@@ -49,6 +60,7 @@ shell_exec("chmod +x /tmp/pts-deb-builder/usr/bin/phoronix-test-suite");
|
||||
$control_file = "Package: phoronix-test-suite\n";
|
||||
$control_file .= "Version: " . $pts_version . "\n";
|
||||
$control_file .= "Section: Utilities\n";
|
||||
$control_file .= "Installed-Size: " . shell_exec("cd /tmp/pts-deb-builder/; du -s | cut -f 1");
|
||||
$control_file .= "Priority: optional\n";
|
||||
$control_file .= "Architecture: all\n";
|
||||
$control_file .= "Depends: php5-cli, php5-gd, php5-json\n";
|
||||
@@ -58,7 +70,7 @@ $control_file .= "Description: An Automated, Open-Source Testing Framework\n " .
|
||||
$control_file .= "Homepage: http://www.phoronix-test-suite.com/ \n";
|
||||
file_put_contents("/tmp/pts-deb-builder/DEBIAN/control", $control_file);
|
||||
|
||||
shell_exec("dpkg --build /tmp/pts-deb-builder ../phoronix-test-suite_" . $pts_version . "_all.deb");
|
||||
shell_exec("fakeroot dpkg --build /tmp/pts-deb-builder ../phoronix-test-suite_" . $pts_version . "_all.deb");
|
||||
shell_exec("rm -rf /tmp/pts-deb-builder");
|
||||
|
||||
?>
|
||||
29
deploy/deployments.md
Normal file
29
deploy/deployments.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Pre-Scripted Phoronix Test Suite / Phoromatic Deployments
|
||||
|
||||
## deb-package: Generate A Debian/Ubuntu Package
|
||||
|
||||
Running `php deploy/deb-package/build-package-deb.php` from the main `phoronix-test-suite/` directory will generate a basic Phoronix-Test-Suite Debian package. This script depends upon `fakeroot` and `dpkg` being present on the system.
|
||||
|
||||
## rpm-package: Generate A RedHat/Fedora RPM Package
|
||||
|
||||
Running `php deploy/rpm-package/build-package-rpm.php` from the main `phoronix-test-suite/` directory will generate a basic Phoronix-Test-Suite RPM package for Red Hat / Fedora based distributions. This script depends upon `rpmbuild` being present on the system.
|
||||
|
||||
## phoromatic-upstart: Reference Upstart job files for Phoromatic
|
||||
|
||||
The `*.conf` files provide basic `phoromatic-client` and `phoromatic-server` job files for Upstart-powered Linux systems looking to deploy the Phoromatic on either the front or back-end. Read the Phoronix Test Suite documentation for more details.
|
||||
|
||||
## phoromatic-systemd: Reference systemd service files for Phoromatic
|
||||
|
||||
The `*.service` files provide basic `phoromatic-client` and `phoromatic-server` job files for systemd-based Linux systems looking to deploy Phoromatic for controlling the Phoronix Test Suite.
|
||||
|
||||
## phoromatic-initd: Reference sysvinit script for Phoromatic
|
||||
|
||||
The files provide basic `phoromatic-client` /etc/init.d implementation for older Linux systems.
|
||||
|
||||
## JuJu
|
||||
|
||||
Ubuntu JuJu deployment charm for the Phoronix Test Suite.
|
||||
|
||||
## farm-system-customizations: Example files of common system changes made to systems in the LinuxBenchmarking.com farm
|
||||
|
||||
Various scripts commonly used by the Phoronix reference farm / LinuxBenchmarking.com for reference purposes.
|
||||
27
deploy/farm-system-customizations/intel-xorg-headless.conf
Normal file
27
deploy/farm-system-customizations/intel-xorg-headless.conf
Normal file
@@ -0,0 +1,27 @@
|
||||
Section "Monitor"
|
||||
Identifier "Monitor0"
|
||||
Modeline "1920x1080" 174.83 1920 2056 2248 2536 1080 1081 1084 1149 # 174.83 MHz, 68.94 kHz, 60.00 Hz
|
||||
Option "PreferredMode" "1920x1080"
|
||||
Option "Enable" "true"
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
Identifier "Device0"
|
||||
Driver "intel" #Choose the driver used for this monitor
|
||||
Option "DDC" "0"
|
||||
Option "Virtualheads" "1"
|
||||
Option "Vsync" "0"
|
||||
Option "SwapbuffersWait" "0"
|
||||
Option "DRI" "3"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "Screen0" #Collapse Monitor and Device section to Screen section
|
||||
Device "Device0"
|
||||
Monitor "Monitor0"
|
||||
DefaultDepth 24 #Choose the depth (16||24)
|
||||
SubSection "Display"
|
||||
Depth 24
|
||||
Modes "1920x1080" #Choose the resolution
|
||||
EndSubSection
|
||||
EndSection
|
||||
23
deploy/farm-system-customizations/radeon-xorg-headless.conf
Normal file
23
deploy/farm-system-customizations/radeon-xorg-headless.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
Section "Device"
|
||||
Identifier "Device0"
|
||||
Driver "radeon"
|
||||
Option "SwapBuffersWait" "0"
|
||||
Option "DRI "3"
|
||||
EndSection
|
||||
|
||||
Section "Monitor"
|
||||
Identifier "Monitor0"
|
||||
Option "enable" "true"
|
||||
Modeline "1920x1080" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "Fake"
|
||||
Device "Device0"
|
||||
Monitor "Monitor0"
|
||||
Option "ConnectedMonitor" "Monitor0"
|
||||
SubSection "Display"
|
||||
Depth 24
|
||||
Modes "1920x1080"
|
||||
EndSubSection
|
||||
EndSection
|
||||
10
deploy/farm-system-customizations/ubuntu-initial-setup.sh
Executable file
10
deploy/farm-system-customizations/ubuntu-initial-setup.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
sudo apt-get install openssh-server git-core php5-cli
|
||||
|
||||
echo "GRUB_RECORDFAIL_TIMEOUT=0" >> /etc/default/grub
|
||||
update-grub
|
||||
|
||||
sudo passwd
|
||||
|
||||
# check if needing "tty -s &&" for auto log-in user in ~/.profile
|
||||
116
deploy/juju/trusty/pts/README.md
Normal file
116
deploy/juju/trusty/pts/README.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Overview
|
||||
|
||||
[Phoronix Test Suite](http://www.phoronix-test-suite.com/) (PTS) is a comprehensive
|
||||
testing and benchmarking suite.
|
||||
|
||||
This charm requires Juju 1.23 or later and uses [Juju
|
||||
Actions](https://jujucharms.com/docs/latest/authors-charm-actions/) to run the
|
||||
benchmarks.
|
||||
|
||||
|
||||
# Usage
|
||||
|
||||
First bootstrap Juju and then deploy pts:
|
||||
|
||||
juju bootstrap
|
||||
juju deploy pts
|
||||
|
||||
From source:
|
||||
|
||||
cd phoronix-test-suite/deploy/juju
|
||||
juju deploy --repository=. local:trusty/pts
|
||||
|
||||
# Configuration
|
||||
|
||||
juju set pts user-config="`cat /path/to/user-config.xml`"
|
||||
|
||||
# Running benchmarks
|
||||
|
||||
You can list all of the actions available with the following command:
|
||||
|
||||
juju action defined pts
|
||||
|
||||
This charm supports the following benchmarks:
|
||||
|
||||
- `cpu`: CPU centric stress tests
|
||||
- `custom`: Custom stress tests
|
||||
- `io`: IO centric tests.
|
||||
- `memory`: Memory centric stress tets
|
||||
- `smoke`: Smoke test, tests that complete quickly.
|
||||
|
||||
To execute a benchmark you can use a Juju action, in this example we run the cpu
|
||||
stress tests on the first pts unit launched:
|
||||
|
||||
juju action do pts/0 cpu
|
||||
|
||||
or in this case, do a io test on pts unit 3:
|
||||
|
||||
juju action do pts/3 io
|
||||
|
||||
You can also run benchmarks across the entire pts service:
|
||||
```sh
|
||||
juju deploy pts # Deploys one unit
|
||||
juju add-unit -n10 pts # Add 10 more nodes
|
||||
juju action do pts memory # Exec the memory benchmark on all 11 pts nodes
|
||||
```
|
||||
If you want to run custom benchmarks:
|
||||
|
||||
juju action do pts/0 smoke tests='pts/apache pts/nginx'
|
||||
|
||||
# Check on actions
|
||||
|
||||
`juju action status` allows you to see the current status of an action. The benchmark results will be available once the action status has changed to `completed`.
|
||||
|
||||
```
|
||||
juju action status 7707a291-be29-46aa-8d02-2daa8ee24ebf
|
||||
actions:
|
||||
- id: 7707a291-be29-46aa-8d02-2daa8ee24ebf
|
||||
status: running
|
||||
unit: pts/0
|
||||
```
|
||||
|
||||
# Get results
|
||||
|
||||
Once an action has completed, you can fetch the results in yaml or json, in addition to the default *smart* format. The `wait` flag allows you to tell fetch how long to wait for results. This is useful if you want to block while waiting for an action to finish.
|
||||
|
||||
```
|
||||
juju action fetch --wait 0 7707a291-be29-46aa-8d02-2daa8ee24ebf
|
||||
results:
|
||||
results:
|
||||
cachebench-read:
|
||||
units: MB/s
|
||||
value: "1129.95"
|
||||
cachebench-read-modify-write:
|
||||
units: MB/s
|
||||
value: "5158.10"
|
||||
cachebench-write:
|
||||
units: MB/s
|
||||
value: "3601.54"
|
||||
phpbench:
|
||||
units: Score
|
||||
value: "35783"
|
||||
stream-add:
|
||||
units: MB/s
|
||||
value: "13187.50"
|
||||
stream-copy:
|
||||
units: MB/s
|
||||
value: "12179.08"
|
||||
stream-scale:
|
||||
units: MB/s
|
||||
value: "12292.20"
|
||||
stream-triad:
|
||||
units: MB/s
|
||||
value: "13069.26"
|
||||
status: completed
|
||||
timing:
|
||||
completed: 2015-03-23 18:47:32 +0000 UTC
|
||||
enqueued: 2015-03-23 17:51:59 +0000 UTC
|
||||
started: 2015-03-23 17:52:03 +0000 UTC
|
||||
```
|
||||
|
||||
The raw output from pts will be stored on the unit, in timestamped directories under /opt/pts/results.
|
||||
|
||||
# Contact Information
|
||||
|
||||
- Maintainer: Adam Israel <adam.israel@canonical.com>
|
||||
- [Phoronix Test Suite](http://www.phoronix-test-suite.com/) homepage
|
||||
20
deploy/juju/trusty/pts/actions.yaml
Normal file
20
deploy/juju/trusty/pts/actions.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
custom:
|
||||
description: "Custom stress tests"
|
||||
params:
|
||||
tests:
|
||||
description: "Which PTS tests to run, space delimited. See README for full list"
|
||||
type: string
|
||||
default: ""
|
||||
smoke:
|
||||
description: Smoke test, tests that complete quickly.
|
||||
params:
|
||||
tests:
|
||||
description: "Memory centric stress tests"
|
||||
type: string
|
||||
default: "pts/phpbench pts/cachebench pts/stream"
|
||||
memory:
|
||||
description: Memory centric stress tets
|
||||
cpu:
|
||||
description: CPU centric stress tests
|
||||
io:
|
||||
description: "IO centric tests."
|
||||
27
deploy/juju/trusty/pts/actions/benchmark
Executable file
27
deploy/juju/trusty/pts/actions/benchmark
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
run_benchmark() {
|
||||
params="$@"
|
||||
|
||||
mkdir -p /opt/pts/results
|
||||
rm -rf /root/.phoronix-test-suite
|
||||
cp -Rpf files/dotfile-phoronix-test-suite /root/.phoronix-test-suite
|
||||
|
||||
run=`date +%s`
|
||||
|
||||
userconfig=`config-get user-config`
|
||||
if [ ! -z "$userconfig" ]; then
|
||||
echo $userconfig > /root/.phoronix-test-suite/user-config.xml
|
||||
fi
|
||||
|
||||
phoronix-test-suite batch-install $params > /dev/null 2>&1
|
||||
|
||||
benchmark-start || true
|
||||
phoronix-test-suite batch-run $params
|
||||
benchmark-finish || true
|
||||
rsync -aqz /root/.phoronix-test-suite /opt/pts/results/$run
|
||||
|
||||
scripts/parse /opt/pts/results/$run/.phoronix-test-suite/test-results/$(date +%Y)-*/test-1.xml
|
||||
}
|
||||
11
deploy/juju/trusty/pts/actions/custom
Executable file
11
deploy/juju/trusty/pts/actions/custom
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
# We're just sourcing the central benchmark, typically people will just put
|
||||
# their benchmarks in one file.
|
||||
|
||||
. actions/benchmark
|
||||
|
||||
params=`action-get tests`
|
||||
run_benchmark $params
|
||||
9
deploy/juju/trusty/pts/actions/memory
Executable file
9
deploy/juju/trusty/pts/actions/memory
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# We're just sourcing the central benchmark, typically people will just put
|
||||
# their benchmarks in one file.
|
||||
. actions/benchmark
|
||||
|
||||
run_benchmark pts/ramspeed pts/stream
|
||||
1
deploy/juju/trusty/pts/actions/smoke
Symbolic link
1
deploy/juju/trusty/pts/actions/smoke
Symbolic link
@@ -0,0 +1 @@
|
||||
custom
|
||||
18
deploy/juju/trusty/pts/config.yaml
Normal file
18
deploy/juju/trusty/pts/config.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
options:
|
||||
submit-results:
|
||||
default: false
|
||||
description: Submit the results of benchmark runs to OpenBenchmarking.org.
|
||||
type: boolean
|
||||
proxy-address:
|
||||
default: ''
|
||||
description: The address of the proxy server to use.
|
||||
type: string
|
||||
proxy-port:
|
||||
default: 0
|
||||
description: The port of the proxy server to use.
|
||||
type: int
|
||||
user-config:
|
||||
default: ''
|
||||
description: The contents of the user-config.xml to use for defaults.
|
||||
type: string
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--Phoronix Test Suite v3.6.1 (Arendal)-->
|
||||
<?xml-stylesheet type="text/xsl" href="xsl/pts-user-config-viewer.xsl"?>
|
||||
<PhoronixTestSuite>
|
||||
<Options>
|
||||
<OpenBenchmarking>
|
||||
<AnonymousUsageReporting>FALSE</AnonymousUsageReporting>
|
||||
<AnonymousSoftwareReporting>FALSE</AnonymousSoftwareReporting>
|
||||
<AnonymousHardwareReporting>FALSE</AnonymousHardwareReporting>
|
||||
<IndexCacheTTL>3</IndexCacheTTL>
|
||||
<AlwaysUploadSystemLogs>FALSE</AlwaysUploadSystemLogs>
|
||||
</OpenBenchmarking>
|
||||
<General>
|
||||
<DefaultBrowser></DefaultBrowser>
|
||||
<UsePhodeviCache>TRUE</UsePhodeviCache>
|
||||
<DefaultDisplayMode>DEFAULT</DefaultDisplayMode>
|
||||
</General>
|
||||
<Modules>
|
||||
<LoadModules>toggle_screensaver, update_checker</LoadModules>
|
||||
</Modules>
|
||||
<Installation>
|
||||
<RemoveDownloadFiles>TRUE</RemoveDownloadFiles>
|
||||
<SearchMediaForCache>TRUE</SearchMediaForCache>
|
||||
<SymLinkFilesFromCache>FALSE</SymLinkFilesFromCache>
|
||||
<PromptForDownloadMirror>FALSE</PromptForDownloadMirror>
|
||||
<EnvironmentDirectory>~/.phoronix-test-suite/installed-tests/</EnvironmentDirectory>
|
||||
<CacheDirectory>~/.phoronix-test-suite/download-cache/</CacheDirectory>
|
||||
</Installation>
|
||||
<Testing>
|
||||
<SaveSystemLogs>TRUE</SaveSystemLogs>
|
||||
<SaveInstallationLogs>TRUE</SaveInstallationLogs>
|
||||
<SaveTestLogs>TRUE</SaveTestLogs>
|
||||
<RemoveTestInstallOnCompletion>FALSE</RemoveTestInstallOnCompletion>
|
||||
<ResultsDirectory>~/.phoronix-test-suite/test-results/</ResultsDirectory>
|
||||
<AlwaysUploadResultsToOpenBenchmarking>FALSE</AlwaysUploadResultsToOpenBenchmarking>
|
||||
</Testing>
|
||||
<TestResultValidation>
|
||||
<DynamicRunCount>TRUE</DynamicRunCount>
|
||||
<LimitDynamicToTestLength>20</LimitDynamicToTestLength>
|
||||
<StandardDeviationThreshold>3.50</StandardDeviationThreshold>
|
||||
<ExportResultsTo></ExportResultsTo>
|
||||
</TestResultValidation>
|
||||
<BatchMode>
|
||||
<SaveResults>TRUE</SaveResults>
|
||||
<OpenBrowser>FALSE</OpenBrowser>
|
||||
<UploadResults>FALSE</UploadResults>
|
||||
<PromptForTestIdentifier>FALSE</PromptForTestIdentifier>
|
||||
<PromptForTestDescription>FALSE</PromptForTestDescription>
|
||||
<PromptSaveName>FALSE</PromptSaveName>
|
||||
<RunAllTestCombinations>TRUE</RunAllTestCombinations>
|
||||
<Configured>TRUE</Configured>
|
||||
</BatchMode>
|
||||
<Networking>
|
||||
<NoNetworkCommunication>FALSE</NoNetworkCommunication>
|
||||
<Timeout>20</Timeout>
|
||||
<ProxyAddress></ProxyAddress>
|
||||
<ProxyPort></ProxyPort>
|
||||
</Networking>
|
||||
</Options>
|
||||
</PhoronixTestSuite>
|
||||
@@ -0,0 +1,47 @@
|
||||
PhoronixTestSuite:
|
||||
Options:
|
||||
Installation:
|
||||
SymLinkFilesFromCache: "FALSE"
|
||||
SearchMediaForCache: "TRUE"
|
||||
EnvironmentDirectory: ~/.phoronix-test-suite/installed-tests/
|
||||
PromptForDownloadMirror: "FALSE"
|
||||
RemoveDownloadFiles: "TRUE"
|
||||
CacheDirectory: ~/.phoronix-test-suite/download-cache/
|
||||
Modules:
|
||||
LoadModules: toggle_screensaver, update_checker
|
||||
General:
|
||||
DefaultDisplayMode: DEFAULT
|
||||
DefaultBrowser:
|
||||
UsePhodeviCache: "TRUE"
|
||||
Networking:
|
||||
ProxyPort:
|
||||
ProxyAddress:
|
||||
NoNetworkCommunication: "FALSE"
|
||||
Timeout: "20"
|
||||
BatchMode:
|
||||
PromptSaveName: "FALSE"
|
||||
SaveResults: "TRUE"
|
||||
Configured: "TRUE"
|
||||
RunAllTestCombinations: "TRUE"
|
||||
PromptForTestIdentifier: "FALSE"
|
||||
OpenBrowser: "FALSE"
|
||||
UploadResults: "FALSE"
|
||||
PromptForTestDescription: "FALSE"
|
||||
TestResultValidation:
|
||||
StandardDeviationThreshold: "3.50"
|
||||
DynamicRunCount: "TRUE"
|
||||
ExportResultsTo:
|
||||
LimitDynamicToTestLength: "20"
|
||||
Testing:
|
||||
RemoveTestInstallOnCompletion: "FALSE"
|
||||
ResultsDirectory: ~/.phoronix-test-suite/test-results/
|
||||
SaveSystemLogs: "TRUE"
|
||||
AlwaysUploadResultsToOpenBenchmarking: "FALSE"
|
||||
SaveTestLogs: "TRUE"
|
||||
SaveInstallationLogs: "TRUE"
|
||||
OpenBenchmarking:
|
||||
IndexCacheTTL: "3"
|
||||
AlwaysUploadSystemLogs: "FALSE"
|
||||
AnonymousUsageReporting: "FALSE"
|
||||
AnonymousHardwareReporting: "FALSE"
|
||||
AnonymousSoftwareReporting: "FALSE"
|
||||
24
deploy/juju/trusty/pts/files/toyaml.rb
Executable file
24
deploy/juju/trusty/pts/files/toyaml.rb
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env ruby
|
||||
# Author: Peter M. Petrakis <peter.petrakis@canonical.com>
|
||||
require 'rubygems'
|
||||
require 'nokogiri'
|
||||
require 'active_support' # for enhanced Hash
|
||||
# http://dirk.net/2010/08/05/convert-between-xml-hash-yaml-json-in-ruby-conversion-cheat-sheet/
|
||||
# We can convert to JSON, YAML, whatever.
|
||||
|
||||
def return_hash()
|
||||
pts_xml = 'dotfile-phoronix-test-suite/user-config.xml'
|
||||
pts_array = Array.new
|
||||
File.open(pts_xml).each { |x| pts_array.push(x) }
|
||||
my_hash = Hash.from_xml(pts_array.to_s)
|
||||
return my_hash
|
||||
end
|
||||
|
||||
if __FILE__ == $PROGRAM_NAME
|
||||
my_hash = return_hash()
|
||||
File.open('/tmp/yaml-out', 'w') do |fd|
|
||||
my_hash.to_yaml.each { |x| fd.puts(x) }
|
||||
end
|
||||
end
|
||||
|
||||
# vim:ts=2:sw=2:et:ft=ruby:
|
||||
1
deploy/juju/trusty/pts/hooks/config-changed
Symbolic link
1
deploy/juju/trusty/pts/hooks/config-changed
Symbolic link
@@ -0,0 +1 @@
|
||||
phoronix-common
|
||||
1
deploy/juju/trusty/pts/hooks/install
Symbolic link
1
deploy/juju/trusty/pts/hooks/install
Symbolic link
@@ -0,0 +1 @@
|
||||
phoronix-common
|
||||
178
deploy/juju/trusty/pts/hooks/phoronix-common
Executable file
178
deploy/juju/trusty/pts/hooks/phoronix-common
Executable file
@@ -0,0 +1,178 @@
|
||||
#!/bin/bash -u
|
||||
# cannot use set dash e with heredoc read variable assignment
|
||||
# vim:ts=2:sw=2:et:ft=sh:
|
||||
|
||||
CWD=$(dirname $0)
|
||||
TOP=${CHARM_DIR}
|
||||
COMMAND=$(basename $0)
|
||||
|
||||
# there's some hardcoded XML that depends on this so not
|
||||
# exposing this for now
|
||||
PTSDIR="/root/.phoronix-test-suite"
|
||||
PTSARCHIVE="/root/phoronix-archive"
|
||||
|
||||
# crazy right? :)
|
||||
# http://stackoverflow.com/questions/1167746/how-to-assign-a-heredoc-value-to-a-variable-in-bash
|
||||
# http://peterpetrakis.blogspot.com/2013/07/execute-complex-python-or-ruby-code.html
|
||||
read -r -d '' upstart_status <<'EOF'
|
||||
import sys, re
|
||||
import traceback
|
||||
from subprocess import Popen, PIPE
|
||||
try:
|
||||
state = sys.stdin.read().rstrip('\n')
|
||||
g = re.match('^([\w-]+)(\s[\w+\/]+)(, \w+ \d+)?',state).groups()
|
||||
# it always returns array.len = 3, if the last one isn't None, it's running
|
||||
if g[-1] is not None:
|
||||
print 'running'
|
||||
else:
|
||||
print 'stopped'
|
||||
except Exception:
|
||||
print 'running' # assume busted
|
||||
exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||
lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
|
||||
cmd = 'juju-log %s' % lines
|
||||
Popen(cmd.split(), stdout=PIPE)
|
||||
EOF
|
||||
|
||||
build_testsuites() {
|
||||
pts_mode=$(config-get pts_mode)
|
||||
juju-log "pts: building test config: ${pts_mode}"
|
||||
|
||||
if [ $pts_mode = 'full' ]; then
|
||||
# get each one and concat it all with some space padding
|
||||
local sys=$(config-get pts_sys)
|
||||
local cpu=$(config-get pts_cpu)
|
||||
local mem=$(config-get pts_mem)
|
||||
local io=$(config-get pts_io)
|
||||
|
||||
echo "${sys} ${cpu} ${mem} ${io}"
|
||||
|
||||
elif [ $pts_mode = 'custom' ]; then
|
||||
local tmp=$(config-get pts_custom)
|
||||
if [ -z $tmp ]; then
|
||||
echo " " # otherwise facter gets angry
|
||||
else
|
||||
echo "${tmp}"
|
||||
fi
|
||||
else
|
||||
# we default to something sensible
|
||||
echo $(config-get pts_smoke)
|
||||
fi
|
||||
}
|
||||
|
||||
# I know I could have just used vars for this but this
|
||||
# was a facter proving ground, the simplist possible use.
|
||||
install_job() {
|
||||
local job=/etc/init/cabs-runner.conf
|
||||
rm -f $job
|
||||
# the quotes around EOF suppress shell expansion
|
||||
tee $job <<'EOF'
|
||||
# run test suite
|
||||
description "Run phoronix test suite"
|
||||
|
||||
task
|
||||
|
||||
script
|
||||
mv -f /tmp/*tgz $(facter phoronix-archive) || :
|
||||
PTSRESULTS="/tmp/pts-results-$(uname -n)-$(date +%y%m%d%H%M%S).tgz"
|
||||
rm -rf $(facter phoronix-testdir) || :
|
||||
cp -Rpf $(facter phoronix-source) $(facter phoronix-testdir) || :
|
||||
echo 'Y N N' | phoronix-test-suite batch-install $(facter phoronix-testsuite)
|
||||
phoronix-test-suite batch-run $(facter phoronix-testsuite)
|
||||
tar cvf - $(facter phoronix-testdir) | gzip -c > "$PTSRESULTS"
|
||||
chmod 775 /tmp/*tgz || :
|
||||
end script
|
||||
EOF
|
||||
}
|
||||
|
||||
start_test() {
|
||||
juju-log "pts: starting test run - `date +%y%m%d%H%M%S`"
|
||||
initctl stop cabs-runner || :
|
||||
initctl start --no-wait cabs-runner || :
|
||||
}
|
||||
|
||||
stop_test() {
|
||||
juju-log "pts: stopping test run - `date +%y%m%d%H%M%S`"
|
||||
initctl stop cabs-runner || :
|
||||
}
|
||||
|
||||
clear_facts() {
|
||||
juju-log "puppet facter reset"
|
||||
fact-del phoronix-testsuite 2>&1 > /dev/null || :
|
||||
fact-del phoronix-testdir 2>&1 > /dev/null || :
|
||||
}
|
||||
|
||||
install_phoronix() {
|
||||
juju-log "installing phoronix"
|
||||
clear_facts
|
||||
stop_test
|
||||
apt-get -qq update
|
||||
apt-get install -qqy unzip build-essential default-jre-headless mesa-utils
|
||||
apt-get install -qqy phoronix-test-suite
|
||||
|
||||
apt-get install -qqy python python-pip
|
||||
pip install --upgrade charms.benchmark
|
||||
|
||||
# puppet helper to distribute facts between scripts
|
||||
apt-get install -qqy facter-customfacts-plugin
|
||||
|
||||
# install this to allow querying via upstart to proceed
|
||||
# for whatever reason, even though we're in 'config'
|
||||
# when we enter config_changed, the initial job isn't
|
||||
# created until we actually setup or run a test
|
||||
install_job
|
||||
|
||||
install --mode=775 -d $PTSARCHIVE
|
||||
fact-add phoronix-source "$TOP/files/dotfile-phoronix-test-suite"
|
||||
}
|
||||
|
||||
config_changed_phoronix() {
|
||||
# if we change this while a test is running we can't stop it
|
||||
# as upstart loses track of the pids
|
||||
|
||||
# We are devolving a bit in the meanwhile because of a newly
|
||||
# discovered bug in juju config where it coalesces config-set
|
||||
# under some circumstances making a deterministic interface
|
||||
# impossible.
|
||||
#
|
||||
# Until the benchmark-control interface is deployed... If you
|
||||
# try to do a config-set while the benchmark is running, config-changed
|
||||
# hook will simply die, prompting external intervention
|
||||
local state=$(initctl status cabs-runner | python -c "$upstart_status")
|
||||
juju-log "phoronix is $state"
|
||||
[ $state == 'running' ] && exit 1
|
||||
|
||||
juju-log 'configuring pts'
|
||||
|
||||
local suite=$(build_testsuites)
|
||||
fact-add phoronix-archive "$PTSARCHIVE"
|
||||
fact-add phoronix-testsuite "$suite"
|
||||
fact-add phoronix-testdir "$PTSDIR"
|
||||
|
||||
juju-log "confirm benchmark settings"
|
||||
juju-log "archive: $(facter phoronix-archive)"
|
||||
juju-log "suite: $(facter phoronix-testsuite)"
|
||||
juju-log "dir: $(facter phoronix-testdir)"
|
||||
}
|
||||
|
||||
case $COMMAND in
|
||||
install)
|
||||
install_phoronix
|
||||
;;
|
||||
start)
|
||||
juju-log "starting phoronix is a nop, use the upstart job"
|
||||
;;
|
||||
stop)
|
||||
juju-log "starting phoronix is a nop, use the upstart job"
|
||||
;;
|
||||
config-changed)
|
||||
config_changed_phoronix
|
||||
;;
|
||||
upgrade-charm)
|
||||
install_phoronix
|
||||
;;
|
||||
*)
|
||||
juju-log "command not recognized"
|
||||
esac
|
||||
|
||||
exit 0
|
||||
1
deploy/juju/trusty/pts/hooks/start
Symbolic link
1
deploy/juju/trusty/pts/hooks/start
Symbolic link
@@ -0,0 +1 @@
|
||||
phoronix-common
|
||||
1
deploy/juju/trusty/pts/hooks/stop
Symbolic link
1
deploy/juju/trusty/pts/hooks/stop
Symbolic link
@@ -0,0 +1 @@
|
||||
phoronix-common
|
||||
1
deploy/juju/trusty/pts/hooks/upgrade-charm
Symbolic link
1
deploy/juju/trusty/pts/hooks/upgrade-charm
Symbolic link
@@ -0,0 +1 @@
|
||||
phoronix-common
|
||||
6
deploy/juju/trusty/pts/metadata.yaml
Normal file
6
deploy/juju/trusty/pts/metadata.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
name: pts
|
||||
maintainer: Adam Israel <adam.israel@canonical.com>
|
||||
summary: The Phoronix Test Suite
|
||||
description: |
|
||||
Installs phoronix-test-suite and provides simple interface to enable
|
||||
individual stress tests and runs them via upstart job
|
||||
1
deploy/juju/trusty/pts/revision
Normal file
1
deploy/juju/trusty/pts/revision
Normal file
@@ -0,0 +1 @@
|
||||
15
|
||||
50
deploy/juju/trusty/pts/scripts/parse
Executable file
50
deploy/juju/trusty/pts/scripts/parse
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import json
|
||||
|
||||
import subprocess
|
||||
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
# Description keys to strip for multi-test readability
|
||||
strips = ['Test: ', 'Type: ', 'PHP Benchmark Suite', ' ']
|
||||
|
||||
|
||||
def action_set(key, val):
|
||||
action_cmd = ['action-set']
|
||||
key = key.strip().replace(' ', '-')
|
||||
|
||||
if isinstance(val, dict):
|
||||
for k, v in val.iteritems():
|
||||
k = k.strip().replace(' ', '-')
|
||||
action_set('%s.%s' % (key, k), v)
|
||||
return
|
||||
|
||||
action_cmd.append('%s=%s' % (key, val))
|
||||
subprocess.check_call(action_cmd)
|
||||
|
||||
|
||||
test_file = sys.argv[1]
|
||||
|
||||
if not os.path.isfile(test_file):
|
||||
sys.exit(1)
|
||||
|
||||
tree = ET.parse(test_file)
|
||||
root = tree.getroot()
|
||||
|
||||
for result in root.iter('Result'):
|
||||
desc = result.find('Description').text
|
||||
for s in strips:
|
||||
desc = desc.replace(s, '')
|
||||
|
||||
test = result.find('Title').text.lower()
|
||||
desc = re.sub(r'[\W]', '-', desc.lower())
|
||||
value = result.find('Data').find('Entry').find('Value').text
|
||||
units = result.find('Scale').text
|
||||
|
||||
print(test, desc, value, units)
|
||||
key = 'results.%s-%s' % (test, desc) if desc else 'results.%s' % test
|
||||
action_set(key, {'value': value, 'units': units})
|
||||
73
deploy/phoromatic-initd/phoromatic-client
Executable file
73
deploy/phoromatic-initd/phoromatic-client
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# /etc/init.d/phoromatic-client
|
||||
# Init script for Phoronix Test Suite Phoromatic client
|
||||
#
|
||||
# chkconfig: 2345 95 05
|
||||
# description: Starting the Phoronix Test Suite Phoromatic client
|
||||
#
|
||||
# processname: phoromatic-client
|
||||
# config: /etc/phoronix-test-suite.xml
|
||||
|
||||
# source function library
|
||||
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
RETVAL=0
|
||||
prog="phoromatic-client"
|
||||
|
||||
start() {
|
||||
echo -n $"Starting $prog:"
|
||||
env DISPLAY=:0
|
||||
/usr/bin/phoronix-test-suite phoromatic.connect
|
||||
RETVAL=$?
|
||||
[ "$RETVAL" = 0 ] && touch /var/lock/subsys/$prog
|
||||
echo
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $prog:"
|
||||
killproc $prog -TERM
|
||||
RETVAL=$?
|
||||
[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/$prog
|
||||
echo
|
||||
}
|
||||
|
||||
reload() {
|
||||
echo -n $"Reloading $prog:"
|
||||
killproc $prog -HUP
|
||||
RETVAL=$?
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
reload)
|
||||
reload
|
||||
;;
|
||||
condrestart)
|
||||
if [ -f /var/lock/subsys/$prog ] ; then
|
||||
stop
|
||||
sleep 6
|
||||
start
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
status $prog
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
|
||||
RETVAL=1
|
||||
esac
|
||||
exit $RETVAL
|
||||
|
||||
14
deploy/phoromatic-systemd/phoromatic-client.service
Normal file
14
deploy/phoromatic-systemd/phoromatic-client.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Phoronix Test Suite Phoromatic Client
|
||||
After=syslog.target network-online.target
|
||||
Documentation=man:phoronix-test-suite(1)
|
||||
|
||||
[Service]
|
||||
TimeoutStartSec=300
|
||||
ExecStart=/usr/bin/phoronix-test-suite phoromatic.connect
|
||||
Environment=DISPLAY=:0
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
14
deploy/phoromatic-systemd/phoromatic-server.service
Normal file
14
deploy/phoromatic-systemd/phoromatic-server.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Phoronix Test Suite Phoromatic Server
|
||||
After=syslog.target network.target
|
||||
Documentation=man:phoronix-test-suite(1)
|
||||
|
||||
[Service]
|
||||
TimeoutStartSec=300
|
||||
ExecStart=/usr/bin/phoronix-test-suite start-phoromatic-server
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
10
deploy/phoromatic-upstart/phoromatic-client.alt.conf
Normal file
10
deploy/phoromatic-upstart/phoromatic-client.alt.conf
Normal file
@@ -0,0 +1,10 @@
|
||||
# description "Phoronix Test Suite Phoromatic Client"
|
||||
# author "Phoronix Media"
|
||||
|
||||
start on (local-filesystems and net-device-up IFACE!=lo)
|
||||
stop on stopping network
|
||||
stop on starting shutdown
|
||||
|
||||
env DISPLAY=:0
|
||||
exec /usr/bin/phoronix-test-suite phoromatic.connect
|
||||
|
||||
8
deploy/phoromatic-upstart/phoromatic-client.conf
Normal file
8
deploy/phoromatic-upstart/phoromatic-client.conf
Normal file
@@ -0,0 +1,8 @@
|
||||
description "Phoronix Test Suite Phoromatic Client"
|
||||
author "Phoronix Media"
|
||||
|
||||
start on runlevel [35]
|
||||
stop on runlevel [0126]
|
||||
|
||||
env DISPLAY=:0
|
||||
exec /usr/bin/phoronix-test-suite phoromatic.connect
|
||||
10
deploy/phoromatic-upstart/phoromatic-server.conf
Normal file
10
deploy/phoromatic-upstart/phoromatic-server.conf
Normal file
@@ -0,0 +1,10 @@
|
||||
# description "Phoronix Test Suite Phoromatic Server"
|
||||
# author "Phoronix Media"
|
||||
|
||||
start on (local-filesystems and net-device-up IFACE!=lo)
|
||||
stop on stopping network
|
||||
stop on starting shutdown
|
||||
|
||||
respawn
|
||||
|
||||
exec /usr/bin/phoronix-test-suite start-phoromatic-server
|
||||
@@ -3,7 +3,7 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2011, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008, Andrew Schofield
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -20,12 +20,18 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
if(!is_file("phoronix-test-suite") || !is_dir("pts/") || !is_dir("pts-core/"))
|
||||
if(!is_file("phoronix-test-suite") || !is_dir("pts-core/"))
|
||||
{
|
||||
echo "\nYou must run this script from the root directory of the phoronix-test-suite/ folder!\n";
|
||||
echo "Example: php5 pts-core/scripts/package-build-rpm.php\n";
|
||||
echo "Example: php5 deploy/rpm-package/build-package-rpm.php\n";
|
||||
exit(0);
|
||||
}
|
||||
if(!is_executable('/usr/bin/rpmbuild'))
|
||||
{
|
||||
echo PHP_EOL . "rpmbuild must be present on the system. Try: yum install rpm-build." . PHP_EOL . PHP_EOL;
|
||||
exit;
|
||||
}
|
||||
|
||||
@require("pts-core/pts-core.php");
|
||||
|
||||
if(!defined("PTS_VERSION"))
|
||||
@@ -34,21 +40,23 @@ if(!defined("PTS_VERSION"))
|
||||
exit(0);
|
||||
}
|
||||
|
||||
$rpm_v = PTS_VERSION . '.' . date('YmdHi');
|
||||
|
||||
shell_exec("rm -rf /tmp/pts-rpm-builder/");
|
||||
shell_exec("mkdir -p /tmp/pts-rpm-builder/{BUILD,RPMS,S{OURCE,PEC,RPM}S,phoronix-test-suite-" . PTS_VERSION . "}");
|
||||
shell_exec("cp -R ./ /tmp/pts-rpm-builder/phoronix-test-suite-" . PTS_VERSION . "/");
|
||||
shell_exec("tar --exclude=.git -C /tmp/pts-rpm-builder/ -cjvf /tmp/pts-rpm-builder/SOURCES/phoronix-test-suite-" . PTS_VERSION . ".tar.bz2 phoronix-test-suite-" . PTS_VERSION . "/");
|
||||
shell_exec("mkdir -p /tmp/pts-rpm-builder/{BUILD,RPMS,S{OURCE,PEC,RPM}S,phoronix-test-suite-" . $rpm_v . "}");
|
||||
shell_exec("cp -R ./ /tmp/pts-rpm-builder/phoronix-test-suite-" . $rpm_v . "/");
|
||||
shell_exec("tar --exclude=.git -C /tmp/pts-rpm-builder/ -cjvf /tmp/pts-rpm-builder/SOURCES/phoronix-test-suite-" . $rpm_v . ".tar.bz2 phoronix-test-suite-" . $rpm_v . "/");
|
||||
|
||||
$spec_file = "Summary: A Comprehensive Linux Benchmarking System\n";
|
||||
$spec_file .= "Name: phoronix-test-suite\n";
|
||||
$spec_file .= "Version: " . PTS_VERSION . "\n";
|
||||
$spec_file .= "Version: " . $rpm_v . "\n";
|
||||
$spec_file .= "Release: 1\n";
|
||||
$spec_file .= "License: GPL\n";
|
||||
$spec_file .= "Group: Utilities\n";
|
||||
$spec_file .= "URL: http://www.phoronix-test-suite.com/\n";
|
||||
$spec_file .= "Source: phoronix-test-suite-" . PTS_VERSION . ".tar.bz2\n";
|
||||
$spec_file .= "Source: phoronix-test-suite-" . $rpm_v . ".tar.bz2\n";
|
||||
$spec_file .= "Packager: Phoronix Media <trondheim-pts@phoronix-test-suite.com>\n";
|
||||
$spec_file .= "Requires: php-cli, php-gd\n";
|
||||
$spec_file .= "Requires: php-cli, php-xml\n";
|
||||
$spec_file .= "BuildArch: noarch\n";
|
||||
$spec_file .= "BuildRoot: %{_tmppath}/%{name}-%{version}-root\n";
|
||||
$spec_file .= "%description\n";
|
||||
@@ -65,18 +73,25 @@ $spec_file .= "rm -rf %{buildroot}\n";
|
||||
$spec_file .= "%files\n";
|
||||
$spec_file .= "%{_bindir}/phoronix-test-suite\n";
|
||||
$spec_file .= "%{_datadir}/phoronix-test-suite/*\n";
|
||||
$spec_file .= "%{_datadir}/applications/*\n";
|
||||
$spec_file .= "%{_datadir}/icons/hicolor/*\n";
|
||||
$spec_file .= "%{_datadir}/appdata/%{name}.appdata.xml\n";
|
||||
$spec_file .= "%{_datadir}/doc/*\n";
|
||||
$spec_file .= "%{_mandir}/man1/%{name}.1*\n";
|
||||
$spec_file .= "%config(noreplace) %{_sysconfdir}/bash_completion.d\n";
|
||||
$spec_file .= "%config(noreplace) %{_sysconfdir}/../usr/lib/systemd/system/*\n";
|
||||
//$spec_file .= "%config(noreplace) %{_sysconfdir}/init/*\n";
|
||||
$spec_file .= "%changelog\n";
|
||||
$spec_file .= "* Fri Jun 06 2008 Andrew Schofield <andrew_s@fahmon.net>\n";
|
||||
$spec_file .= "* " . date('D M d Y') . " Phoronix Media <phoronix@phoronix.com>\n";
|
||||
$spec_file .= "- Initial release.";
|
||||
|
||||
file_put_contents("/tmp/pts-rpm-builder/SPECS/pts.spec", $spec_file);
|
||||
shell_exec("mv -f " . pts_client::user_home_directory() . ".rpmmacros /tmp/pts-rpm-builder");
|
||||
file_put_contents(pts_client::user_home_directory() .".rpmmacros", "%_topdir /tmp/pts-rpm-builder");
|
||||
shell_exec("mv -f " . getenv('HOME') . "/.rpmmacros /tmp/pts-rpm-builder 2>&1");
|
||||
file_put_contents(getenv('HOME') ."/.rpmmacros", "%_topdir /tmp/pts-rpm-builder");
|
||||
shell_exec("rpmbuild -ba --verbose /tmp/pts-rpm-builder/SPECS/pts.spec");
|
||||
shell_exec("cp /tmp/pts-rpm-builder/RPMS/noarch/phoronix-test-suite-" . PTS_VERSION . "-1.noarch.rpm ./");
|
||||
shell_exec("rm -f " . pts_client::user_home_directory() . "/.rpmmacros");
|
||||
shell_exec("mv -f /tmp/pts-rpm-builder/.rpmmacros " . pts_client::user_home_directory());
|
||||
shell_exec("cp /tmp/pts-rpm-builder/RPMS/noarch/phoronix-test-suite-" . $rpm_v . "-1.noarch.rpm ./");
|
||||
shell_exec("rm -f " . getenv('HOME') . "/.rpmmacros");
|
||||
shell_exec("mv -f /tmp/pts-rpm-builder/.rpmmacros " . getenv('HOME') . ' 2>1');
|
||||
shell_exec("rm -rf /tmp/pts-rpm-builder");
|
||||
|
||||
?>
|
||||
@@ -8,30 +8,27 @@ PHORONIX TEST SUITE PUBLIC TODO LIST:
|
||||
- Support for multiple languages / internationalization.
|
||||
- BLKID fall-back support for determining file-system [e.g. /sbin/blkid -s TYPE -o value /dev/sda1].
|
||||
- Possibly restore "weighted suites" [http://phorogit.com/index.php?p=phoronix-test-suite.git&a=commitdiff&h=548e5c073cc90d92ac3f382ca4933d5f556e78c6&hb=444441f9be866f51920e0ad8ca3909951b4d90c5]
|
||||
- Integrate recover-run command into the run command, auto-detect if the result file was a partial save and then ask if to perform run recovery' [ POSSIBLY DO THE SAME FOR FINISH-RUN]
|
||||
- Integrate finish-run command into the run command, auto-detect if the result file was a partial save and then ask if to perform run recovery'
|
||||
- Multi-threaded downloading of test files
|
||||
- Numerous pts_render improvements [see in-line code comments]
|
||||
- Optimus / DRI_PRIME=1 / xrandr --listproviders better GPU detection
|
||||
- NVIDIA make use of UsedDedicatedGPUMemory as new GPU sensor
|
||||
- Clean up all the WebSocket code and make it fit to spec
|
||||
- Incremental result uploads support
|
||||
- Check with Phodevi's parsers what other tools support JSON outputs - e.g. http://karelzak.blogspot.com/2015/06/json-output-for-basic-tools.html for cleaner parsing
|
||||
|
||||
### PTS-GRAPH ###
|
||||
|
||||
- Improve rendering of large data-sets, e.g. http://openbenchmarking.org/result/1205231-LI-BL460G6BE41
|
||||
- Rotated text alignment for some PNG graphixs is sometimes off by 90/180 degrees compared to SVG, e.g. http://openbenchmarking.org/s/Compiler
|
||||
- SVG graph improvements
|
||||
- WebP image support
|
||||
|
||||
### OPENBENCHMARKING.ORG ###
|
||||
|
||||
- Shorten long change-logs on test profile pages - e.g. http://openbenchmarking.org/test/pts/hpcc
|
||||
[ REST SUBJECT TO PHORONIX MEDIA NDA ]
|
||||
|
||||
### NEW TEST PROFILES ###
|
||||
### POSSIBLE NEW TEST PROFILES ###
|
||||
|
||||
- Python-libmemcached [http://code.google.com/p/python-libmemcached/]
|
||||
- Intel HiBench [https://github.com/intel-hadoop/HiBench]
|
||||
- Hadoop Benchmarks
|
||||
- Hadoop Benchmarks / TeraSort
|
||||
- LATT Latency Tests [git://git.kernel.dk/latt.git]
|
||||
- QMC Beaver [http://qmcbeaver.sourceforge.net/]
|
||||
- Some potential interesting GPGPU tests [http://www.bealto.com/gpu-benchmarks.html]
|
||||
@@ -42,7 +39,9 @@ PHORONIX TEST SUITE PUBLIC TODO LIST:
|
||||
- http://hashcat.net/oclhashcat/
|
||||
- Handbrake [http://handbrake.fr/]
|
||||
- libMicro [https://github.com/portante/libMicro]
|
||||
- http://markjstock.org/pages/rad_bench.html
|
||||
- https://code.google.com/p/pyrit/
|
||||
- https://github.com/acangiano/ruby-benchmark-suite
|
||||
- http://www.nwchem-sw.org/index.php/Compiling_NWChem
|
||||
- http://sourceforge.net/projects/ffsb/
|
||||
- http://www.ratgpu.com/
|
||||
@@ -53,7 +52,24 @@ PHORONIX TEST SUITE PUBLIC TODO LIST:
|
||||
- http://www.capsl.udel.edu/splash/Download.html
|
||||
- https://github.com/facebook/linkbench
|
||||
- https://github.com/vasi/pixz
|
||||
- stephentu/silo
|
||||
- http://nondot.org/sabre/LLVMNotes/#benchmarks
|
||||
- https://code.google.com/p/smhasher/wiki/SMHasher
|
||||
- http://benchmarksgame.alioth.debian.org/u32/performance.php?test=fasta / http://benchmarksgame.alioth.debian.org/u32/program.php?test=nbody&lang=gcc&id=1#sourcecode
|
||||
- https://openfoamwiki.net/index.php/Benchmarks_standard_v1
|
||||
- Cassandra 1.2 stress - http://docs.datastax.com/en/cassandra/1.2/cassandra/tools/toolsCStress_t.html
|
||||
- http://gcc.opensuse.org/c++bench-frescobaldi/
|
||||
- http://dacapobench.org/
|
||||
- https://github.com/GoogleCloudPlatform/PerfKitBenchmarker
|
||||
- https://gooseberry.blender.org/gooseberry-production-benchmark-file/
|
||||
- https://github.com/hhvm/oss-performance
|
||||
- https://github.com/gormanm/mmtests
|
||||
- https://github.com/pandegroup/fahbench
|
||||
- https://github.com/STH-Dev/linux-bench
|
||||
- http://anzwix.com/a/FFmpeg/CryptobenchAddSupportForBlowfish
|
||||
- https://wiki.mikejung.biz/Benchmarking
|
||||
- http://dacapobench.org/
|
||||
- https://github.com/soumith/convnet-benchmarks
|
||||
|
||||
### WEB SOCKET / HTML5 USER INTERFACE WORK ###
|
||||
|
||||
@@ -65,14 +81,7 @@ PHORONIX TEST SUITE PUBLIC TODO LIST:
|
||||
|
||||
### PHOROMATIC ####
|
||||
|
||||
- Hookup the email notifications
|
||||
- Group handling
|
||||
- Get the Phoromatic search box implemented/working
|
||||
- Editing/deleting lots of different possible items like scheduling meta-data
|
||||
- Implement the complementary WebSocket communication to HTTP pulls
|
||||
- More mobile form factor optimizations
|
||||
- Ensure sane validating of more user input / resource uploads
|
||||
- Hook up the system targeting / groups support for test schedules
|
||||
- Restore some of the older phoromatic code for allowing reboots to happen during context script execution
|
||||
- Hook up TriggerTarget for allowing event.php to optionally specify a sub-set of systems/groups to target for a given trigger
|
||||
- Clean up the code and modularize more of the code into functions
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "5.2.0m3"
|
||||
.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "6.2.1"
|
||||
.SH NAME
|
||||
phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source platform for performing testing and performance evaluation.
|
||||
.SH SYNOPSIS
|
||||
@@ -6,18 +6,18 @@ phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source plat
|
||||
.br
|
||||
.B phoronix-test-suite benchmark [test | suite]
|
||||
.SH DESCRIPTION
|
||||
The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for Linux, Solaris, Mac OS X, and BSD operating systems. The Phoronix Test Suite allows for carrying out tests in a fully automated manner from test installation to execution and reporting. All tests are meant to be easily reproducible, easy-to-use, and support fully automated execution. The Phoronix Test Suite is open-source under the GNU GPLv3 license and is developed by Phoronix Media in cooperation with partners.
|
||||
The **Phoronix Test Suite** is the most comprehensive testing and benchmarking platform available for Linux, Solaris, Mac OS X, and BSD operating systems. The Phoronix Test Suite allows for carrying out tests in a fully automated manner from test installation to execution and reporting. All tests are meant to be easily reproducible, easy-to-use, and support fully automated execution. The Phoronix Test Suite is open-source under the GNU GPLv3 license and is developed by Phoronix Media in cooperation with partners.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.SH TEST INSTALLATION
|
||||
.B install [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option will install the selected test(s) inside the testing environment directory). The install process from downloading of the test files to the installation is fully automated. The install option needs to be supplied with the test name or suite as an argument. Optionally, a OpenBenchmarking.org ID or the name of a saved results file can be supplied as well and the test(s) to install will automatically be extracted from that information. If the test is already installed and was run by the latest version of the installation process, no action will be taken. Multiple arguments can be supplied to install additional tests at the same time.
|
||||
This option will install the selected test(s) inside the testing environment directory. The install process from downloading of the test files to the installation is fully automated. The install option needs to be supplied with the test name or suite as an argument. Optionally, a OpenBenchmarking.org ID or the name of a saved results file can be supplied as well and the test(s) to install will automatically be extracted from that information. If the test is already installed and was run by the latest version of the installation process, no action will be taken. Multiple arguments can be supplied to install additional tests at the same time.
|
||||
.TP
|
||||
.B install-dependencies [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option will install the external dependencies needed by the selected test(s) using the distribution's package management system. For example, some tests depend upon GCC for compiling code. If GCC is not detected on the system, the Phoronix Test Suite will attempt to install GCC using the distribution's package management system. If you are running this command as a local user, you may be prompted for the root password while the process is running. For unsupported distributions, the dependency names will be displayed along with common names for the package. The install-dependencies option needs to be supplied with the test name or suite as an argument. When using the install option, the external dependencies are automatically checked.
|
||||
.TP
|
||||
.B make-download-cache
|
||||
This option will create a download cache for use by the Phoronix Test Suite.
|
||||
This option will create a download cache for use by the Phoronix Test Suite. The download cache is created of test files already downloaded to the local system. If passing any test/suite names to make-download-cache, the needed files for those test profiles will first be automatically downloaded before creating the cache.
|
||||
.TP
|
||||
.B remove-installed-test [Test]
|
||||
This option will permanently remove a installed test by the Phoronix Test Suite.
|
||||
@@ -41,6 +41,9 @@ This option will query OpenBenchmarking.org to run random benchmarks and result
|
||||
.B run-tests-in-suite
|
||||
This option can be used if you wish to run all of the tests found in a supplied suite, but you wish to re-configure each of the test options rather than using the defaults supplied by the suite.
|
||||
.TP
|
||||
.B stress-run [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option will run the passed tests/suites in the multi-process stress-testing mode. The stress-run mode will not produce a result file but is rather intended for running multiple test profiles concurrently to stress / burn-in the system. The number of tests to run concurrently can be toggled via the PTS_CONCURRENT_TEST_RUNS environment variable and by default is set to a value of 2.
|
||||
.TP
|
||||
.SH BATCH TESTING
|
||||
.B batch-benchmark [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option and its arguments are equivalent to the benchmark option, but the process will be run in the Phoronix Test Suite batch mode.
|
||||
@@ -65,11 +68,14 @@ This option and its arguments pre-set the Phoronix Test Suite batch run mode wit
|
||||
.TP
|
||||
.SH OPENBENCHMARKING.ORG
|
||||
.B clone-result [OpenBenchmarking ID] ...
|
||||
This option will download a local copy of a file that was saved to OpenBenchmarking.org, as long as a valid public ID is supplied. More than one ID can be specified and the results will then be merged.
|
||||
This option will download a local copy of a file that was saved to OpenBenchmarking.org, as long as a valid public ID is supplied.
|
||||
.TP
|
||||
.B list-recommended-tests
|
||||
This option will list recommended test profiles for benchmarking sorted by hardware sub-system. The recommended tests are determined via querying OpenBenchmarking.org and determining the most popular tests for a given environment based upon the number of times a test profile has been downloaded, the number of test results available on OpenBenchmarking.org for a given test profile, the age of the test profile, and other weighted factors.
|
||||
.TP
|
||||
.B make-openbenchmarking-cache
|
||||
This option will attempt to cache the test profile/suite meta-data from OpenBenchmarking.org for all linked repositories. This is useful if you're going to be running the Phoronix Test Suite / Phoromatic behind a firewall or without any Internet connection. Those with unrestricted Internet access or not utilizing a large local deployment of the Phoronix Test Suite / Phoromatic shouldn't need to run this command.
|
||||
.TP
|
||||
.B openbenchmarking-changes
|
||||
This option will list recent changes to test profiles of enabled OpenBenchmarking.org repositories.
|
||||
.TP
|
||||
@@ -148,13 +154,13 @@ This option will list various details about installed tests and their usage.
|
||||
This option will list all available test profiles that are available from the enabled OpenBenchmarking.org repositories but are NOT SUPPORTED on the given hardware/software platform. This is mainly a debugging option for those looking for test profiles to potentially port to new platforms, etc.
|
||||
.TP
|
||||
.SH ASSET CREATION
|
||||
.B debug-benchmark [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option is intended for use by test profile writers and is identical to the <em>run</em> option but will yield more information during the run process that can be used to debug issues with a test profile or to verify the test profile is functioning correctly.
|
||||
.TP
|
||||
.B debug-install [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option is intended for use by test profile writers and is identical to the install option but will yield more information during the run process that can be used to debug issues with a test profile installer or to verify the test profile is functioning correctly.
|
||||
.TP
|
||||
.B debug-run [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option is intended for use by test profile writers and is identical to the <em>run</em> option but will yield more information during the run process that can be used to debug issues with a test profile or to verify the test profile is functioning correctly.
|
||||
.TP
|
||||
.B debug-test-download-links [Test | Suite]
|
||||
.B debug-test-download-links [Test | Suite | OpenBenchmarking.org ID | Test Result]
|
||||
This option will check all download links within the specified test profile(s) to ensure there are no broken URLs.
|
||||
.TP
|
||||
.B download-test-files [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
@@ -176,8 +182,8 @@ This option can be used for validating a Phoronix Test Suite test profile as bei
|
||||
This option can be used for validating a Phoronix Test Suite test suite as being compliant against the OpenBenchmarking.org specification.
|
||||
.TP
|
||||
.SH RESULT MANAGEMENT
|
||||
.B copy-run-in-result-file [Test Result]
|
||||
This option is used if you wish to change an existing test run within a saved results file.
|
||||
.B auto-sort-result-file [Test Result]
|
||||
This option is used if you wish to automatically attempt to sort the results by their result identifier string.
|
||||
.TP
|
||||
.B edit-result-file [Test Result]
|
||||
This option is used if you wish to edit the title and description of an existing result file.
|
||||
@@ -204,11 +210,14 @@ This option is used if you wish to change the name of the identifier in a test r
|
||||
This option is used if you wish to change the name of the saved name of a result file.
|
||||
.TP
|
||||
.B reorder-result-file [Test Result]
|
||||
This option is used if you wish to change the order in which test results are shown in the Phoronix Test Suite Results Viewer and the contained graphs. The user must specify a saved results file and then they will be prompted to select the results identifiers one at a time in the order they would like them to be displayed from left to right.
|
||||
This option is used if you wish to manually change the order in which test results are shown in the Phoronix Test Suite Results Viewer and the contained graphs. The user must specify a saved results file and then they will be prompted to select the results identifiers one at a time in the order they would like them to be displayed from left to right.
|
||||
.TP
|
||||
.B result-file-to-csv [Test Result]
|
||||
This option will read a saved test results file and output the system hardware and software information along with the results to a CSV output. The CSV (Comma Separated Values) output can then be loaded into a spreadsheet for easy viewing.
|
||||
.TP
|
||||
.B result-file-to-json [Test Result]
|
||||
This option will read a saved test results file and output the basic result information to JSON (JavaScript Object Notation).
|
||||
.TP
|
||||
.B result-file-to-pdf [Test Result]
|
||||
This option will read a saved test results file and output the system hardware and software information along with the results to a PDF file.
|
||||
.TP
|
||||
@@ -222,28 +231,28 @@ Open up the test results in the Phoronix Test Suite Result Viewer or on OpenBenc
|
||||
.B analyze-all-runs [Test Result]
|
||||
This option will generate a candlestick graph showing the distribution of results from all trial runs. The candlestick graph is similar to the Japanese candlestick charts used by the financial industry, except instead of representing stock data it is numerical result data from all trial runs.\n\nThe tip of the upper-wick represents the highest value of the test runs with the tip of the lower-wick representing the lowest value of all test runs. The upper-edge of the candle body represents the first or last run value and the lower-edge represents the first or last run value. Lastly, if the last run value is less than the first run value, the candle body is the same color as the graph background, otherwise the last run value is greater.
|
||||
.TP
|
||||
.B analyze-batch [Test Result]
|
||||
This option will analyze a batch results file and plot out the performance impact from the different options onto a line graph (i.e. to see the impact that changing the video resolution has on the system's performance).
|
||||
.TP
|
||||
.B analyze-image-delta [Test Result]
|
||||
This option will analyze a test result file if it contains any test results that produced an image quality comparison (IQC) and will render image deltas illustrating the difference between images from two test results.
|
||||
.TP
|
||||
.SH OTHER
|
||||
.B build-suite
|
||||
This option will guide the user through the process of generating their own test suite, which they can then run. Optionally, passed as arguments can be the test(s) or suite(s) to add to the suite to be created, instead of being prompted through the process.
|
||||
.TP
|
||||
.B debug-dependency-handler
|
||||
This option is used for testing the distribution-specific dependency handler for external dependencies.
|
||||
.TP
|
||||
.B debug-render-test
|
||||
This option is used during the development of the Phoronix Test Suite software for testing of the result and graph rendering code-paths This option will download a large number of reference test results from LinuxBenchmarking.com.
|
||||
.TP
|
||||
.B debug-self-test
|
||||
This option is used during the development of the Phoronix Test Suite software for testing of internal interfaces, commands, and other common code-paths. The produced numbers should only be comparable for the same version of the Phoronix Test Suite, on the same hardware/software system, conducted on the same day of testing. This isn't intended as any scientific benchmark but simply to stress common PHP code-paths and looking for hot areas to optimize, etc.
|
||||
.TP
|
||||
.B enterprise-setup
|
||||
This option can be run by enterprise users immediately after package installation or as part of an in-house setup script. Running this command will ensure the phoronix-test-suite program is never interrupted on new runs to accept user agreement changes and defaults the anonymous usage reporting to being disabled and other conservative defaults.
|
||||
.TP
|
||||
.B help
|
||||
This option will display the list of available Phoronix Test Suite commands.
|
||||
.TP
|
||||
.B network-setup
|
||||
This option allows the user to configure how the Phoronix Test Suite connects to OpenBenchmarking.org and other web-services. Connecting through an HTTP proxy can be configured through this option.
|
||||
.TP
|
||||
.B rebuild-composite-xml [Test Result]
|
||||
This option can be used to rebuild your composite XML file in the event that the main result file was corrupted and the test-X.xml files are still present in the result file directory.
|
||||
.TP
|
||||
.B user-config-reset
|
||||
This option can be used for resetting the Phoronix Test Suite user configuration file to its default state.
|
||||
.TP
|
||||
@@ -258,10 +267,10 @@ This option will display the Phoronix Test Suite client version.
|
||||
Launch the Phoronix Test Suite HTML5 web user-interface in the local GUI mode (no remote web support) and attempt to auto-launch the web-browser.
|
||||
.TP
|
||||
.B start-remote-gui-server
|
||||
Start the GUI web server and WebSocket server processes for remote (or local) access via the web-browser. The settings can be configured via the Phoronix Test Suite's user-config.xml configuration file.
|
||||
Start the GUI web server and WebSocket server processes for remote (or local) access via the web-browser. The settings can be configured via the Phoronix Test Suite's XML configuration file.
|
||||
.TP
|
||||
.B start-ws-server
|
||||
Manually start a WebSocket server for communication by remote Phoronix Test Suite GUIs, the Phoronix Test Suite Multi-System Commander, and other functionality.
|
||||
Manually start a WebSocket server for communication by remote Phoronix Test Suite GUIs, the Phoronix Test Suite Multi-System Commander, and other functionality. This function checks the PTS_WEBSOCKET_PORT and PTS_WEBSOCKET_SERVER environment variables for configuration.
|
||||
.TP
|
||||
.SH MODULES
|
||||
.B list-modules
|
||||
@@ -276,9 +285,9 @@ This option will allow you to configure all available end-user options for a Pho
|
||||
.B test-module [Phoronix Test Suite Module]
|
||||
This option can be used for debugging a Phoronix Test Suite module.
|
||||
.TP
|
||||
.SH GUI / WEB SUPPORT
|
||||
.B r
|
||||
p
|
||||
.SH PHOROMATIC
|
||||
.B g
|
||||
n
|
||||
.TP
|
||||
.SH SEE ALSO
|
||||
.B Websites:
|
||||
@@ -293,5 +302,5 @@ http://www.phoronix.com/
|
||||
.br
|
||||
http://www.phoronix.com/forums/
|
||||
.SH AUTHORS
|
||||
Copyright 2008 - 2014 by Phoronix Media, Michael Larabel.
|
||||
Copyright 2008 - 2016 by Phoronix Media, Michael Larabel.
|
||||
.TP
|
||||
|
||||
90
documentation/phoromatic.html
Normal file
90
documentation/phoromatic.html
Normal file
@@ -0,0 +1,90 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<Title>Phoronix Test Suite Phoromatic</Title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Phoromatic Server</h1>
|
||||
<h2>Introduction</h2>
|
||||
<p>Phoromatic is a remote management system for the Phoronix Test Suite. Phoromatic allows the automatic (hence the name <em>Phoro-matic</em>) scheduling of tests, remote installation of new tests, and the management of multiple test systems all through an intuitive, easy-to-use web interface. Tests can be scheduled to automatically run on a routine basis across multiple test systems. The test results are then available from this central, secure location.</p>
|
||||
<p>Phoromatic was originally introduced with Phoronix Test Suite 2.0 via Phoromatic.com as a project going back to 2008~2009. Phoromatic.com debuted as a hosted instance with the option of behind-the-firewall licensing for use within organizations. With Phoronix Test Suite 5.2 the model shifted to offer a local, open-source version of Phoromatic built into the Phoronix Test Suite code-base. Thanks to continued enterprise development, with Phoronix Test Suite 5.4 is now a fully-functioning, built-in version of Phoromatic that's open-source and can be used for behind-the-firewall testing without needing to push results to OpenBenchmarking.org and the ability to keep all results private.</p>
|
||||
<p>Phoromatic in Phoronix Test Suite 5.4 also has the ability to support zero-conf network discovery using Avahi and the automatic distribution of needed test profiles/suites and test files. Phoronix Test Suite 5.4's Phoromatic is a significant breakthrough for open-source testing particularly those running this GPL benchmarking software within test labs and other large organizations.</p>
|
||||
<h2>Features<h2>
|
||||
<p>Built atop the Phoronix Test Suite, Phoromatic offers many features for both enterprise and community/personal users:</p>
|
||||
<h3>Automated Scheduling</h3>
|
||||
<p>Whether it is every evening at 6:00PM, once every Thursday at 10:00AM or somewhere in between, Phoromatic can schedule tests to be run at user-defined intervals. The testing schedules can be updated through Phoromatic web interface. After the test(s) have run, the results will be immediately uploaded to Phoromatic.</p>
|
||||
<h3>Extensible</h3>
|
||||
<p>Any test profile or test suite that is compliant with the Phoronix Test Suite specification will work with Phoromatic. Phoromatic is able to leverage the hundreds of test profiles and test suites currently in the Phoronix Test Suite via OpenBenchmarking.org, along with any custom or proprietary test profiles you or your company utilize. Additionally, the Phoromatic interface allows the user to construct their own test suite(s).</p>
|
||||
<h3>Remote Testing</h3>
|
||||
<p>Once the test system is setup, all testing and management of that system can be done remotely. There is no need to execute Phoronix Test Suite commands locally using the GUI or command line version, but instead nearly all of the same features are accessible from the Phoromatic interface.</p>
|
||||
<h3>Multi-System Support</h3>
|
||||
<p>A single Phoromatic account is able to manage multiple test systems running the Phoronix Test Suite. Phoromatic supports grouping together test systems, tagging, and other features to support effectively managing many test systems. From the Phoromatic interface, installed system hardware and software from a given system can also be viewed.</p>
|
||||
<h3>Turn-Key Deployment</h3>
|
||||
<p>No additional software needs to be installed to support Phoromatic; all that's needed is Phoronix Test Suite 5.4 or later for full compatibility. New test systems can easily be synced with a given Phoromatic account by running a single command from the Phoronix Test Suite client.</p>
|
||||
<h3>Result Management</h3>
|
||||
<p>Test results are automatically uploaded to the Phoromatic account and remain private unless you opt to upload them to OpenBenchmarking.org. From the Phoromatic interface, results from multiple test systems can easily be compared and multiple results from the same systems can be used to track performance over time. There are also options to look at the statistical significance of the results and other features to efficiently and effectively analyze the system's performance.</p>
|
||||
<h3>Decentralized</h3>
|
||||
<p>Once the Phoronix Test Suite running on the Phoromatic Server has been able to cache all of the OpenBenchmarking.org test files and the needed files for each test, Phoromatic with any Phoronix Test Suite clients on your LAN can run fully decentralized without the need for a constant stream of OpenBenchmarking.org communication or Internet connection for that matter. (The only exception would be if your local systems don't have all their needed external dependencies and your system's package manager would need to install components like a compiler or necessary system libraries.</p>
|
||||
<h3>Fully Open-Source</h3>
|
||||
<p>Phoromatic is now fully open-source within the Phoronix Test Suite code-base for fostering greater development and new capabilities. Patches are welcome and Phoronix Media is available to provide commercial support and custom engineering services around Phoromatic and the Phoronix Test Suite.</p>
|
||||
<h2>Phoromatic Server Setup</h2>
|
||||
<p>Phoromatic is built into the Phoronix Test Suite code-base and should be found in all packaged versions of the <strong>phoronix-test-suite</strong>. Starting the Phoromatic Server entails running phoronix-test-suite start-phoromatic-server after configuring the server information within <em>~/.phoronix-test-suite/user-config.xml</em>. The Phoromatic Server can with or without root permissions depending upon your firewall and the port numbers you wish to use for the server.</p>
|
||||
<p>On the "client side", any up-to-date version of the Phoronix Test Suite can automatically communicate with the Phoromatic Server. If Avahi support is available (commonly in Linux distribution repositories as <u>avahi-tools</u>), there should be zero-conf discovery if the Phoromatic Server and client systems are on the same LAN. If a Phoronix Test Suite client discovers a Phoromatic Server, it will attempt to use it automatically as a local download cache. In the event of no Internet connection, it will also attempt to obtain the needed OpenBenchmarking.org test/suite meta-data from the Phoromatic Server based upon its archived meta-data. This allows the Phoronix Test Suite / Phoromatic deployment on the LAN to be self-sustaining without an Internet connection as long as the systems have all installed test dependencies.</p>
|
||||
<p>Further configuration of the setup parameters for the Phoromatic Server and Phoronix Test Suite clients can be tuned via the <em>~/.phoronix-test-suite/user-config.xml</em> file. All control and configuration of the Phoromatic Server is done via the web-based interface when the Phoromatic Server is active.</p>
|
||||
<p>The Phoromatic Server utilizes PHP/HHVM's built-in web-server capabilities and there's also a Phoronix Test Suite built-in WebSocket server that's also initiated for back-end processing. At this time there are no ports set by default for these services but must be defined within the user configuration file. With the Avahi zero-conf network discovery and other automated detection in place, there's little restrictions over the port selection.</p>
|
||||
<p>Systemd and Upstart service files are shipped with the Phoronix Test Suite for those that wish to have the services automatically run as daemons. The only new requirements over the basic Phoronix Test Suite system requirements is having PHP-SQLite support installed and the newer version of PHP or HHVM is recommended for offering the best support.</p>
|
||||
<h2>Example Deployments</h2>
|
||||
<h3>Use Case A: Unrestricted Internet Access, Local Result Storage</h3>
|
||||
<p>Systems on your network with unrestricted Internet access is the easiest and simplest deployment for the Phoronix Test Suite and Phoromatic. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the <em>user-config.xml</em> file, simply run:</p>
|
||||
<p><strong>$ phoronix-test-suite start-phoromatic-server</strong></p>
|
||||
<p>Assuming you have no firewall or permission issues, the built-in web server and WebSocket server should proceed to initiate along with outputting the IP/port information for these services. Unless otherwise disabled from the user configuration file and if avahi-tools is present, the Phoromatic Server will be advertised with Avahi for zero-configuration networking.</p>
|
||||
<p>From the Phoromatic web interface you are able to create an account and from there proceed with the creating of test schedules, updating settings, and connecting systems. From the "client systems" you wish to use as the benchmarking nodes, it's simply a matter of running <strong>phoronix-test-suite phoromatic.connect</strong> with zero-conf networking or otherwise follow the information from the Phoromatic web interface for manual setup with the IP/port information.</p>
|
||||
<h3>Use Case B: No Internet Available To Client Systems</h3>
|
||||
<p>It's possible to run the Phoronix Test Suite and Phoromatic Server without a persistent Internet connection as long as you are able to first download the necessary files to the Phoromatic Server. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the <em>user-config.xml</em> file, a few commands from the system while having an Internet connection will be able to cache the needed data:</p>
|
||||
<p><strong>$ phoronix-test-suite make-download-cache x264 xonotic ffmpeg</strong></p>
|
||||
<p>This command will simply download all of the needed test files for the tests/suites passed to the sub-command. Alternatively you could also pass pts/all to cache all tests. It's important though to just cache the tests/suites you'll be using on your network. This will generate the test file download cache by default to <em>~/.phoronix-test-suite/download-cache/</em> or <em>/usr/share/phoronix-test-suite/download-cache/</em> depending upon your write permissions. You can always run this command later with more test files. Alternatively, if you already have a number of tests installed on the system, simply running "phoronix-test-suite make-download-cache" will generate the cache based upon the currently installed tests.</p>
|
||||
<p><strong>$ phoronix-test-suite make-openbenchmarking-cache</strong></p>
|
||||
<p>This command will cache as much of the OpenBenchmarking.org meta-data as possible for test profiles and test suites. After the above commands, the Phoromatic Server should no longer need a persistent Internet connection.</p>
|
||||
<p><strong>$ phororonix-test-suite start-phoromatic-server</strong></p>
|
||||
<p>Proceed to start the Phoromatic Server and operate as normal.</p>
|
||||
<p>For the test clients without an Internet connection, as long as they're able to reach the Phoromatic Server, the Phoromatic Server should be able to automatically serve all of the needed test files download cache and OpenBenchmarking.org meta-data to the systems locally.</p>
|
||||
<h3>Use Case C: Phoromatic Across The Internet</h3>
|
||||
<p>If wishing to use the same Phoromatic Server across multiple geographic locations, it's easily possible -- you just lose out on the zero-conf networking ability. To let the Phoronix Test Suite client systems know about the remote Phoromatic Server, simply add the Phoromatic Server information to the client's <em>PhoromaticServers</em> element within the <em>user-config.xml</em>. Of course, make sure the Phoromatic Server has a globally resolvable IP address and its Phoromatic HTTP/WebSocket ports are open. Once informing the client of the Phoromatic Server, the use cases as above apply in the same manner.</p>
|
||||
<h2>Client Setup</h2>
|
||||
<p>From Phoronix Test Suite client systems running on the LAN, the following command will report all available detected Phoromatic Servers along with important server and debugging information:</p>
|
||||
<p><strong>$ phoronix-test-suite phoromatic.explore</strong></p>
|
||||
<p>With the following example output on finding one successful server:</p>
|
||||
<p><em>IP: 192.168.1.211<br />
|
||||
HTTP PORT: 5447<br />
|
||||
WEBSOCKET PORT: 5427<br />
|
||||
SERVER: PHP 5.5.9-1ubuntu4.4 Development Server<br />
|
||||
PHORONIX TEST SUITE: Phoronix Test Suite v5.4.0m1 [5313]<br />
|
||||
DOWNLOAD CACHE: 19 FILES / 2390 MB CACHE SIZE<br />
|
||||
SUPPORTED OPENBENCHMARKING.ORG REPOSITORIES:<br />
|
||||
pts - Last Generated: 05 Oct 2014 07:16</em></p>
|
||||
<p>Phoromatic Servers are detected by the Phoronix Test Suite through Avahi or if manually configuring the Phoronix Test Suite clients to point to Phoromatic Servers. For networks without Avahi/auto-discovery support or for test systems that may be connecting from another network, the IP address and HTTP port number can be added to the local system's <em>~/.phoronix-test-suite/user-config.xml</em> with the <em>PhoromaticServers</em> element. Adding the <em>IP:port</em> (the Phoromatic Server's HTTP port) to the PhoromaticServers <em>user-config.xml</em> element for will perform targeted probing by the Phoronix Test Suite without any dependence on Avahi. Multiple Phoromatic Servers can be added if each IP:port is delimited by a comma.</p>
|
||||
<p>To connect a Phoronix Test Suite system for benchmarking to an account, log into your Phoromatic account from the web-interface and on the main/system pages will be instructions along with a specially formed string to run, e.g. <em>phoronix-test-suite phoromatic.connect 192.168.1.211:5447/I0SSJY</em>. When running that command once on the system(s) to be synced to that account, as the administrator you'll be able to validate/approve the systems from the Phoromatic web interface. After that, whenever the system(s) are to be running benchmarks, simply have the <strong>phoronix-test-suite phoromatic.connect</strong> command running on the system (after the initial account has been synced, simply running <strong>phoronix-test-suite phoromatic.connect</strong> is enough for the system to find the server and its account).</p>
|
||||
<h2>Root Administrator</h2>
|
||||
<p>The root administrator account is able to manage the server-level settings, e.g. Phoromatic storage location and other global settings related to the Phoronix Test Suite / Phoromatic Server, from the web user-interface.</p>
|
||||
<p>To enable the root administrator log-in, first from the server's command-line interface run <strong>phoronix-test-suite phoromatic.set-root-admin-password</strong> to set the password. Following that, you can log into the root administrator account via the web interface via the <em>rootadmin</em> user-name and the set password.</p>
|
||||
<h2>Other Advice</h2>
|
||||
<h3>Disable Internet Precaution</h3>
|
||||
<p>If you have an Internet connection but want to ensure your Phoronix Test Suite client doesn't attempt to use it for any matter, via the <em>~/.phoronix-test-suite/user-config.xml</em> you can set <em>NoInternetCommunication</em> to <em>TRUE</em>. There's also a NoNetworkCommunication tag, but setting that to TRUE will disable any form of network communication -- including communication with the Phoromatic Server.</p>
|
||||
<h3>Ports / Services</h3>
|
||||
<p>The Phoromatic Server process currently relies upon a PHP/HHVM built-in web server process and a PTS-hosted WebSocket server. The web server process handles the web UI and much of the responsibilities of the Phoromatic Server. Over time the PTS WebSocket server will be increasingly utilized for bi-directional, real-time communication between the server and clients -- including for features like viewing real-time hardware sensors of client systems from the server UI.</p>
|
||||
<h3>Systemd / Upstart</h3>
|
||||
<p>Packaged with the Phoronix Test Suite are basic <em>phoromatic-client</em> and <em>phoromatic-server</em> configurations for both Upstart and systemd init systems. The <em>phoromatic-server</em> configuration will launch the Phoronix Test Suite's Phoromatic Server and the <em>phoromatic-client</em> service will attempt to connect to a <u>pre-configured</u> Phoromatic Server. The systemd service files will automatically be installed via the Phoronix Test Suite <em>install-sh</em> process while the Upstart jobs can be copied from <em>deploy/phoromatic-upstart/*</em> to <em>/etc/init</em>.</p>
|
||||
<h3>Cache Verification</h3>
|
||||
<p>To confirm the files accessible to Phoronix Test Suite client systems, from the Phoromatic Server web user-interface go to the <em>settings</em> page followed by the <em>cache settings</em> link to view information about the download and OpenBenchmarking.org caches. From the client systems, running <strong>phoronix-test-suite phoromatic.explore</strong> will also supply cache statistics.</p>
|
||||
<h3>Log Files</h3>
|
||||
<p>The Phoromatic Server will produce a log file of events / debugging information to <em>~/.phoronix-test-suite/phoromatic.log</em> or <em>/var/log/phoromatic.log</em> depending upon the service's permissions. When running the Phoronix Test Suite Phoromatic client, the log will be written to one of the respective locations in <em>phoronix-test-suite.log</em>.</p>
|
||||
<h3>Multi-User Accounts</h3>
|
||||
<p>For each time a user account is made from the Phoromatic web UI's log-in page, all of the test schedules, systems, and other account information is separate to allow for a completely isolated multi-user system. If a main administrator (the one creating the account) wishes to have multiple users sharing the same account data, that user can create additional accounts from the <em>Users</em> tab of their account. The main administrator can make an additional administrator account or a "viewer" account that can consume the account's data but not create/modify the schedules, systems, or other account details.</p>
|
||||
<h3>
|
||||
<h3>File Locations</h3>
|
||||
<p>When running the Phoronix Test Suite Phoromatic Server as root, rather than using the <em>~/.phoronix-test-suite/</em> directory, the standard Linux file-system hierarchy standard is honored. The main storage path is <em>/var/lib/phoronix-test-suite/</em>, the user configuration file is <em>/etc/phoronix-test-suite.xml</em>, and <em>/var/cache/phoronix-test-suite/</em> for cache files.</p>
|
||||
<h3>Uploading Other Test Results</h3>
|
||||
<p>Unscheduled test results and other results found on connected systems to a Phoromatic account can upload the data to the Phoromatic Server using the <em>phoronix-test-suite phoromatic.upload-result <result file identifier ></em> sub-command.</p>
|
||||
<h3>User Context File Logging</h3>
|
||||
<p>For those utilizing custom set context script files as part of the Phoromatic test schedule, any important notes / log information can be written to the file specified by the <em>PHOROMATIC_LOG_FILE</em> environment variable set while running the user context scripts. The contents of that file is then sent to the Phoromatic Server otherwise the standard output of the script's execution is submitted to the Phoromatic Server for logging. These logs can then be viewed by the Phoromatic Server along with the test results. Other environment variables accessible when running a user context script include <em>PHOROMATIC_TRIGGER</em>, <em>PHOROMATIC_SCHEDULE_ID</em>, and <em>PHOROMATIC_SCHEDULE_PROCESS</em>.</p>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Module Options</title></head><body><p>The following list is the modules included with the Phoronix Test Suite that are intended to extend the functionality of pts-core. Some of these options have commands that can be run directly in a similiar manner to the other Phoronix Test Suite user commands. Some modules are just meant to be loaded directly by adding the module name to the LoadModules tag in ~/.phoronix-test-suite/user-config.xml or via the PTS_MODULES environmental variable. A list of available modules is also available by running <em>phoronix-test-suite list-modules.</em><hr></p><h2>Dummy Module</h2><p>This is a simple module intended for developers to just demonstrate some of the module functions.</p><p>phoronix-test-suite dummy_module.dummy-command</p><h2>OpenBenchmarking.org Ekofisk</h2><p>The Ekofisk client is used for connecting to OpenBenchmarking.org to facilitate the automatic running of tests, generally across multiple test nodes in a routine manner.</p><p>phoronix-test-suite ekofisk.start</p><p>phoronix-test-suite ekofisk.user-system-return</p><h2>Graphics Event Checker</h2><p>This module checks a number of events prior to and and after running a test to make sure the graphics sub-system was not put in a sour or unintended state by the application. For instance, it makes sure syncing to vBlank is not forced through the driver and that a graphics test has not left the display in an unintended mode.</p><h2>Graphics Override</h2><p>This module allows you to override some graphics rendering settings for the ATI and NVIDIA drivers while running the Phoronix Test Suite.</p><p>This module utilizes the following environmental variables: FORCE_AA, FORCE_AF.</p><h2>MATISK</h2><p>My Automated Test Infrastructure Setup Kit</p><p>phoronix-test-suite matisk.run</p><p>phoronix-test-suite matisk.template</p><h2>Phoromatic Client</h2><p>The Phoromatic client is used for connecting to a Phoromatic server (Phoromatic.com or a locally run server) to facilitate the automatic running of tests, generally across multiple test nodes in a routine manner. For more details visit http://www.phoromatic.com/. This module is intended to be used with Phoronix Test Suite 5.2+ clients and servers.</p><p>phoronix-test-suite phoromatic.connect</p><h2>Phoromatic Legacy Client</h2><p>The Phoromatic client is used for connecting to a Phoromatic server (Phoromatic.com or a locally run server) to facilitate the automatic running of tests, generally across multiple test nodes in a routine manner. For more details visit http://www.phoromatic.com/. THIS MODULE IS USED FOR CONNECTING TO THE PRE-2014 VERSION OF PHOROMATIC; THIS OLDER VERSION OF PHOROMATIC IS NO LONGER BEING ACTIVELY MAINTAINED. PLEASE UPGRADE TO PHORONIX-TEST-SUITE 5.2+ WITH ITS BUILT-IN PHOROMATIC SERVER.</p><p>phoronix-test-suite phoromatic_legacy.start</p><p>phoronix-test-suite phoromatic_legacy.user-system-return</p><p>phoronix-test-suite phoromatic_legacy.upload-results</p><p>phoronix-test-suite phoromatic_legacy.clone-results</p><p>phoronix-test-suite phoromatic_legacy.system-schedule</p><p>phoronix-test-suite phoromatic_legacy.system-schedule-today</p><p>phoronix-test-suite phoromatic_legacy.send-message</p><h2>Pushover.net</h2><p>Submit notifications to your iOS/Android mobile devices of test results in real-time as push notifications, etc. Using the Pushover.net API.</p><p>This module utilizes the following environmental variables: PUSHOVER_NET_USER.</p><h2>Result Notifier</h2><p>A notification module.</p><h2>System Monitor</h2><p>This module contains sensor monitoring support.</p><p>This module utilizes the following environmental variables: MONITOR, PERFORMANCE_PER_WATT.</p><h2>Timed Screenshot</h2><p>This is a module that will take a screenshot of the system at a pre-defined interval. ImageMagick must be installed onto the system prior to using this module.</p><p>This module utilizes the following environmental variables: SCREENSHOT_INTERVAL.</p><h2>Toggle Screensaver</h2><p>This module toggles the system's screensaver while the Phoronix Test Suite is running. At this time, the GNOME and KDE screensavers are supported.</p><p>This module utilizes the following environmental variables: HALT_SCREENSAVER.</p><h2>Update Checker</h2><p>This module checks to see if the Phoronix Test Suite -- and its tests and suites -- are up to date.</p></body></html>
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Module Options</title></head><body><p>The following list is the modules included with the Phoronix Test Suite that are intended to extend the functionality of pts-core. Some of these options have commands that can be run directly in a similiar manner to the other Phoronix Test Suite user commands. Some modules are just meant to be loaded directly by adding the module name to the LoadModules tag in ~/.phoronix-test-suite/user-config.xml or via the PTS_MODULES environmental variable. A list of available modules is also available by running <em>phoronix-test-suite list-modules.</em><hr></p><h2>Dummy Module</h2><p>This is a simple module intended for developers to just demonstrate some of the module functions.</p><p>phoronix-test-suite dummy_module.dummy-command</p><h2>Graphics Event Checker</h2><p>This module checks a number of events prior to and and after running a test to make sure the graphics sub-system was not put in a sour or unintended state by the application. For instance, it makes sure syncing to vBlank is not forced through the driver and that a graphics test has not left the display in an unintended mode.</p><h2>Graphics Override</h2><p>This module allows you to override some graphics rendering settings for the ATI and NVIDIA drivers while running the Phoronix Test Suite.</p><p>This module utilizes the following environmental variables: FORCE_AA, FORCE_AF.</p><h2>Linux Perf Framework Reporter</h2><p>Setting LINUX_PERF=1 will auto-load and enable this Phoronix Test Suite module. The module also depends upon running a modern Linux kernel (supporting perf) and that the perf binary is available via standard system paths.</p><p>This module utilizes the following environmental variables: LINUX_PERF.</p><h2>MATISK</h2><p>My Automated Test Infrastructure Setup Kit</p><p>phoronix-test-suite matisk.run</p><p>phoronix-test-suite matisk.template</p><h2>Performance Per Dollar/Cost Calculator</h2><p>Setting the COST_PERF_PER_DOLLAR= environment variable to whatever value of the system cost/component you are running a comparison on will yield extra graphs that calculate the performance-per-dollar based on the test being run. The COST_PERF_PER_DOLLAR environment variable is applied just to the current test run identifier.</p><p>This module utilizes the following environmental variables: COST_PERF_PER_DOLLAR.</p><h2>Phoromatic Client</h2><p>The Phoromatic client is used for connecting to a Phoromatic server (Phoromatic.com or a locally run server) to facilitate the automatic running of tests, generally across multiple test nodes in a routine manner. For more details visit http://www.phoromatic.com/. This module is intended to be used with Phoronix Test Suite 5.2+ clients and servers.</p><p>phoronix-test-suite phoromatic.connect</p><p>phoronix-test-suite phoromatic.explore</p><p>phoronix-test-suite phoromatic.upload-result</p><p>phoronix-test-suite phoromatic.set-root-admin-password</p><p>phoronix-test-suite phoromatic.list-results</p><p>phoronix-test-suite phoromatic.clone</p><p>phoronix-test-suite phoromatic.export-results-for-account-schedules</p><h2>Pushover.net</h2><p>Submit notifications to your iOS/Android mobile devices of test results in real-time as push notifications, etc. Using the Pushover.net API.</p><p>This module utilizes the following environmental variables: PUSHOVER_NET_USER.</p><h2>Result Notifier</h2><p>A notification module.</p><h2>System Monitor</h2><p>This module contains sensor monitoring support.</p><p>This module utilizes the following environmental variables: MONITOR, PERFORMANCE_PER_WATT, MONITOR_INTERVAL, MONITOR_PER_RUN.</p><h2>Timed Screenshot</h2><p>This is a module that will take a screenshot of the system at a pre-defined interval. ImageMagick must be installed onto the system prior to using this module.</p><p>This module utilizes the following environmental variables: SCREENSHOT_INTERVAL.</p><h2>Toggle Screensaver</h2><p>This module toggles the system's screensaver while the Phoronix Test Suite is running. At this time, the GNOME and KDE screensavers are supported.</p><p>This module utilizes the following environmental variables: HALT_SCREENSAVER.</p><h2>Update Checker</h2><p>This module checks to see if the Phoronix Test Suite -- and its tests and suites -- are up to date.</p></body></html>
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
<p>Among the distributions where the Phoronix Test Suite has been officially tested include Ubuntu, Fedora, Mandriva / Mageia, Gentoo, PCLinuxOS, Arch Linux, Pardus, OpenSuSE, Optware, webOS, Zenwalk, CentOS, Red Hat Enterprise Linux, Oracle Linux, Scientific Linux, Debian, Mint, MEPIS, and Amazon Linux EC2.</p>
|
||||
<p>Among the tested BSD distributions are FreeBSD, PC-BSD, NetBSD, OpenBSD, Debian GNU/kFreeBSD, and DragonflyBSD. Tested Solaris distributions include OpenSolaris, Solaris Express 11, Oracle Solaris 11, OpenIndiana, Illumos, and Nexenta.</p>
|
||||
<h1>Dependencies</h1>
|
||||
<p>The only required dependency for the Phoronix Test Suite is PHP 5.2 or newer. On Linux distributions, the needed package is commonly called <em>php5-cli</em> or <em>php-cli</em> or <em>php</em>. It is important to note that only PHP for the command-line is needed and not a web server (Apache) or other packages commonly associated with PHP and its usage by web-sites. The PHP5 version required is PHP 5.2+ and can also be found at <a href="http://www.php.net/">www.php.net</a>.</p>
|
||||
<p>The only required dependency for the Phoronix Test Suite is PHP 5.3 or newer. On Linux distributions, the needed package is commonly called <em>php5-cli</em> or <em>php-cli</em> or <em>php</em>. It is important to note that only PHP for the command-line is needed and not a web server (Apache) or other packages commonly associated with PHP and its usage by web-sites. The PHP5 version required is PHP 5.3+ and can also be found at <a href="http://www.php.net/">www.php.net</a>.</p>
|
||||
|
||||
<p>For installing PHP on Windows, the <a href="https://www.microsoft.com/web/platform/phponwindows.aspx">Microsoft Web Platform Installer</a> provides an automated alternative that will install PHP into the directory expected by Phoronix Test Suite. Users opting to install PHP manually must extract the files to <em>C:\Program Files (x86)\PHP\</em> or a subdirectory.</p>
|
||||
<p>As part of the PHP requirement, the following PHP extensions are required and/or highly recommended in order to take advantage of the Phoronix Test Suite capabilities:</p>
|
||||
<ul>
|
||||
<li><strong>PHP DOM</strong> is needed for XML operations and must be installed for the Phoronix Test Suite to function.</li>
|
||||
@@ -46,14 +48,17 @@
|
||||
<h2>OpenSolaris Installation</h2>
|
||||
<p>The Phoronix Test Suite core (pts-core) is supported on Solaris and OpenSolaris platforms, but some features may not fully function. Additionally, the PTS External Dependencies feature is supported on OpenSolaris using IPS (the Image Packaging System). However, not all test profiles are supported on Solaris / OpenSolaris, and it may be in violation of your end-user agreement to perform such benchmarks on the Sun Solaris operating system. Using the OpenSolaris Image Packaging System, installing <em>SUNWphp524</em> will provide PHP, PHP GD, and related dependencies. The Phoronix Test Suite has also been tested on Oracle Solaris 11 Express, OpenIndiana, StormOS, and Nexenta Core Platform.</p>
|
||||
<h2>BSD Installation</h2>
|
||||
<p>The Phoronix Test Suite also supports *BSD operating systems. However, like the Solaris support, not all test profiles are compatible with BSD operating systems, but pts-core has been tested against FreeBSD 7.x/8.x/9.x, NetBSD, PC-BSD 7/8/9, DragonFlyBSD 3.0/3.2/3.4/3.6, and OpenBSD 4.4/4.6. The Phoronix Test Suite will also work with Debian GNU/kFreeBSD.</p>
|
||||
<p>For DragonFlyBSD, it's a matter of just using <em>pkg_radd</em> with php5, php5-json, php5-dom, and php5-zip or <em>pkgsrc</em>. Under FreeBSD/PC-BSD, PHP can be obtained from the <em>php5</em> and <em>php5-extensions</em> Ports collection.</p>
|
||||
<p>The Phoronix Test Suite also supports *BSD operating systems. However, like the Solaris support, not all test profiles are compatible with BSD operating systems, but pts-core has been tested against FreeBSD 7.x/8.x/9.x, NetBSD, PC-BSD 7/8/9, DragonFlyBSD 3.0/3.2/3.4/3.6/4.2, and OpenBSD 4.4/4.6. The Phoronix Test Suite will also work with Debian GNU/kFreeBSD.</p>
|
||||
<p>For DragonFlyBSD, it's a matter of just using <em>pkg_radd</em> with php5, php5-json, php5-dom, and php5-zip or <em>pkgsrc</em>. With DragonFlyBSD using dports, the command is <em>pkg install php5 php5-dom php5-zip php5-json php5-simplexml</em>. Under FreeBSD/PC-BSD, PHP can be obtained from the <em>php5</em> and <em>php5-extensions</em> Ports collection.</p>
|
||||
<h2>Mac OS X Installation</h2>
|
||||
<p>The Phoronix Test Suite is fully supported on Apple's Mac OS X operating system as of Mac OS X 10.5 with improved support under Mac OS X 10.6. PHP ships with Mac OS X by default so it's simply a matter of downloading the Phoronix Test Suite package, extracting it, and running the executable. For tests that rely upon a compiler, Apple's XCode with GCC and LLVM can be utilized.</p>
|
||||
<h2>Windows Installation</h2>
|
||||
<p>The Phoronix Test Suite support on Windows is in development and will function just fine, but is not yet feature complete compared to the other operating systems support. At this time the Phoronix Test Suite client is dependent upon PHP being installed to <em>C:\Program Files (x86)\PHP\php</em>. The Phoronix Test Suite also uses <a href="http://www.cpuid.com/cpuz.php">CPU-Z</a> for much of the hardware detection support on Windows and is dependent upon CPU-Z being installed to <em>C:\Program Files\CPUID\CPU-Z\cpuz.exe</em> if you wish to utilize this hardware reporting feature. In terms of the Microsoft Windows support, right now the Phoronix Test Suite is developed and solely tested against Microsoft Windows 7 x64 and Microsoft Windows 8 x64.</p>
|
||||
<p>The Phoronix Test Suite support on Microsoft Windows is in development and will function just fine, but is not yet feature complete compared to the other operating systems support. Only a small subset of test profiles, mostly related to graphics, are supported. In terms of the version support, right now the Phoronix Test Suite is developed and tested solely against Microsoft Windows 7 x64 and Microsoft Windows 8 x64.</p>
|
||||
<p>At this time the Phoronix Test Suite client is dependent upon the <em>php.exe</em> executable being installed to <em>C:\Program Files (x86)\PHP\ </em> or one of its subdirectories (see PHP installation notes above). Once this requirement is met, simply download the Phoronix Test Suite package, extract it to a directory of your choice, and run <em>phoronix-test-suite.bat</em></p>
|
||||
<p>The Phoronix Test Suite also uses <a href="http://www.cpuid.com/cpuz.php">CPU-Z</a> for much of the hardware detection support on Windows and is dependent upon CPU-Z being installed to <em>C:\Program Files\CPUID\CPU-Z\cpuz.exe</em> if you wish to utilize this hardware reporting feature. </p>
|
||||
<p>NOTE: because of lack of external dependencies support, it is necessary to manually download and install the files for some test profiles, such as the Unigine graphics benchmarks. See Troubleshooting for more information.</p>
|
||||
<h2>Facebook HipHop</h2>
|
||||
<p>The Phoronix Test Suite can use Facebook's <a href="https://github.com/facebook/hiphop-php">HopHop HHVM</a> virtual machine as an alternative to the de facto PHP implementation. The Phoronix Test Suite has been tested against HHVM 2.0. If HHVM is present on the system but not PHP, it will automatically be used by the Phoronix Test Suite. Alternatively, the <em>PHP_BIN</em> environment variable can be set to point to an alternative <em>hhvm</em> binary.</p>
|
||||
<p>The Phoronix Test Suite can use Facebook's <a href="https://github.com/facebook/hiphop-php">HipHop HHVM</a> virtual machine as an alternative to the de facto PHP implementation. The Phoronix Test Suite has been tested against HHVM 2.0. If HHVM is present on the system but not PHP, it will automatically be used by the Phoronix Test Suite. Alternatively, the <em>PHP_BIN</em> environment variable can be set to point to an alternative <em>hhvm</em> binary.</p>
|
||||
<p>The Phoronix Test Suite also supports the older version of Facebook HipHop that serves as a PHP to C++ translator and compiler with GCC. This support though is primitive and not officially supported. To compile the Phoronix Test Suite using HipHop/GCC, run <em>find . -name "*.php" > files.list && hphp --input-list=files.list -k 1 --log=3 --include-path="." --cluster-count=50 -v "AllDynamic=true" -v "AllVolatile=true"</em> from the root <em>phoronix-test-suite/</em> directory. It can then be executed in the form of <em>/tmp/hphp_XXX/program -f pts-core/phoronix-test-suite.php system-info</em>.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<p><strong>PTS_DISPLAY_MODE</strong></p>
|
||||
<p>If you wish to load a non-default display mode for a single instance, specify the mode in this variable.</p>
|
||||
<p><strong>TOTAL_LOOP_TIME</strong></p>
|
||||
<p>When running any test(s), if you would like the test(s) to continue running as a loop until a certain time has been reached, this variable can be used. The value should be the number of minutes to run the testing process before the loop is ended.</p>
|
||||
<p>When running any test(s), if you would like the test(s) to continue running as a loop until a certain time has been reached, this variable can be used. The value should be the number of minutes to run the testing process before the loop is ended. The testing will finish whenever the currently active test has finished once the time has elapsed. The minimum value allowed is 10 minutes.</p>
|
||||
<p><strong>LIMIT_ELAPSED_TEST_TIME</strong></p>
|
||||
<p>If you want to ensure that the time for a given Phoronix Test Suite process doesn't elapse past a certain number of minutes, specify the number of minutes for this environment variable. When the amount of time spent testing exceeds that amount, the testing will end prematurely while still saving the tests that were completed in time.</p>
|
||||
<p><strong>TOTAL_LOOP_COUNT</strong></p>
|
||||
@@ -57,6 +57,8 @@
|
||||
<p>This is similar to the FORCE_TIMES_TO_RUN option but will only be used if the test profile's run count is less than this defined value.</p>
|
||||
<p><strong>NO_FILE_HASH_CHECKS</strong></p>
|
||||
<p>To disable MD5/SHA256 check-sums from being checked when downloading test files, set this variable to 1. This variable used to be known as <em>NO_MD5_CHECKS</em>, which is still honored but was changed to <em>NO_FILE_HASH_CHECKS</em> to reflect other kind of file hash sum checks.</p>
|
||||
<p><strong>NO_HTTPS</strong></p>
|
||||
<p>Set this environment variable to 1 if you don't wish to use HTTPS download links for test profiles (or the system/network lacks HTTPS support). When enabled, HTTPS links will then be done over HTTP.</p>
|
||||
<p><strong>PTS_DOWNLOAD_CACHE</strong></p>
|
||||
<p>While non-standard Phoronix Test Suite download caches can be specified within the <em>user-config.xml</em> file, an additional directory to look for potential Phoronix Test Suite download files can be specified by this variable.</p>
|
||||
<p><strong>GRAPH_HIGHLIGHT</strong></p>
|
||||
|
||||
@@ -34,6 +34,13 @@
|
||||
<p>- If you want the specified test(s) to run in a loop for a set period of time, use the <em>TOTAL_LOOP_TIME</em> environment variable. For instance, running <em>TOTAL_LOOP_TIME=120 phoronix-test-suite benchmark ffmpeg</em> would keep running the ffmpeg test profile for 120 minutes.</p>
|
||||
<p>- If you want the specified test(s) to run in a loop for a set number of times, use the <em>TOTAL_LOOP_COUNT</em> environment variable. For instance, running <em>TOTAL_LOOP_COUNT=3 phoronix-test-suite benchmark ffmpeg</em> would keep running the ffmpeg test profile three times.</p>
|
||||
<p>- When any tests are being installed and when tests are being run, a lock is created in the system's temporary directory with the name <em>phoronix-test-suite.active</em> (i.e. <em>/tmp/phoronix-test-suite.active</em>) and is removed upon completion. Thus if you have any system scripts that you wish to run when tests are not running or being installed as to not impact the results, one simple way to handle this is by having the script check for the existence of this lock.</p>
|
||||
<h2>Troubleshooting</h2>
|
||||
In the event that a test profile fails to install or run, the following general troubleshooting steps may be helpful:
|
||||
|
||||
<p>- If a test profile fails immediately after starting, check the test profile's directory in <em>~/.phoronix-test-suite/installed-tests/</em> to confirm that the needed files are present. On platforms without External Dependencies support (Windows), it may be necessary to download the files manually and place them in this directory. If this is the case, you will notice that the "Downloading" phase of test installation completes instantly.</p>
|
||||
<p>- Inspect the scripts inside the above test profile's directory and confirm that directories or search paths for the test correspond to those on your system</p>
|
||||
<p>- Try running the test profile with the <em>debug-benchmark</em> command, or reinstalling with the <em>debug-install</em> command and make note of any unusual output.
|
||||
|
||||
<h2>Configuration</h2>
|
||||
<p>- The user configuration options for the Phoronix Test Suite are stored in <em>~/.phoronix-test-suite/user-config.xml</em>. The batch mode options are also stored within this file and those can be adjusted by running <em>phoronix-test-suite batch-setup</em>.</p>
|
||||
<p>- The colors, size, and other attributes for the graphs found within the Phoronix Test Suite Results Viewer can be modified via the file <em>~/.phoronix-test-suite/graph-config.json</em>.</p>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -4,14 +4,6 @@
|
||||
</head>
|
||||
<body>
|
||||
<h1>Overview</h1>
|
||||
<p><em>Phoromatic is a remote management system for the Phoronix Test Suite. Phoromatic allows the automatic (hence the name Phoromatic) scheduling of tests, remote installation of new tests, and the management of multiple test systems all through an intuitive, easy-to-use web interface. Tests can be scheduled to automatically run on a routine basis across multiple test systems. The test results are then available from this central, secure location.</em></p>
|
||||
<h1>Basic Instructions</h1>
|
||||
<ol>
|
||||
<li>Create a free account at <a href="http://www.phoromatic.com/">Phoromatic.com</a>. Phoromatic can also be installed on a LAN / intranet for professional and enterprise support customers of the Phoronix Test Suite.</li>
|
||||
<li>On each test system, install the latest version of the Phoronix Test Suite and then run <em>phoronix-test-suite module-setup phoromatic</em>. During this process it will ask the user for an account code and activiation ID that are shown from the <em>Systems</em> page of your Phoromatic account.</li>
|
||||
<li>Phoromatic cannot install external dependencies for a test if the Phoronix Test Suite is not running as root, so it would be recommended to now run <em>phoronix-test-suite install-dependencies all</em>. Alternatively, you can also run <em>phoronix-test-suite install all</em> to install all tests at this time, or begin selectively installing the tests you wish to use. Phoromatic can install tests automatically though, it just cannot install external dependencies when the user is not root.</li>
|
||||
<li>When you are all set, run <em>phoronix-test-suite phoromatic.start</em>, which begins the process of the Phoronix Test Suite listening to the Phoromatic server waiting for installation and run commands, etc. The installed system software/hardware is also reported all automatically, etc.</li>
|
||||
</ol>
|
||||
<p>For more information on Phoromatic and a detailed guide, read <a href="http://www.phoronix.com/vr.php?view=14347">Building A Benchmarking Test Farm With Phoromatic</a>.</p>
|
||||
<p>The Phoronix Test Suite now features its own built-in Phoromatic server and client implementations. See the <em>phoromatic.pdf</em> / <em>phoromatic.html</em> documentation for more information on this advanced capability.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -3,55 +3,4 @@
|
||||
<Title>Development Credits</Title>
|
||||
</head>
|
||||
<body>
|
||||
<p>The Phoronix Test Suite is based upon the extensive testing and internal tools developed by <a href="http://www.phoronix.com/">Phoronix.com</a> since 2004 along with support from leading tier-one computer hardware and software vendors. The principal architects of the Phoronix Test Suite are <a href="http://www.michaellarabel.com/">Michael Larabel</a> and Matthew Tippett. The phoronix-test-suite, pts_Graph, bilde_renderer, Phodevi, tandem_Xml, and nye_Xml are some of the related open-source projects provided by <a href="http://www.phoronix-media.com/">Phoronix Media</a>.</p>
|
||||
<p>Below is a list of individuals and organizations that have contributed upstream patches, test profiles, and/or made other contributions to the Phoronix Test Suite that Phoronix Media would like to thank.</p>
|
||||
<ul>
|
||||
<li>Achim Gottinger</li>
|
||||
<li>Achim Lange</li>
|
||||
<li>Andrew Schofield</li>
|
||||
<li>Apaige</li>
|
||||
<li>Ben Kero</li>
|
||||
<li>Bryan Quigley</li>
|
||||
<li>Chris Campbell</li>
|
||||
<li>Daniel Díaz</li>
|
||||
<li>Daniel Stodden / Citrix</li>
|
||||
<li>Dean Hilkewich</li>
|
||||
<li>ESET s.r.o.</li>
|
||||
<li>Fatima Sheremetyeva</li>
|
||||
<li>Fujitsu</li>
|
||||
<li>Hans Ulrich Niedermann</li>
|
||||
<li>Intel Open-Source Technology Center</li>
|
||||
<li>Jeroen van Rijn</li>
|
||||
<li>Johannes Obermayr</li>
|
||||
<li>Juan Aguado</li>
|
||||
<li>Jörg Schirottke</li>
|
||||
<li>Kenney Phillis</li>
|
||||
<li>Kim Bisgaard</li>
|
||||
<li>Laminar Research</li>
|
||||
<li>Marco Poletti</li>
|
||||
<li>Matthew Tippett</li>
|
||||
<li>Michael Larabel</li>
|
||||
<li>Michael Opdenacker</li>
|
||||
<li>Michael Ploujnikov</li>
|
||||
<li>Michal Zatloukal</li>
|
||||
<li>Mufasa72</li>
|
||||
<li>Nicholas Omann</li>
|
||||
<li>NickZ</li>
|
||||
<li>Nils Kneuper</li>
|
||||
<li>NVIDIA Corporation</li>
|
||||
<li>Pekka Panula</li>
|
||||
<li>Peter Kraus</li>
|
||||
<li>Rainer König</li>
|
||||
<li>SOMA Networks, Inc.</li>
|
||||
<li>Stefan Doesinger</li>
|
||||
<li>Stepan Hrbek</li>
|
||||
<li>Stéphane Teletchéa</li>
|
||||
<li>Sun Microsystems</li>
|
||||
<li>Tao Zhang</li>
|
||||
<li>Thomas Klausner</li>
|
||||
<li>Unigine Corp</li>
|
||||
<li>Vadim Peretokin</li>
|
||||
<li>Zachary Powers</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
<p>The Phoronix Test Suite is based upon the extensive testing and internal tools developed by <a href="http://www.phoronix.com/">Phoronix.com</a> since 2004 along with support from leading tier-one computer hardware and software vendors. The principal architects of the Phoronix Test Suite are <a href="http://www.michaellarabel.com/">Michael Larabel</a> and Matthew Tippett. The phoronix-test-suite, pts_Graph, Phoromatic, Phodevi, tandem_Xml, and nye_Xml are some of the related open-source projects provided by <a href="http://www.phoronix-media.com/">Phoronix Media</a>.</p>
|
||||
|
||||
@@ -2,26 +2,24 @@ The Phoronix Test Suite itself is an open-source framework for conducting automa
|
||||
|
||||
This framework is designed to be an extensible architecture so that new test profiles and suites can be easily added to represent performance benchmarks, unit tests, and other quantitative and qualitative (e.g. image quality comparison) measurements. Available through OpenBenchmarking.org, a collaborative storage platform developed in conjunction with the Phoronix Test Suite, are more than 200 individual test profiles and more than 60 test suites available by default from the Phoronix Test Suite. Independent users are also able to upload their test results, profiles, and suites to OpenBenchmarking.org. A test profile is a single test that can be executed by the Phoronix Test Suite -- with a series of options possible within every test -- and a test suite is a seamless collection of test profiles and/or additional test suites. A test profile consists of a set of bash/shell scripts and XML files while a test suite is a single XML file.
|
||||
|
||||
OpenBenchmarking.org <http://www.openbenchmarking.org/> also allows for conducting side-by-side result comparisons, a central location for storing and sharing test results, and collaborating over test data. Phoromatic <http://www.phoromatic.com/> is a complementary platform to OpenBenchmarking.org and the Phoronix Test Suite for interfacing with Phoronix Test Suite client(s) to automatically execute test runs on a timed, per-commit, or other trigger-driven basis. Phoromatic is designed for enterprise and allows for the easy management of multiple networked systems running Phoronix Test Suite clients via a single web-based interface.
|
||||
[OpenBenchmarking.org](http://www.openbenchmarking.org/) also allows for conducting side-by-side result comparisons, a central location for storing and sharing test results, and collaborating over test data. [Phoromatic](http://www.phoromatic.com/) is a complementary platform to OpenBenchmarking.org and the Phoronix Test Suite for interfacing with Phoronix Test Suite client(s) to automatically execute test runs on a timed, per-commit, or other trigger-driven basis. Phoromatic is designed for enterprise and allows for the easy management of multiple networked systems running Phoronix Test Suite clients via a single web-based interface.
|
||||
|
||||
Professional support and custom engineering for the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org is available by contacting <http://www.phoronix-test-suite.com/>.
|
||||
|
||||
Full details on the Phoronix Test Suite setup and usage is available from the included HTML/PDF documentation within the phoronix-test-suite package and from the Phoronix Test Suite web-site.
|
||||
Full details on the Phoronix Test Suite setup and usage is available from the included HTML/PDF documentation within the phoronix-test-suite package and from the Phoronix Test Suite website.
|
||||
|
||||
INSTALLATION & SETUP:
|
||||
#####################
|
||||
## Installation & Setup
|
||||
|
||||
The Phoronix Test Suite is supported on Linux, *BSD, Solaris, Mac OS X, and Windows systems. However, the most full-featured and well supported operating system for conducting the tests is Linux with some non-basic functionality not being available under all platforms. The Phoronix Test Suite software/framework is compatible with all major CPU architectures (e.g. i686, x86_64, ARM, PowerPC), but not all of the test profiles/suites are compatible with all architectures.
|
||||
|
||||
The Phoronix Test Suite can be installed for system-wide usage or run locally without installation from the extracted tar.gz/zip package. The only hard dependency on the Phoronix Test Suite is having command-line support for PHP (PHP 5.2+) installed. A complete PHP stack (e.g. with web-server) is NOT needed, but merely the PHP command-line support, which is widely available from operating system package managers under the name php, php5-cli, or php5.
|
||||
The Phoronix Test Suite can be installed for system-wide usage or run locally without installation from the extracted tar.gz/zip package. The only hard dependency on the Phoronix Test Suite is having command-line support for PHP (PHP 5.3+) installed. A complete PHP stack (e.g. with web-server) is **not** needed, but merely the PHP command-line support, which is widely available from operating system package managers under the name `php`, `php5-cli`, or `php5`.
|
||||
|
||||
USAGE:
|
||||
######
|
||||
## Usage
|
||||
|
||||
The process to download, install/setup, execute, and report the results of a benchmark can be as simple as a command such as *phoronix-test-suite benchmark smallpt* to run a simple CPU test profile. If wishing to simply install a test, it's a matter of running *phoronix-test-suite install <test or suite name>* and to run it's *phoronix-test-suite run <test or suite name>*. There's also a batch mode for non-interactive benchmarking by first running *phoronix-test-suite batch-setup* and then using the *batch-run* sub-command rather than *run*.
|
||||
The process to download, install/setup, execute, and report the results of a benchmark can be as simple as a command such as `phoronix-test-suite benchmark smallpt` to run a simple CPU test profile. If wishing to simply install a test, it's a matter of running `phoronix-test-suite install <test or suite name>` and to run it's `phoronix-test-suite run <test or suite name>`. There's also a batch mode for non-interactive benchmarking by first running `phoronix-test-suite batch-setup` and then using the `batch-run` sub-command rather than `run`.
|
||||
|
||||
Viewing installed system hardware and software is available via *phoronix-test-suite system-info* or *phoronix-test-suite detailed-system-info* for greater verbosity.
|
||||
Viewing installed system hardware and software is available via `phoronix-test-suite system-info` or `phoronix-test-suite detailed-system-info` for greater verbosity.
|
||||
|
||||
Facilitating a result comparison from OpenBenchmarking.org can be done by running, for example, *phoronix-test-suite benchmark 1204293-BY-PHORONIX357* if wishing to compare the results of the *http://openbenchmarking.org/result/1204293-BY-PHORONIX357* result file.
|
||||
Facilitating a result comparison from OpenBenchmarking.org can be done by running, for example, `phoronix-test-suite benchmark 1204293-BY-PHORONIX357` if wishing to compare the results of the `http://openbenchmarking.org/result/1204293-BY-PHORONIX357` result file.
|
||||
|
||||
Additional information is available from the Phoronix Test Suite web-site <http://www.phoronix-test-suite.com/> and the material bundled within the phoronix-test-suite/documentation/ directory. A man page is also bundled with the phoronix-test-suite software.
|
||||
Additional information is available from the Phoronix Test Suite website <http://www.phoronix-test-suite.com/> and the material bundled within the `phoronix-test-suite/documentation/` directory. A man page is also bundled with the phoronix-test-suite software.
|
||||
|
||||
19
install-sh
19
install-sh
@@ -2,7 +2,7 @@
|
||||
|
||||
# Phoronix Test Suite
|
||||
# URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
# Copyright (C) 2008 - 2014, Phoronix Media
|
||||
# Copyright (C) 2008 - 2016, Phoronix Media
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -42,7 +42,7 @@ fi
|
||||
mkdir -p $DESTDIR$INSTALL_PREFIX
|
||||
if [ ! -w $DESTDIR$INSTALL_PREFIX ]
|
||||
then
|
||||
echo "\nERROR: $DESTDIR$INSTALL_PREFIX is not writable. Run this installer as root or specify a different directory prefix as the first argument sent to this script.\n"
|
||||
echo "ERROR: $DESTDIR$INSTALL_PREFIX is not writable. Run this installer as root or specify a different directory prefix as the first argument sent to this script."
|
||||
exit
|
||||
fi
|
||||
|
||||
@@ -57,8 +57,10 @@ mkdir -p $DESTDIR$INSTALL_PREFIX/share/man/man1/
|
||||
mkdir -p $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/
|
||||
mkdir -p $DESTDIR$INSTALL_PREFIX/share/doc/phoronix-test-suite/
|
||||
mkdir -p $DESTDIR$INSTALL_PREFIX/../etc/bash_completion.d/
|
||||
#mkdir -p $DESTDIR$INSTALL_PREFIX/../usr/lib/systemd/system/
|
||||
#mkdir -p $DESTDIR$INSTALL_PREFIX/../etc/init/
|
||||
|
||||
cp CHANGE-LOG $DESTDIR$INSTALL_PREFIX/share/doc/phoronix-test-suite/
|
||||
cp ChangeLog $DESTDIR$INSTALL_PREFIX/share/doc/phoronix-test-suite/
|
||||
cp COPYING $DESTDIR$INSTALL_PREFIX/share/doc/phoronix-test-suite/
|
||||
cp AUTHORS $DESTDIR$INSTALL_PREFIX/share/doc/phoronix-test-suite/
|
||||
|
||||
@@ -74,8 +76,15 @@ cp pts-core/static/phoronix-test-suite.desktop $DESTDIR$INSTALL_PREFIX/share/app
|
||||
cp pts-core/static/phoronix-test-suite-launcher.desktop $DESTDIR$INSTALL_PREFIX/share/applications/
|
||||
cp pts-core/static/phoronix-test-suite.appdata.xml $DESTDIR$INSTALL_PREFIX/share/appdata/
|
||||
|
||||
rm -f $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/pts/etc/scripts/package-build-*
|
||||
mkdir -p $DESTDIR$INSTALL_PREFIX/../usr/lib/systemd/system/
|
||||
cp deploy/*-systemd/*.service $DESTDIR$INSTALL_PREFIX/../usr/lib/systemd/system/
|
||||
|
||||
# mkdir -p $DESTDIR$INSTALL_PREFIX/../etc/init/
|
||||
# cp pts-core/static/upstart/*.conf $DESTDIR$INSTALL_PREFIX/../etc/init/
|
||||
|
||||
rm -rf $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/pts-core
|
||||
cp -r pts-core $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/
|
||||
cp -r deploy $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/
|
||||
rm -f $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/pts-core/static/phoronix-test-suite.desktop
|
||||
rm -f $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/pts-core/static/phoronix-test-suite-launcher.desktop
|
||||
rm -f $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/pts-core/openbenchmarking.org/openbenchmarking-mime.xml
|
||||
@@ -90,7 +99,7 @@ chmod +x $DESTDIR$INSTALL_PREFIX/bin/phoronix-test-suite
|
||||
# sed 's:\$url = PTS_PATH . \"documentation\/index.html\";:\$url = \"'"$INSTALL_PREFIX"'\/share\/doc\/packages\/phoronix-test-suite\/index.html\";:g' pts-core/commands/gui_gtk.php > $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/pts-core/commands/gui_gtk.php
|
||||
|
||||
# XDG MIME OpenBenchmarking support
|
||||
if [ "X$DESTDIR" = "X" ]
|
||||
if [ "X$DESTDIR" = "X" ] && which xdg-mime >/dev/null && which xdg-icon-resource >/dev/null
|
||||
then
|
||||
#No chroot
|
||||
xdg-mime install pts-core/openbenchmarking.org/openbenchmarking-mime.xml
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
#
|
||||
# Phoronix Test Suite
|
||||
# URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
# Copyright (C) 2008 - 2014, Phoronix Media
|
||||
# Copyright (C) 2008 - 2014, Michael Larabel
|
||||
# Copyright (C) 2008 - 2016, Phoronix Media
|
||||
# Copyright (C) 2008 - 2016, Michael Larabel
|
||||
# phoronix-test-suite: The Phoronix Test Suite is an extensible open-source testing / benchmarking platform
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
@@ -31,6 +31,15 @@ then
|
||||
cd $PTS_DIR
|
||||
fi
|
||||
|
||||
# Run any start-up hooks, such as to pre-seed environment variables or other non-default behaviors / customizations
|
||||
if [ -d pts-core/hooks/startup ]
|
||||
then
|
||||
for file in pts-core/hooks/startup/*.sh
|
||||
do
|
||||
./$file
|
||||
done
|
||||
fi
|
||||
|
||||
# Determine PHP binary location
|
||||
if [ ! "X$PHP_BIN" = "X" ] && [ -x $PHP_BIN ]
|
||||
then
|
||||
@@ -53,9 +62,18 @@ then
|
||||
elif [ -x /usr/pkg/libexec/cgi-bin/php ]
|
||||
then
|
||||
export PHP_BIN="/usr/pkg/libexec/cgi-bin/php"
|
||||
elif which php >/dev/null 2>&1 ;
|
||||
then
|
||||
export PHP_BIN="php"
|
||||
elif which php5 >/dev/null 2>&1 ;
|
||||
then
|
||||
export PHP_BIN="php5"
|
||||
elif [ -x /usr/bin/hhvm ]
|
||||
then
|
||||
export PHP_BIN="/usr/bin/hhvm"
|
||||
elif which hhvm >/dev/null 2>&1 ;
|
||||
then
|
||||
export PHP_BIN="hhvm"
|
||||
else
|
||||
export PHP_BIN=""
|
||||
fi
|
||||
@@ -65,42 +83,76 @@ if [ "X$PHP_BIN" = "X" ]
|
||||
then
|
||||
cat <<'EOT'
|
||||
|
||||
PHP 5.2 or newer must be installed for the Phoronix Test Suite
|
||||
PHP 5.3 or newer must be installed for the Phoronix Test Suite
|
||||
The PHP command-line package is commonly called php-cli, php5-cli, or php.
|
||||
For more information visit: http://www.phoronix-test-suite.com/
|
||||
|
||||
EOT
|
||||
|
||||
if [ -x /usr/bin/apt-get ]
|
||||
then
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# apt-get install php5-cli php5-json php5-gd"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/yum ]
|
||||
then
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# yum install php-cli php-xml"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/zypper ]
|
||||
if [ -x /usr/bin/zypper ]
|
||||
then
|
||||
# SUSE / OpenSUSE
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# zypper install php5 php5-zip"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/apt-get ]
|
||||
then
|
||||
# Debian / Ubuntu Based Systems
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# apt-get install php5-cli"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/dnf ]
|
||||
then
|
||||
# Modern Fedora
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# dnf install php-cli php-xml"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/yum ]
|
||||
then
|
||||
# Red Hat / Fedora / etc
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# yum install php-cli php-xml"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/pkg_radd ]
|
||||
then
|
||||
# BSD
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# pkg_radd php5 php5-json php5-zip php5-dom"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/pacman ]
|
||||
then
|
||||
# Arch Linux
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# pacman -S php"
|
||||
echo " "
|
||||
elif [ -x /usr/local/sbin/pkg ] || [ -x /usr/sbin/pkg ]
|
||||
then
|
||||
# DragonFlyBSD and others
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# pkg install php5 php5-dom php5-zip php5-json php5-simplexml"
|
||||
echo " "
|
||||
elif [ -x /usr/local/swupd ]
|
||||
then
|
||||
# Clear Linux
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# swupd bundle-add os-testsuite-phoronix"
|
||||
echo " "
|
||||
elif [ -x /usr/sbin/pkg_add ]
|
||||
then
|
||||
# OpenBSD
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# pkg_add php php-zip"
|
||||
echo " "
|
||||
fi
|
||||
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ ! -f pts-core/phoronix-test-suite.php ] && [ -f `dirname $0`/pts-core/phoronix-test-suite.php ]
|
||||
then
|
||||
cd `dirname $0`
|
||||
fi
|
||||
|
||||
# Ensure the user is in the correct directory
|
||||
if [ ! -f pts-core/phoronix-test-suite.php ]
|
||||
then
|
||||
@@ -118,15 +170,12 @@ case "$1" in
|
||||
"test-module" | "debug-module" | "webui")
|
||||
export PTS_IGNORE_MODULES=1
|
||||
;;
|
||||
"enterprise-setup")
|
||||
export PTS_SILENT_MODE=1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f $HOME/.phoronix-test-suite/web-server-launcher ]
|
||||
then
|
||||
rm -f $HOME/.phoronix-test-suite/web-server-launcher
|
||||
elif [ -f $HOME/.phoronix-test-suite/phoromatic-server-launcher ]
|
||||
then
|
||||
rm -f $HOME/.phoronix-test-suite/phoromatic-server-launcher
|
||||
fi
|
||||
export PTS_EXT_LAUNCH_SCRIPT_DIR=`mktemp -d 2>/dev/null || mktemp -d -t ptstmp`
|
||||
|
||||
# Run The Phoronix Test Suite
|
||||
PTS_EXIT_STATUS=8
|
||||
@@ -135,14 +184,15 @@ while [ $PTS_EXIT_STATUS -eq 8 ]; do
|
||||
PTS_EXIT_STATUS=$?
|
||||
done
|
||||
|
||||
if [ -f $HOME/.phoronix-test-suite/web-server-launcher ]
|
||||
if [ -f $PTS_EXT_LAUNCH_SCRIPT_DIR/web-server-launcher ]
|
||||
then
|
||||
chmod +x $HOME/.phoronix-test-suite/web-server-launcher
|
||||
exec $HOME/.phoronix-test-suite/web-server-launcher
|
||||
rm -f $HOME/.phoronix-test-suite/web-server-launcher
|
||||
elif [ -f $HOME/.phoronix-test-suite/phoromatic-server-launcher ]
|
||||
chmod +x $PTS_EXT_LAUNCH_SCRIPT_DIR/web-server-launcher
|
||||
exec $PTS_EXT_LAUNCH_SCRIPT_DIR/web-server-launcher
|
||||
rm -f $PTS_EXT_LAUNCH_SCRIPT_DIR/web-server-launcher
|
||||
elif [ -f $PTS_EXT_LAUNCH_SCRIPT_DIR/phoromatic-server-launcher ]
|
||||
then
|
||||
chmod +x $HOME/.phoronix-test-suite/phoromatic-server-launcher
|
||||
exec $HOME/.phoronix-test-suite/phoromatic-server-launcher
|
||||
rm -f $HOME/.phoronix-test-suite/phoromatic-server-launcher
|
||||
chmod +x $PTS_EXT_LAUNCH_SCRIPT_DIR/phoromatic-server-launcher
|
||||
exec $PTS_EXT_LAUNCH_SCRIPT_DIR/phoromatic-server-launcher
|
||||
rm -f $PTS_EXT_LAUNCH_SCRIPT_DIR/phoromatic-server-launcher
|
||||
fi
|
||||
# rm -rf $PTS_EXT_LAUNCH_SCRIPT_DIR
|
||||
|
||||
22
phoronix-test-suite.bat
Executable file → Normal file
22
phoronix-test-suite.bat
Executable file → Normal file
@@ -1,7 +1,7 @@
|
||||
:: Phoronix Test Suite
|
||||
:: URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
:: Copyright (C) 2008 - 2014, Phoronix Media
|
||||
:: Copyright (C) 2008 - 2014, Michael Larabel
|
||||
:: Copyright (C) 2008 - 2016, Phoronix Media
|
||||
:: Copyright (C) 2008 - 2016, Michael Larabel
|
||||
:: phoronix-test-suite: The Phoronix Test Suite is an extensible open-source testing / benchmarking platform
|
||||
::
|
||||
:: This program is free software; you can redistribute it and/or modify
|
||||
@@ -25,11 +25,19 @@ set PTS_MODE=CLIENT
|
||||
|
||||
:: TODO: Other work to bring this up to sync with the *NIX phoronix-test-suite launcher
|
||||
If defined PHP_BIN goto SkipBinSearch
|
||||
|
||||
echo "No PHP_BIN defined checking for usual locations."
|
||||
If exist "C:\Program Files (x86)\PHP"\php set PHP_BIN="C:\Program Files (x86)\PHP"\php
|
||||
If exist C:\php-gtk2\php set PHP_BIN=C:\php-gtk2\php
|
||||
set PHP_BIN="C:\Program Files (x86)\PHP"\php
|
||||
|
||||
:: Recursively search C:Program Files (x86)\PHP\ and subdirectories for the php executable
|
||||
:: (installed location may vary depending on the installation method.)
|
||||
|
||||
for /f "delims=" %%i in ('dir "C:\Program Files (x86)\PHP\php.exe" /s /b') do (set PHP_BIN="%%i")
|
||||
|
||||
If exist C:\php-gtk2\php.exe (
|
||||
set PHP_BIN=C:\php-gtk2\php.exe
|
||||
)
|
||||
|
||||
:SkipBinSearch
|
||||
If not defined PHP_BIN echo "\nPHP could not be found.\n" else cls
|
||||
%PHP_BIN% pts-core/phoronix-test-suite.php %*
|
||||
cls
|
||||
|
||||
%PHP_BIN% pts-core\phoronix-test-suite.php %*
|
||||
|
||||
@@ -1,30 +1,24 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2011, Phoronix Media
|
||||
Copyright (C) 2008 - 2011, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class analyze_all_runs implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Result Analytics';
|
||||
const doc_description = 'This option will generate a candlestick graph showing the distribution of results from all trial runs. The candlestick graph is similar to the Japanese candlestick charts used by the financial industry, except instead of representing stock data it is numerical result data from all trial runs.\n\nThe tip of the upper-wick represents the highest value of the test runs with the tip of the lower-wick representing the lowest value of all test runs. The upper-edge of the candle body represents the first or last run value and the lower-edge represents the first or last run value. Lastly, if the last run value is less than the first run value, the candle body is the same color as the graph background, otherwise the last run value is greater.';
|
||||
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
@@ -33,8 +27,7 @@ class analyze_all_runs implements pts_option_interface
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
pts_client::regenerate_graphs($args[0], 'The ' . $args[0] . ' result file graphs have been re-rendered to show all test runs.', array('graph_render_type' => 'CANDLESTICK'));
|
||||
pts_client::regenerate_graphs($args[0], 'The ' . $args[0] . ' result file graphs have been re-rendered to show all test runs.', array('graph_render_type' => 'HORIZONTAL_BOX_PLOT'));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2011, Phoronix Media
|
||||
Copyright (C) 2008 - 2011, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class analyze_batch implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Result Analytics';
|
||||
const doc_description = 'This option will analyze a batch results file and plot out the performance impact from the different options onto a line graph (i.e. to see the impact that changing the video resolution has on the system\'s performance).';
|
||||
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_types', 'is_result_file'), null)
|
||||
);
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
$base_file = $args[0];
|
||||
|
||||
do
|
||||
{
|
||||
$rand_file = rand(1000, 9999);
|
||||
$save_to = 'analyze-' . $rand_file . '/';
|
||||
}
|
||||
while(is_dir(PTS_SAVE_RESULTS_PATH . $save_to));
|
||||
$save_to .= 'composite.xml';
|
||||
|
||||
// Analyze Results
|
||||
$SAVED_RESULTS = pts_merge::generate_analytical_batch_xml($base_file);
|
||||
pts_client::save_test_result($save_to, $SAVED_RESULTS);
|
||||
echo 'Results Saved To: ' . PTS_SAVE_RESULTS_PATH . $save_to . PHP_EOL . PHP_EOL;
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . dirname($save_to) . '/index.html');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,138 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2011, Phoronix Media
|
||||
Copyright (C) 2009 - 2011, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class analyze_image_delta implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Result Analytics';
|
||||
const doc_description = 'This option will analyze a test result file if it contains any test results that produced an image quality comparison (IQC) and will render image deltas illustrating the difference between images from two test results.';
|
||||
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_types', 'is_result_file'), null)
|
||||
);
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
$result = $args[0];
|
||||
|
||||
$result_file = new pts_result_file($result);
|
||||
$result_file_identifiers = $result_file->get_system_identifiers();
|
||||
|
||||
if(count($result_file_identifiers) < 2)
|
||||
{
|
||||
echo PHP_EOL . 'There are not multiple test runs in this result file.' . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
|
||||
$base_identifier = pts_user_io::prompt_text_menu('Select the base test run', $result_file_identifiers);
|
||||
$base_select = new pts_result_merge_select($result, $base_identifier);
|
||||
|
||||
$compare_identifier = pts_user_io::prompt_text_menu('Select the test run to compare', $result_file_identifiers);
|
||||
$compare_select = new pts_result_merge_select($result, $compare_identifier);
|
||||
|
||||
do
|
||||
{
|
||||
$extract_to = 'iqc-analyze-' . rand(100, 999);
|
||||
}
|
||||
while(is_dir(PTS_SAVE_RESULTS_PATH . $extract_to));
|
||||
|
||||
$extract_result = pts_merge::merge_test_results($base_select, $compare_select);
|
||||
pts_client::save_test_result($extract_to . '/composite.xml', $extract_result);
|
||||
|
||||
$compare_file = new pts_result_file($extract_to);
|
||||
$result_file_writer = new pts_result_file_writer('Image Delta');
|
||||
|
||||
foreach($compare_file->get_result_objects() as $result_object)
|
||||
{
|
||||
if($result_object->test_profile->get_display_format() != 'IMAGE_COMPARISON')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$base_result = null;
|
||||
$compare_result = null;
|
||||
|
||||
foreach($result_object->test_result_buffer->get_buffer_items() as $buffer_item)
|
||||
{
|
||||
if($buffer_item->get_result_identifier() == $base_identifier && $base_result == null)
|
||||
{
|
||||
$base_result = $buffer_item->get_result_value();
|
||||
}
|
||||
else if($buffer_item->get_result_identifier() == $compare_identifier && $compare_result == null)
|
||||
{
|
||||
$compare_result = $buffer_item->get_result_value();
|
||||
}
|
||||
|
||||
if($compare_result != null && $base_result != null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($compare_result == null || $base_result == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$base_img = imagecreatefromstring(base64_decode($base_result));
|
||||
$compare_img = imagecreatefromstring(base64_decode($compare_result));
|
||||
$delta_img = imagecreatefromstring(base64_decode($compare_result));
|
||||
$img_width = imagesx($base_img);
|
||||
$img_height = imagesy($base_img);
|
||||
$img_changed = false;
|
||||
|
||||
for($x = 0; $x < $img_width; $x++)
|
||||
{
|
||||
for($y = 0; $y < $img_height; $y++)
|
||||
{
|
||||
$base_image_color = pts_image::rgb_gd_color_at($base_img, $x, $y);
|
||||
$compare_image_color = pts_image::rgb_gd_color_at($compare_img, $x, $y);
|
||||
|
||||
if($base_image_color == $compare_image_color || pts_image::rgb_int_diff($base_image_color, $compare_image_color) < 9)
|
||||
{
|
||||
if(($cords = pts_image::color_pixel_delta($base_img, $compare_img, $x, $y)))
|
||||
{
|
||||
$pixel_rgb = pts_image::rgb_gd_color_at($delta_img, $cords[0], $cords[1]);
|
||||
$color_invert = imagecolorresolve($delta_img, 255 - $pixel_rgb[0], 255 - $pixel_rgb[1], 255 - $pixel_rgb[2]);
|
||||
imagesetpixel($delta_img, $x, $y, $color_invert);
|
||||
$img_changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($img_changed)
|
||||
{
|
||||
imagepng($delta_img, PTS_SAVE_RESULTS_PATH . $extract_to . '/scratch.png');
|
||||
$result_value = base64_encode(file_get_contents(PTS_SAVE_RESULTS_PATH . $extract_to . '/scratch.png', FILE_BINARY));
|
||||
pts_file_io::unlink(PTS_SAVE_RESULTS_PATH . $extract_to . '/scratch.png');
|
||||
$result_file_writer->add_result_from_result_object_with_value_string($result_object, $result_value);
|
||||
}
|
||||
}
|
||||
|
||||
pts_client::save_result_file($result_file_writer, $extract_to);
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $extract_to . '/composite.xml');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2012, Phoronix Media
|
||||
Copyright (C) 2012, Michael Larabel
|
||||
Copyright (C) 2012 - 2016, Phoronix Media
|
||||
Copyright (C) 2012 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -39,7 +39,7 @@ class auto_compare implements pts_option_interface
|
||||
|
||||
if($test_object instanceof pts_test_profile)
|
||||
{
|
||||
array_push($compare_tests, $test_object->get_identifier(false));
|
||||
$compare_tests[] = $test_object->get_identifier(false);
|
||||
|
||||
if(!isset($compare_subsystems[$test_object->get_test_hardware_type()]))
|
||||
{
|
||||
@@ -113,11 +113,10 @@ class auto_compare implements pts_option_interface
|
||||
|
||||
foreach($json['auto_compare']['public_ids'] as $public_id)
|
||||
{
|
||||
$result_xml = pts_openbenchmarking::clone_openbenchmarking_result($public_id, true);
|
||||
|
||||
if($result_xml)
|
||||
$ret = pts_openbenchmarking::clone_openbenchmarking_result($public_id);
|
||||
if($ret)
|
||||
{
|
||||
$result_file = new pts_result_file($result_xml);
|
||||
$result_file = new pts_result_file($public_id);
|
||||
$result_objects = $result_file->get_result_objects();
|
||||
|
||||
foreach($result_objects as $i => &$result_object)
|
||||
@@ -140,54 +139,49 @@ class auto_compare implements pts_option_interface
|
||||
continue;
|
||||
}
|
||||
$result_file->override_result_objects($result_objects);
|
||||
|
||||
array_push($compare_results, $result_file);
|
||||
pts_client::save_test_result($result_file->get_file_location(), $result_file->get_xml());
|
||||
$compare_results[] = $public_id;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($compare_results) > 0)
|
||||
{
|
||||
$result_xml = pts_merge::merge_test_results_array($compare_results);
|
||||
$result_file = new pts_result_file(null, true);
|
||||
$result_file->merge($compare_results);
|
||||
$result_objects = $result_file->get_result_objects();
|
||||
$system_count = $result_file->get_system_count();
|
||||
$result_count = count($result_objects);
|
||||
$result_match_count = array();
|
||||
|
||||
if(count($compare_results) > 2)
|
||||
if($result_count > 3)
|
||||
{
|
||||
$result_file = new pts_result_file($result_xml);
|
||||
$result_objects = $result_file->get_result_objects();
|
||||
$system_count = $result_file->get_system_count();
|
||||
$result_count = count($result_objects);
|
||||
$result_match_count = array();
|
||||
|
||||
if($result_count > 3)
|
||||
foreach($result_objects as $i => &$result_object)
|
||||
{
|
||||
foreach($result_objects as $i => &$result_object)
|
||||
{
|
||||
$result_match_count[$i] = $result_object->test_result_buffer->get_count();
|
||||
}
|
||||
$result_match_count[$i] = $result_object->test_result_buffer->get_count();
|
||||
}
|
||||
|
||||
arsort($result_match_count);
|
||||
$biggest_size = pts_arrays::first_element($result_match_count);
|
||||
if($biggest_size == $system_count || $biggest_size > 3)
|
||||
arsort($result_match_count);
|
||||
$biggest_size = pts_arrays::first_element($result_match_count);
|
||||
if($biggest_size == $system_count || $biggest_size > 3)
|
||||
{
|
||||
foreach($result_match_count as $key => $value)
|
||||
{
|
||||
foreach($result_match_count as $key => $value)
|
||||
if($value < 2)
|
||||
{
|
||||
if($value < 2)
|
||||
{
|
||||
unset($result_objects[$key]);
|
||||
}
|
||||
unset($result_objects[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
$result_file->override_result_objects($result_objects);
|
||||
$result_xml = pts_merge::merge_test_results_array(array($result_file));
|
||||
}
|
||||
$result_file->override_result_objects($result_objects);
|
||||
}
|
||||
|
||||
pts_client::save_test_result('auto-comparison/composite.xml', $result_xml);
|
||||
pts_client::save_test_result('auto-comparison/composite.xml', $result_file->get_xml());
|
||||
}
|
||||
}
|
||||
|
||||
pts_test_installer::standard_install(array('auto-comparison'));
|
||||
pts_test_run_manager::standard_run(array('auto-comparison'));
|
||||
$test_run_manager = new pts_test_run_manager();
|
||||
$test_run_manager->standard_run(array('auto-comparison'));
|
||||
}
|
||||
protected static function system_component_to_format(&$system_info, &$to_array, $component_types, $allow_trim_extra = false)
|
||||
{
|
||||
@@ -203,10 +197,10 @@ class auto_compare implements pts_option_interface
|
||||
{
|
||||
$value_r = explode(' ', str_replace('-', ' ', $value));
|
||||
array_pop($value_r);
|
||||
array_push($to_array, $component_type . ':' . implode(' ', $value_r));
|
||||
$to_array[] = $component_type . ':' . implode(' ', $value_r);
|
||||
}
|
||||
|
||||
array_push($to_array, $component_type . ':' . $value);
|
||||
$to_array[] = $component_type . ':' . $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
59
pts-core/commands/auto_sort_result_file.php
Normal file
59
pts-core/commands/auto_sort_result_file.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2014 - 2015, Phoronix Media
|
||||
Copyright (C) 2014 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class auto_sort_result_file implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Result Management';
|
||||
const doc_description = 'This option is used if you wish to automatically attempt to sort the results by their result identifier string.';
|
||||
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_types', 'is_result_file'), null)
|
||||
);
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
$result_file = new pts_result_file($args[0]);
|
||||
$result_file_identifiers = $result_file->get_system_identifiers();
|
||||
|
||||
if(count($result_file_identifiers) < 2)
|
||||
{
|
||||
echo PHP_EOL . 'There are not multiple test runs in this result file.' . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
|
||||
$extract_selects = array();
|
||||
echo PHP_EOL . 'Automatically sorting the results...' . PHP_EOL;
|
||||
|
||||
sort($result_file_identifiers);
|
||||
$result_file->reorder_runs($result_file_identifiers);
|
||||
pts_client::save_test_result($result_file->get_file_location(), $result_file->get_xml());
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $args[0] . '/index.html');
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::recently_saved_results();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009, Phoronix Media
|
||||
Copyright (C) 2009, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,8 +33,9 @@ class batch_benchmark implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_installer::standard_install($r, pts_c::batch_mode);
|
||||
pts_test_run_manager::standard_run($r, pts_c::batch_mode);
|
||||
pts_test_installer::standard_install($r, false, true);
|
||||
$test_run_manager = new pts_test_run_manager(true);
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ class batch_install implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_installer::standard_install($r, pts_c::batch_mode);
|
||||
pts_test_installer::standard_install($r, false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2012, Phoronix Media
|
||||
Copyright (C) 2009 - 2012, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,7 +33,8 @@ class batch_run implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_run_manager::standard_run($r, pts_c::batch_mode);
|
||||
$test_run_manager = new pts_test_run_manager(true);
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2011, Phoronix Media
|
||||
Copyright (C) 2008 - 2011, Michael Larabel
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -42,7 +42,8 @@ class benchmark implements pts_option_interface
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_installer::standard_install($r);
|
||||
pts_test_run_manager::standard_run($r);
|
||||
$run_manager = new pts_test_run_manager();
|
||||
$run_manager->standard_run($r);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2013, Phoronix Media
|
||||
Copyright (C) 2008 - 2013, Michael Larabel
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -87,7 +87,7 @@ class build_suite implements pts_option_interface
|
||||
}
|
||||
while($input_option != 'Save & Exit');
|
||||
|
||||
$suite_identifier = pts_test_run_manager::clean_save_name($suite_name);
|
||||
$suite_identifier = $suite_writer->clean_save_name_string($suite_name);
|
||||
$save_to = PTS_TEST_SUITE_PATH . 'local/' . $suite_identifier . '/suite-definition.xml';
|
||||
mkdir(dirname($save_to));
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2010, Phoronix Media
|
||||
Copyright (C) 2008 - 2010, Michael Larabel
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -24,7 +24,7 @@ class clone_openbenchmarking_result implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'OpenBenchmarking.org';
|
||||
const doc_use_alias = 'clone-result';
|
||||
const doc_description = 'This option will download a local copy of a file that was saved to OpenBenchmarking.org, as long as a valid public ID is supplied. More than one ID can be specified and the results will then be merged.';
|
||||
const doc_description = 'This option will download a local copy of a file that was saved to OpenBenchmarking.org, as long as a valid public ID is supplied.';
|
||||
|
||||
public static function command_aliases()
|
||||
{
|
||||
@@ -42,14 +42,13 @@ class clone_openbenchmarking_result implements pts_option_interface
|
||||
foreach($args as $id)
|
||||
{
|
||||
$xml = pts_openbenchmarking::clone_openbenchmarking_result($id, true);
|
||||
array_push($result_files, new pts_result_file($xml));
|
||||
if($xml)
|
||||
{
|
||||
$result_file = new pts_result_file($xml);
|
||||
pts_client::save_test_result($id . '/composite.xml', $result_file->get_xml(), true);
|
||||
echo PHP_EOL . 'Result Saved To: ' . PTS_SAVE_RESULTS_PATH . $id . '/composite.xml' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
$writer = new pts_result_file_writer(null);
|
||||
pts_merge::merge_test_results_process($writer, $result_files);
|
||||
pts_client::save_test_result($args[0] . '/composite.xml', $writer->get_xml(), true);
|
||||
|
||||
echo PHP_EOL . 'Result Saved To: ' . PTS_SAVE_RESULTS_PATH . $args[0] . '/composite.xml' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2010 - 2013, Phoronix Media
|
||||
Copyright (C) 2010 - 2013, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class copy_run_in_result_file implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Result Management';
|
||||
const doc_description = 'This option is used if you wish to change an existing test run within a saved results file.';
|
||||
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_types', 'is_result_file'), null)
|
||||
);
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
$result = $r[0];
|
||||
|
||||
$result_file = new pts_result_file($result);
|
||||
$result_file_identifiers = $result_file->get_system_identifiers();
|
||||
|
||||
$copy_identifier = pts_user_io::prompt_text_menu('Select the test run to copy', $result_file_identifiers);
|
||||
$copy_identifier_new = pts_user_io::prompt_user_input('Enter the new identifier of the copied run');
|
||||
$merge_selects = array();
|
||||
|
||||
foreach($result_file_identifiers as $identifier)
|
||||
{
|
||||
$this_merge_select = new pts_result_merge_select($result, $identifier);
|
||||
array_push($merge_selects, $this_merge_select);
|
||||
|
||||
if($identifier == $copy_identifier)
|
||||
{
|
||||
$this_merge_select = new pts_result_merge_select($result, $identifier);
|
||||
$this_merge_select->rename_identifier($copy_identifier_new);
|
||||
array_push($merge_selects, $this_merge_select);
|
||||
}
|
||||
}
|
||||
|
||||
$extract_result = pts_merge::merge_test_results_array($merge_selects);
|
||||
pts_client::save_test_result($r[0] . '/composite.xml', $extract_result);
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $r[0] . '/index.html');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2010, Phoronix Media
|
||||
Copyright (C) 2009 - 2010, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -20,7 +20,7 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class debug_run implements pts_option_interface
|
||||
class debug_benchmark implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Asset Creation';
|
||||
const doc_description = 'This option is intended for use by test profile writers and is identical to the <em>run</em> option but will yield more information during the run process that can be used to debug issues with a test profile or to verify the test profile is functioning correctly.';
|
||||
@@ -31,9 +31,20 @@ class debug_run implements pts_option_interface
|
||||
new pts_argument_check('VARIABLE_LENGTH', array('pts_types', 'identifier_to_object'), null)
|
||||
);
|
||||
}
|
||||
public static function command_aliases()
|
||||
{
|
||||
return array('debug_run');
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_run_manager::standard_run($r, pts_c::debug_mode);
|
||||
// Make sure you're debugging the latest test script...
|
||||
pts_test_installer::standard_install($r);
|
||||
// For debugging, usually running just once is sufficient, unless FORCE_TIMES_TO_RUN is preset
|
||||
pts_client::pts_set_environment_variable('FORCE_TIMES_TO_RUN', 1);
|
||||
// Run the test(s) in debug mode
|
||||
pts_client::set_debug_mode(true);
|
||||
$test_run_manager = new pts_test_run_manager();
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
}
|
||||
|
||||
45
pts-core/commands/debug_dependency_handler.php
Normal file
45
pts-core/commands/debug_dependency_handler.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2015, Phoronix Media
|
||||
Copyright (C) 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class debug_dependency_handler implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Other';
|
||||
const doc_description = 'This option is used for testing the distribution-specific dependency handler for external dependencies.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
$exdep_parser = new pts_exdep_generic_parser();
|
||||
foreach($exdep_parser->get_available_packages() as $pkg)
|
||||
{
|
||||
$pkg_data = $exdep_parser->get_package_data($pkg);
|
||||
$files = explode(' ', str_replace(array(' OR ', ', '), ' ', $pkg_data['file_check']));
|
||||
foreach($files as $file)
|
||||
{
|
||||
echo (is_array($file) ? implode(' ', $file) : $file) . ': ';
|
||||
$deps = pts_external_dependencies::packages_that_provide($file);
|
||||
echo (is_array($deps) ? implode(' ', $deps) : null) . PHP_EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2010, Phoronix Media
|
||||
Copyright (C) 2009 - 2010, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,7 +33,8 @@ class debug_install implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_installer::standard_install($r, pts_c::debug_mode | pts_c::force_install);
|
||||
pts_client::set_debug_mode(true);
|
||||
pts_test_installer::standard_install($r, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
108
pts-core/commands/debug_render_test.php
Normal file
108
pts-core/commands/debug_render_test.php
Normal file
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2015 - 2016, Phoronix Media
|
||||
Copyright (C) 2015 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class debug_render_test implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Other';
|
||||
const doc_description = 'This option is used during the development of the Phoronix Test Suite software for testing of the result and graph rendering code-paths This option will download a large number of reference test results from LinuxBenchmarking.com.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
$render_dir = pts_client::temporary_directory() . '/pts-render-test-310815/';
|
||||
if(!is_file($render_dir . 'mega-render-test.tar.bz2'))
|
||||
{
|
||||
pts_file_io::mkdir($render_dir);
|
||||
pts_network::download_file('http://linuxbenchmarking.com/misc/mega-render-test-310815.tar.bz2', $render_dir . 'mega-render-test.tar.bz2');
|
||||
pts_compression::archive_extract($render_dir . 'mega-render-test.tar.bz2');
|
||||
}
|
||||
define('PATH_TO_EXPORTED_PHOROMATIC_DATA', $render_dir . 'mega-render-test-310815/');
|
||||
|
||||
error_reporting(E_ALL);
|
||||
ini_set('memory_limit','2048M');
|
||||
|
||||
$export_index_json = file_get_contents(PATH_TO_EXPORTED_PHOROMATIC_DATA . 'export-index.json');
|
||||
$export_index_json = json_decode($export_index_json, true);
|
||||
$dump_size = 0;
|
||||
$start = microtime(true);
|
||||
foreach(array_keys($export_index_json['phoromatic']) as $REQUESTED)
|
||||
{
|
||||
$this_render_test = time();
|
||||
$tracker = &$export_index_json['phoromatic'][$REQUESTED];
|
||||
$triggers = $tracker['triggers'];
|
||||
echo PHP_EOL . 'STARTING RENDER TEST ON: ' . $REQUESTED . ' (' . count($triggers) . ' Triggers)' . PHP_EOL;
|
||||
$length = count($tracker['triggers']);
|
||||
$result_files = array();
|
||||
|
||||
foreach($triggers as $trigger)
|
||||
{
|
||||
$results_for_trigger = glob(PATH_TO_EXPORTED_PHOROMATIC_DATA . '/' . $REQUESTED . '/' . $trigger . '/*/composite.xml');
|
||||
echo '.';
|
||||
if($results_for_trigger == false)
|
||||
continue;
|
||||
|
||||
foreach($results_for_trigger as $composite_xml)
|
||||
{
|
||||
// Add to result file
|
||||
$system_name = basename(dirname($composite_xml)) . ': ' . $trigger;
|
||||
$result_files[] = new pts_result_merge_select($composite_xml, null, $system_name);
|
||||
}
|
||||
}
|
||||
echo 'STARTING MERGE; ';
|
||||
$result_file = new pts_result_file(null, true);
|
||||
$result_file->merge($result_files);
|
||||
echo 'MAKING NEW RESULT FILE; ';
|
||||
$extra_attributes = array('reverse_result_buffer' => true, 'force_simple_keys' => true, 'force_line_graph_compact' => true, 'force_tracking_line_graph' => true);
|
||||
//$extra_attributes['normalize_result_buffer'] = true;
|
||||
|
||||
$intent = null;
|
||||
//$table = new pts_ResultFileTable($result_file, $intent);
|
||||
//echo '<p style="text-align: center; overflow: auto;" class="result_object">' . pts_render::render_graph_inline_embed($table, $result_file, $extra_attributes) . '</p>';
|
||||
echo 'STARTING RESULT LOOP; ';
|
||||
$html_dump = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
</head>
|
||||
<body>';
|
||||
foreach($result_file->get_result_objects((isset($_POST['show_only_changed_results']) ? 'ONLY_CHANGED_RESULTS' : -1)) as $i => $result_object)
|
||||
{
|
||||
echo $result_object->test_profile->get_title() . ' ';
|
||||
$html_dump .= '<h3>' . $result_object->get_arguments_description() . '</h3>';
|
||||
$html_dump .= pts_render::render_graph_inline_embed($result_object, $result_file, $extra_attributes);
|
||||
unset($result_object);
|
||||
}
|
||||
|
||||
$table = new pts_ResultFileSystemsTable($result_file);
|
||||
$html_dump .= pts_render::render_graph_inline_embed($table, $result_file, $extra_attributes);
|
||||
echo PHP_EOL . PHP_EOL . 'RENDER TEST ON: ' . $REQUESTED . ' TOOK ' . (time() - $this_render_test) . PHP_EOL;
|
||||
$dump_size += strlen($html_dump);
|
||||
file_put_contents(PATH_TO_EXPORTED_PHOROMATIC_DATA . $REQUESTED . '.html', $html_dump . '</body></html>');
|
||||
}
|
||||
echo PHP_EOL . 'RENDER TEST TOOK: ' . (time() - $start) . PHP_EOL . PHP_EOL;
|
||||
echo PHP_EOL . 'PEAK MEMORY USAGE: ' . round(memory_get_peak_usage(true) / 1048576, 3) . ' MB';
|
||||
echo PHP_EOL . 'PEAK MEMORY USAGE (emalloc): ' . round(memory_get_peak_usage() / 1048576, 3) . ' MB';
|
||||
echo PHP_EOL . 'TOTAL FILE SIZE: ' . ceil($dump_size / 1000) . ' KB';
|
||||
echo PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2013, Phoronix Media
|
||||
Copyright (C) 2013, Michael Larabel
|
||||
Copyright (C) 2013 - 2016, Phoronix Media
|
||||
Copyright (C) 2013 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -27,16 +27,19 @@ class debug_self_test implements pts_option_interface
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
define('PHOROMATIC_PROCESS', true);
|
||||
$commands = array(
|
||||
'detailed_system_info' => null,
|
||||
'list_available_tests' => null,
|
||||
'list_available_suites' => null,
|
||||
'info' => array('xonotic'),
|
||||
'clone_openbenchmarking_result' => array('1107247-LI-MESACOMMI48'),
|
||||
// 'refresh_graphs' => array('1107247-LI-MESACOMMI48'),
|
||||
'info' => array('pts/all'),
|
||||
'clone_openbenchmarking_result' => array('1107247-LI-MESACOMMI48', '1509040-HA-GCCINTELS17', '1508201-HA-GTX95073337', '1508233-HA-INTELSKYL16'),
|
||||
'refresh_graphs' => array('1107247-LI-MESACOMMI48'),
|
||||
'result_file_to_text' => array('1107247-LI-MESACOMMI48'),
|
||||
'merge_results' => array('1107247-LI-MESACOMMI48', '1509040-HA-GCCINTELS17', '1508201-HA-GTX95073337', '1508233-HA-INTELSKYL16'),
|
||||
'diagnostics' => null,
|
||||
'dump_possible_options' => null,
|
||||
'debug_render_test' => null,
|
||||
);
|
||||
|
||||
$individual_times = array();
|
||||
@@ -54,7 +57,7 @@ class debug_self_test implements pts_option_interface
|
||||
$c_start = microtime(true);
|
||||
pts_client::execute_command($command, $args);
|
||||
$c_finish = microtime(true);
|
||||
array_push($individual_times[$command], ($c_finish - $c_start));
|
||||
$individual_times[$command][] = ($c_finish - $c_start);
|
||||
}
|
||||
}
|
||||
$finish = microtime(true);
|
||||
@@ -68,9 +71,9 @@ class debug_self_test implements pts_option_interface
|
||||
echo strtoupper($component) . ': ' . (str_repeat(' ', $longest_c - strlen($component))) . pts_math::set_precision(round(array_sum($times) / count($times), 3), 3) . ' seconds' . PHP_EOL;
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'ELAPSED TIME: ' . (str_repeat(' ', $longest_c - strlen('ELAPSED TIME'))) . round($finish - $start, 3) . ' seconds';
|
||||
echo PHP_EOL . 'TOTAL ELAPSED TIME: ' . (str_repeat(' ', $longest_c - strlen('ELAPSED TIME'))) . round($finish - $start, 3) . ' seconds';
|
||||
echo PHP_EOL . 'PEAK MEMORY USAGE: ' . (str_repeat(' ', $longest_c - strlen('PEAK MEMORY USAGE'))) . round(memory_get_peak_usage(true) / 1048576, 3) . ' MB';
|
||||
echo PHP_EOL . 'PEAK MEMORY USAGE (emalloc): ' . (str_repeat(' ', $longest_c - strlen('PEAK MEMORY USAGE (emalloc)'))) . round(memory_get_peak_usage() / 1048576, 3) . ' MB';
|
||||
echo PHP_EOL . 'PEAK MEMORY USAGE EMALLOC: ' . (str_repeat(' ', $longest_c - strlen('PEAK MEMORY USAGE (emalloc)'))) . round(memory_get_peak_usage() / 1048576, 3) . ' MB';
|
||||
echo PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2010, Phoronix Media
|
||||
Copyright (C) 2010, Michael Larabel
|
||||
Copyright (C) 2010 - 2015, Phoronix Media
|
||||
Copyright (C) 2010 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -28,7 +28,7 @@ class debug_test_download_links implements pts_option_interface
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_types', 'is_test_or_suite'), null)
|
||||
new pts_argument_check(0, array('pts_types', 'identifier_to_object'), null)
|
||||
);
|
||||
}
|
||||
public static function run($r)
|
||||
@@ -48,7 +48,7 @@ class debug_test_download_links implements pts_option_interface
|
||||
|
||||
if($file_pointer == false)
|
||||
{
|
||||
echo PHP_EOL . 'DOWNLOAD: ' . $test_file_download->get_filename() . ' / ' . $url . PHP_EOL;
|
||||
echo PHP_EOL . 'BAD URL: ' . $test_file_download->get_filename() . ' / ' . $url . PHP_EOL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -42,22 +42,22 @@ class debug_websocket_client implements pts_option_interface
|
||||
pts_web_socket_client::$debug_mode = true;
|
||||
$ws_client = new pts_web_socket_client($web_socket_address, $web_socket_port);
|
||||
|
||||
$ws_client->send_message('TEST 123');
|
||||
$ws_client->send_message('BIG TEST SENDDDDDDDDDDDDDDDDDDDDDDDDDDDDD MESSSSSSSSSSSSSSSSSSSSSSSSSAGE');
|
||||
$ws_client->send_message('1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE END END END 321');
|
||||
$ws_client->send_message('TEST MESSAGE');
|
||||
$ws_client->send('TEST 123');
|
||||
$ws_client->send('BIG TEST SENDDDDDDDDDDDDDDDDDDDDDDDDDDDDD MESSSSSSSSSSSSSSSSSSSSSSSSSAGE');
|
||||
$ws_client->send('1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE 1234678910 VERY LONG MESSAGE END END END 321');
|
||||
$ws_client->send('TEST MESSAGE');
|
||||
|
||||
while(1)
|
||||
{
|
||||
$msg = $ws_client->receive_message();
|
||||
$msg = $ws_client->receive();
|
||||
if($msg != null)
|
||||
{
|
||||
echo PHP_EOL . 'RECEIVED: ' . $ws_client->receive_message() . PHP_EOL;
|
||||
echo PHP_EOL . 'RECEIVED: ' . $ws_client->receive() . PHP_EOL;
|
||||
}
|
||||
|
||||
//if(date('s') % 5 == 0)
|
||||
//{
|
||||
// $ws_client->send_message(rand(1, getrandmax()));
|
||||
// $ws_client->send(rand(1, getrandmax()));
|
||||
//}
|
||||
}
|
||||
$ws_client->disconnect();
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2010, Phoronix Media
|
||||
Copyright (C) 2009 - 2010, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -34,7 +34,8 @@ class default_benchmark implements pts_option_interface
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_installer::standard_install($r);
|
||||
pts_test_run_manager::standard_run($r, pts_c::defaults_mode);
|
||||
$test_run_manager = new pts_test_run_manager(false, 2);
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2010, Phoronix Media
|
||||
Copyright (C) 2009 - 2010, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,7 +33,8 @@ class default_run implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_run_manager::standard_run($r, pts_c::defaults_mode);
|
||||
$test_run_manager = new pts_test_run_manager(false, 2);
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2011 - 2012, Phoronix Media
|
||||
Copyright (C) 2011 - 2012, Michael Larabel
|
||||
Copyright (C) 2011 - 2015, Phoronix Media
|
||||
Copyright (C) 2011 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -47,7 +47,7 @@ class detailed_system_info implements pts_option_interface
|
||||
echo 'Virtualization: ' . (phodevi_cpu::virtualization_technology() ? phodevi_cpu::virtualization_technology() : 'NO') . PHP_EOL;
|
||||
|
||||
// Other info
|
||||
foreach(pts_test_run_manager::pull_test_notes(true) as $test_note_head => $test_note)
|
||||
foreach(pts_arrays::to_array(pts_test_run_manager::pull_test_notes(true)) as $test_note_head => $test_note)
|
||||
{
|
||||
echo ucwords(str_replace('-', ' ', $test_note_head)) . ': ' . $test_note . PHP_EOL;
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2013, Phoronix Media
|
||||
Copyright (C) 2008 - 2013, Michael Larabel
|
||||
Copyright (C) 2008 - 2014, Phoronix Media
|
||||
Copyright (C) 2008 - 2014, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -29,6 +29,11 @@ class diagnostics implements pts_option_interface
|
||||
{
|
||||
foreach(pts_define(-1) as $constant => $constant_value)
|
||||
{
|
||||
if(strpos($constant, 'GSID') !== false || strpos($constant, '_ID') !== false)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
echo $constant . ' = ' . $constant_value . PHP_EOL;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2011 - 2013, Phoronix Media
|
||||
Copyright (C) 2011 - 2013, Michael Larabel
|
||||
Copyright (C) 2011 - 2014, Phoronix Media
|
||||
Copyright (C) 2011 - 2014, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009, Phoronix Media
|
||||
Copyright (C) 2009, Michael Larabel
|
||||
Copyright (C) 2009 - 2014, Phoronix Media
|
||||
Copyright (C) 2009 - 2014, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -29,28 +29,31 @@ class dump_core_storage implements pts_option_interface
|
||||
|
||||
foreach($pso->get_objects() as $pso_index => $pso_object)
|
||||
{
|
||||
if($pso_index != 'phodevi_smart_cache')
|
||||
if(!in_array($pso_index, array('global_reported_hw', 'global_reported_sw', 'global_reported_usb', 'global_reported_pci', 'phodevi_smart_cache')))
|
||||
{
|
||||
echo $pso_index . ': ';
|
||||
|
||||
if(is_array($pso_object))
|
||||
{
|
||||
foreach($pso_object as $key => $element)
|
||||
{
|
||||
echo PHP_EOL . "\t" . $key . ': ' . $element;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $pso_object;
|
||||
}
|
||||
|
||||
echo PHP_EOL;
|
||||
self::print_element($pso_index, $pso_object, 0);
|
||||
}
|
||||
}
|
||||
|
||||
echo PHP_EOL;
|
||||
}
|
||||
private static function print_element($in, $el, $depth)
|
||||
{
|
||||
//echo $in . ': ';
|
||||
|
||||
if(is_array($el))
|
||||
{
|
||||
foreach($el as $key => $element)
|
||||
{
|
||||
echo PHP_EOL . str_repeat("\t", $depth) . $in . ': ';
|
||||
self::print_element($key, $element, ($depth + 1));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo PHP_EOL . str_repeat("\t", $depth) . $in . ': ' . $el;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2010 - 2014, Phoronix Media
|
||||
Copyright (C) 2010 - 2014, Michael Larabel
|
||||
Copyright (C) 2010 - 2015, Phoronix Media
|
||||
Copyright (C) 2010 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -24,25 +24,15 @@ class dump_documentation implements pts_option_interface
|
||||
{
|
||||
public static function run($r)
|
||||
{
|
||||
if(is_file('/usr/share/php/fpdf/fpdf.php'))
|
||||
{
|
||||
include_once('/usr/share/php/fpdf/fpdf.php');
|
||||
}
|
||||
else
|
||||
{
|
||||
echo PHP_EOL . 'The FPDF library must be installed.' . PHP_EOL . PHP_EOL;
|
||||
return;
|
||||
}
|
||||
|
||||
$pdf = new pts_pdf_template(pts_title(false), 'Test Client Documentation');
|
||||
$html_doc = new pts_html_template(pts_title(false), 'Test Client Documentation');
|
||||
$pdf = new pts_pdf_template(pts_core::program_title(false), 'Test Client Documentation');
|
||||
$html_doc = new pts_html_template(pts_core::program_title(false), 'Test Client Documentation');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->Image(PTS_CORE_STATIC_PATH . 'images/pts-308x160.png', 69, 85, 73, 38, 'PNG', 'http://www.phoronix-test-suite.com/');
|
||||
$pdf->Ln(120);
|
||||
$pdf->WriteStatement('www.phoronix-test-suite.com', 'C', 'http://www.phoronix-test-suite.com/');
|
||||
$pdf->Ln(15);
|
||||
$pdf->WriteBigHeaderCenter(pts_title(true));
|
||||
$pdf->WriteBigHeaderCenter(pts_core::program_title(true));
|
||||
$pdf->WriteHeaderCenter('User Manual');
|
||||
//$pdf->WriteText($result_file->get_description());
|
||||
|
||||
@@ -263,11 +253,30 @@ class dump_documentation implements pts_option_interface
|
||||
|
||||
|
||||
// simple README
|
||||
$readme = 'Phoronix Test Suite ' . PTS_VERSION . PHP_EOL . 'http://www.phoronix-test-suite.com/' . PHP_EOL . '#####################################' . PHP_EOL . PHP_EOL;
|
||||
$readme = '# Phoronix Test Suite ' . PTS_VERSION . PHP_EOL . 'http://www.phoronix-test-suite.com/' . PHP_EOL . PHP_EOL;
|
||||
$readme .= pts_documentation::basic_description() . PHP_EOL . PHP_EOL;
|
||||
$readme .= pts_file_io::file_get_contents(PTS_PATH . 'documentation/stubs/readme-basics.txt') . PHP_EOL . PHP_EOL;
|
||||
$readme = wordwrap($readme, 80, PHP_EOL);
|
||||
file_put_contents(PTS_PATH . 'README', $readme);
|
||||
file_put_contents(PTS_PATH . 'README.md', $readme);
|
||||
|
||||
// Phoromatic Documentation
|
||||
$pdf = new pts_pdf_template(pts_core::program_title(false), 'Phoromatic Documentation');
|
||||
$html_doc = new pts_html_template(pts_core::program_title(false), 'Phoromatic Documentation');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->Image(PTS_CORE_STATIC_PATH . 'images/pts-308x160.png', 69, 85, 73, 38, 'PNG', 'http://www.phoronix-test-suite.com/');
|
||||
$pdf->Ln(120);
|
||||
$pdf->WriteStatement('www.phoronix-test-suite.com', 'C', 'http://www.phoronix-test-suite.com/');
|
||||
$pdf->Ln(15);
|
||||
$pdf->Image(PTS_CORE_STATIC_PATH . 'images/phoromatic-390x56.png', 55, 250, 0, 0, 'PNG', 'http://www.phoronix-test-suite.com/');
|
||||
//$pdf->Image(PTS_CORE_STATIC_PATH . 'images/phoromatic-390x56.png', 69, 85, 73, 38, 'PNG', 'http://www.phoromatic.com/');
|
||||
$pdf->WriteBigHeaderCenter(pts_core::program_title(true));
|
||||
$pdf->WriteHeaderCenter('Phoromatic User Manual');
|
||||
$pdf->html_to_pdf(PTS_PATH . 'documentation/phoromatic.html');
|
||||
$pdf_file = PTS_PATH . 'documentation/phoromatic.pdf';
|
||||
$pdf->Output($pdf_file);
|
||||
echo PHP_EOL . 'Saved To: ' . $pdf_file . PHP_EOL . PHP_EOL;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2010, Phoronix Media
|
||||
Copyright (C) 2009 - 2010, Michael Larabel
|
||||
Copyright (C) 2009 - 2016, Phoronix Media
|
||||
Copyright (C) 2009 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -32,7 +32,7 @@ class dump_possible_options implements pts_option_interface
|
||||
|
||||
if(!in_array(pts_strings::first_in_string($name, '-'), array('dump', 'debug', 'task')))
|
||||
{
|
||||
array_push($options, $name);
|
||||
$options[] = $name;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2014, Phoronix Media
|
||||
Copyright (C) 2014, Michael Larabel
|
||||
Copyright (C) 2014 - 2015, Phoronix Media
|
||||
Copyright (C) 2014 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -38,30 +38,21 @@ class edit_result_file implements pts_option_interface
|
||||
public static function run($r)
|
||||
{
|
||||
$result_file = new pts_result_file($r[0]);
|
||||
|
||||
$result_title = $result_file->get_title();
|
||||
echo PHP_EOL . 'Current Result Title: ' . $result_title . PHP_EOL;
|
||||
$new_title = pts_user_io::prompt_user_input('Enter New Title');
|
||||
|
||||
if(!empty($new_title))
|
||||
{
|
||||
$result_title = $new_title;
|
||||
$result_file->set_title($new_title);
|
||||
}
|
||||
|
||||
$result_description = $result_file->get_description();
|
||||
echo PHP_EOL . 'Current Result Description: ' . $result_description . PHP_EOL;
|
||||
$new_description = pts_user_io::prompt_user_input('Enter New Description');
|
||||
|
||||
if(!empty($new_description))
|
||||
{
|
||||
$result_description = $new_description;
|
||||
$result_file->set_description($new_description);
|
||||
}
|
||||
|
||||
$result_file_writer = new pts_result_file_writer();
|
||||
$result_file_writer->add_result_file_meta_data($result_file, null, $new_title, $new_description);
|
||||
$result_file_writer->add_system_information_from_result_file($result_file);
|
||||
$result_file_writer->add_results_from_result_file($result_file);
|
||||
pts_client::save_test_result($r[0] . '/composite.xml', $result_file_writer->get_xml());
|
||||
pts_client::save_test_result($result_file->get_file_location(), $result_file->get_xml());
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $r[0] . '/index.html');
|
||||
}
|
||||
}
|
||||
|
||||
49
pts-core/commands/enterprise_setup.php
Normal file
49
pts-core/commands/enterprise_setup.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2014 - 2015, Phoronix Media
|
||||
Copyright (C) 2014 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class enterprise_setup implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Other';
|
||||
const doc_description = 'This option can be run by enterprise users immediately after package installation or as part of an in-house setup script. Running this command will ensure the phoronix-test-suite program is never interrupted on new runs to accept user agreement changes and defaults the anonymous usage reporting to being disabled and other conservative defaults.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
$force_options = array(
|
||||
'PhoronixTestSuite/Options/OpenBenchmarking/AnonymousUsageReporting' => 'FALSE'
|
||||
);
|
||||
|
||||
if(pts_network::internet_support_available() == false)
|
||||
{
|
||||
$force_options['PhoronixTestSuite/Options/Networking/NoInternetCommunication'] = 'TRUE';
|
||||
}
|
||||
|
||||
pts_config::user_config_generate($force_options);
|
||||
|
||||
$pso = pts_storage_object::recover_from_file(PTS_CORE_STORAGE);
|
||||
$pso->add_object('user_agreement_cs', 'enterprise-agree');
|
||||
$pso->save_to_file(PTS_CORE_STORAGE);
|
||||
|
||||
echo PHP_EOL . 'Enterprise setup tasks executed.' . PHP_EOL . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2013, Phoronix Media
|
||||
Copyright (C) 2009 - 2013, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,9 +33,7 @@ class extract_from_result_file implements pts_option_interface
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
$result = $args[0];
|
||||
|
||||
$result_file = new pts_result_file($result);
|
||||
$result_file = new pts_result_file($args[0]);
|
||||
$result_file_identifiers = $result_file->get_system_identifiers();
|
||||
|
||||
if(count($result_file_identifiers) < 2)
|
||||
@@ -45,12 +43,8 @@ class extract_from_result_file implements pts_option_interface
|
||||
}
|
||||
|
||||
$extract_identifiers = pts_strings::comma_explode(pts_user_io::prompt_text_menu('Select the test run(s) to extract', $result_file_identifiers, true));
|
||||
$extract_selects = array();
|
||||
|
||||
foreach($extract_identifiers as $extract_identifier)
|
||||
{
|
||||
array_push($extract_selects, new pts_result_merge_select($result, $extract_identifier));
|
||||
}
|
||||
$remove_identifiers = array_diff($result_file_identifiers, $extract_identifiers);
|
||||
$result_file->remove_run($remove_identifiers);
|
||||
|
||||
do
|
||||
{
|
||||
@@ -58,10 +52,9 @@ class extract_from_result_file implements pts_option_interface
|
||||
$extract_to = pts_user_io::read_user_input();
|
||||
$extract_to = pts_test_run_manager::clean_save_name($extract_to);
|
||||
}
|
||||
while(empty($extract_to) || pts_result_file::is_test_result_file($extract_to));
|
||||
while(empty($extract_to));
|
||||
|
||||
$extract_result = call_user_func_array(array('pts_merge', 'merge_test_results'), $extract_selects);
|
||||
pts_client::save_test_result($extract_to . '/composite.xml', $extract_result);
|
||||
pts_client::save_test_result($extract_to . '/composite.xml', $result_file->get_xml());
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $extract_to . '/index.html');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2011, Phoronix Media
|
||||
Copyright (C) 2009 - 2011, Michael Larabel
|
||||
Copyright (C) 2009 - 2016, Phoronix Media
|
||||
Copyright (C) 2009 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -31,6 +31,10 @@ class finish_run implements pts_option_interface
|
||||
new pts_argument_check(0, array('pts_result_file', 'is_test_result_file'), null)
|
||||
);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::invalid_command_helper($passed_args);
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
$save_name = $args[0];
|
||||
@@ -39,8 +43,7 @@ class finish_run implements pts_option_interface
|
||||
$system_identifiers = $result_file->get_system_identifiers();
|
||||
$test_positions = array();
|
||||
|
||||
$pos = 0;
|
||||
foreach($result_file->get_result_objects() as $result_object)
|
||||
foreach($result_file->get_result_objects() as $pos => $result_object)
|
||||
{
|
||||
$this_result_object_identifiers = $result_object->test_result_buffer->get_identifiers();
|
||||
|
||||
@@ -53,13 +56,10 @@ class finish_run implements pts_option_interface
|
||||
$test_positions[$system_identifier] = array();
|
||||
}
|
||||
|
||||
array_push($test_positions[$system_identifier], $pos);
|
||||
$test_positions[$system_identifier][] = $pos;
|
||||
}
|
||||
}
|
||||
|
||||
$pos++;
|
||||
}
|
||||
|
||||
$incomplete_identifiers = array_keys($test_positions);
|
||||
|
||||
if(count($incomplete_identifiers) == 0)
|
||||
@@ -69,15 +69,14 @@ class finish_run implements pts_option_interface
|
||||
}
|
||||
|
||||
$selected = pts_user_io::prompt_text_menu('Select which incomplete test run you would like to finish', $incomplete_identifiers);
|
||||
$test_run_manager = new pts_test_run_manager();
|
||||
|
||||
// Now run it
|
||||
if(pts_test_run_manager::initial_checks($args[0]) == false)
|
||||
if($test_run_manager->initial_checks($args[0]) == false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$test_run_manager = new pts_test_run_manager(pts_c::is_recovering);
|
||||
|
||||
// Load the tests to run
|
||||
if($test_run_manager->load_result_file_to_run($save_name, $selected, $result_file, $test_positions[$selected]) == false)
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2014, Phoronix Media
|
||||
Copyright (C) 2009 - 2014, Michael Larabel
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,7 +33,7 @@ class force_install implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_installer::standard_install($r, pts_c::force_install);
|
||||
pts_test_installer::standard_install($r, true);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2012 - 2014, Phoronix Media
|
||||
Copyright (C) 2012 - 2014, Michael Larabel
|
||||
Copyright (C) 2012 - 2015, Phoronix Media
|
||||
Copyright (C) 2012 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -104,14 +104,15 @@ class gui implements pts_option_interface
|
||||
// Shutdown / Kill Servers (Might want to find a cleaner way)
|
||||
$server_launcher .= PHP_EOL . 'taskkill /f /im php.exe';
|
||||
// For now lets clean this up.
|
||||
$server_launcher .= PHP_EOL . 'del /f ' . PTS_USER_PATH . 'run*' . PHP_EOL;
|
||||
$server_launcher .= PHP_EOL . 'del /f ' . getenv('PTS_EXT_LAUNCH_SCRIPT_DIR') . 'run*' . PHP_EOL;
|
||||
$server_launcher .= 'exit /B' . PHP_EOL . PHP_EOL;
|
||||
|
||||
// HTTP Server Setup
|
||||
$server_launcher .= ':run_local_server' . PHP_EOL;
|
||||
if(strpos(getenv('PHP_BIN'), 'hhvm'))
|
||||
{
|
||||
$server_launcher .= 'cd ' . PTS_CORE_PATH . 'web-interface\\ && ' . getenv('PHP_BIN') . ' --config ' . PTS_CORE_PATH . 'static\\hhvm-server.hdf -m server -vServer.Port=' . $web_port . ' -vServer.IP=' . $server_ip . ' -vServer.SourceRoot=' . PTS_CORE_PATH . 'web-interface\\' . ' &' . PHP_EOL;
|
||||
echo PHP_EOL . 'Unfortunately, the HHVM built-in web server has abandoned upstream. Users will need to use the PHP binary or other alternatives.' . PHP_EOL . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -131,20 +132,22 @@ class gui implements pts_option_interface
|
||||
}
|
||||
else
|
||||
{
|
||||
$script_path = PTS_USER_PATH . 'web-server-launcher';
|
||||
$script_path = getenv('PTS_EXT_LAUNCH_SCRIPT_DIR') . '/web-server-launcher';
|
||||
pts_file_io::unlink($script_path);
|
||||
|
||||
$server_launcher = '#!/bin/sh' . PHP_EOL;
|
||||
|
||||
// WebSocket Server Setup
|
||||
$server_launcher .= 'export PTS_WEBSOCKET_PORT=' . $web_socket_port . PHP_EOL;
|
||||
$server_launcher .= 'export PTS_WEBSOCKET_SERVER=GUI' . PHP_EOL;
|
||||
$server_launcher .= 'cd ' . getenv('PTS_DIR') . ' && PTS_MODE="CLIENT" ' . getenv('PHP_BIN') . ' pts-core/phoronix-test-suite.php start-ws-server &' . PHP_EOL;
|
||||
$server_launcher .= 'websocket_server_pid=$!'. PHP_EOL;
|
||||
|
||||
// HTTP Server Setup
|
||||
if(strpos(getenv('PHP_BIN'), 'hhvm'))
|
||||
{
|
||||
$server_launcher .= 'cd ' . PTS_CORE_PATH . 'web-interface/ && ' . getenv('PHP_BIN') . ' --config ' . PTS_CORE_PATH . 'static/hhvm-server.hdf -m server -vServer.Port=' . $web_port . ' -vServer.IP=' . $server_ip . ' -vServer.SourceRoot=' . PTS_CORE_PATH . 'web-interface/' . ' &' . PHP_EOL;
|
||||
echo PHP_EOL . 'Unfortunately, the HHVM built-in web server has abandoned upstream. Users will need to use the PHP binary or other alternatives.' . PHP_EOL . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2010 - 2011, Phoronix Media
|
||||
Copyright (C) 2010 - 2011, Michael Larabel
|
||||
Copyright (C) 2010 - 2015, Phoronix Media
|
||||
Copyright (C) 2010 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -27,7 +27,7 @@ class help implements pts_option_interface
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
echo PHP_EOL . pts_title(true) . PHP_EOL . PHP_EOL;
|
||||
echo PHP_EOL . pts_core::program_title(true) . PHP_EOL . PHP_EOL;
|
||||
echo pts_documentation::basic_description() . PHP_EOL . PHP_EOL . 'View the included PDF / HTML documentation or visit http://www.phoronix-test-suite.com/ for full details.' . PHP_EOL;
|
||||
$options = pts_documentation::client_commands_array();
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2012, Phoronix Media
|
||||
Copyright (C) 2008 - 2012, Michael Larabel
|
||||
Copyright (C) 2008 - 2016, Phoronix Media
|
||||
Copyright (C) 2008 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -28,123 +28,142 @@ class info implements pts_option_interface
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_types', 'identifier_to_object'), 'object')
|
||||
new pts_argument_check(0, array('pts_types', 'identifier_to_object'))
|
||||
);
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
echo PHP_EOL;
|
||||
|
||||
if($args['object'] instanceof pts_test_suite)
|
||||
if($args[0] == 'pts/all')
|
||||
{
|
||||
pts_client::$display->generic_heading($args['object']->get_title());
|
||||
echo 'Run Identifier: ' . $args['object']->get_identifier() . PHP_EOL;
|
||||
echo 'Suite Version: ' . $args['object']->get_version() . PHP_EOL;
|
||||
echo 'Maintainer: ' . $args['object']->get_maintainer() . PHP_EOL;
|
||||
echo 'Suite Type: ' . $args['object']->get_suite_type() . PHP_EOL;
|
||||
echo 'Unique Tests: ' . $args['object']->get_unique_test_count() . PHP_EOL;
|
||||
echo 'Suite Description: ' . $args['object']->get_description() . PHP_EOL;
|
||||
echo PHP_EOL;
|
||||
echo $args['object']->pts_format_contained_tests_string();
|
||||
echo PHP_EOL;
|
||||
$args = pts_openbenchmarking::available_tests(false);
|
||||
}
|
||||
else if($args['object'] instanceof pts_test_profile)
|
||||
|
||||
foreach($args as $arg)
|
||||
{
|
||||
$test_title = $args['object']->get_title();
|
||||
$test_version = $args['object']->get_app_version();
|
||||
if(!empty($test_version))
|
||||
$o = pts_types::identifier_to_object($arg);
|
||||
|
||||
if($o instanceof pts_test_suite)
|
||||
{
|
||||
$test_title .= ' ' . $test_version;
|
||||
pts_client::$display->generic_heading($o->get_title());
|
||||
echo 'Run Identifier: ' . $o->get_identifier() . PHP_EOL;
|
||||
echo 'Suite Version: ' . $o->get_version() . PHP_EOL;
|
||||
echo 'Maintainer: ' . $o->get_maintainer() . PHP_EOL;
|
||||
echo 'Suite Type: ' . $o->get_suite_type() . PHP_EOL;
|
||||
echo 'Unique Tests: ' . $o->get_unique_test_count() . PHP_EOL;
|
||||
echo 'Suite Description: ' . $o->get_description() . PHP_EOL;
|
||||
echo PHP_EOL;
|
||||
echo $o->pts_format_contained_tests_string();
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
pts_client::$display->generic_heading($test_title);
|
||||
echo 'Run Identifier: ' . $args['object']->get_identifier() . PHP_EOL;
|
||||
echo 'Profile Version: ' . $args['object']->get_test_profile_version() . PHP_EOL;
|
||||
echo 'Maintainer: ' . $args['object']->get_maintainer() . PHP_EOL;
|
||||
echo 'Test Type: ' . $args['object']->get_test_hardware_type() . PHP_EOL;
|
||||
echo 'Software Type: ' . $args['object']->get_test_software_type() . PHP_EOL;
|
||||
echo 'License Type: ' . $args['object']->get_license() . PHP_EOL;
|
||||
echo 'Test Status: ' . $args['object']->get_status() . PHP_EOL;
|
||||
echo 'Project Web-Site: ' . $args['object']->get_project_url() . PHP_EOL;
|
||||
if($args['object']->get_estimated_run_time() > 1)
|
||||
else if($o instanceof pts_test_profile)
|
||||
{
|
||||
echo 'Estimated Run-Time: ' . $args['object']->get_estimated_run_time() . ' Seconds' . PHP_EOL;
|
||||
}
|
||||
|
||||
$download_size = $args['object']->get_download_size();
|
||||
if(!empty($download_size))
|
||||
{
|
||||
echo 'Download Size: ' . $download_size . ' MB' . PHP_EOL;
|
||||
}
|
||||
|
||||
$environment_size = $args['object']->get_environment_size();
|
||||
if(!empty($environment_size))
|
||||
{
|
||||
echo 'Environment Size: ' . $environment_size . ' MB' . PHP_EOL;
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'Description: ' . $args['object']->get_description() . PHP_EOL;
|
||||
|
||||
if($args['object']->test_installation != false)
|
||||
{
|
||||
$last_run = $args['object']->test_installation->get_last_run_date();
|
||||
$last_run = $last_run == '0000-00-00' ? 'Never' : $last_run;
|
||||
|
||||
$avg_time = $args['object']->test_installation->get_average_run_time();
|
||||
$avg_time = !empty($avg_time) ? pts_strings::format_time($avg_time, 'SECONDS') : 'N/A';
|
||||
$latest_time = $args['object']->test_installation->get_latest_run_time();
|
||||
$latest_time = !empty($latest_time) ? pts_strings::format_time($latest_time, 'SECONDS') : 'N/A';
|
||||
|
||||
echo PHP_EOL . 'Test Installed: Yes' . PHP_EOL;
|
||||
echo 'Last Run: ' . $last_run . PHP_EOL;
|
||||
|
||||
if($last_run != 'Never')
|
||||
$test_title = $o->get_title();
|
||||
$test_version = $o->get_app_version();
|
||||
if(!empty($test_version))
|
||||
{
|
||||
if($args['object']->test_installation->get_run_count() > 1)
|
||||
{
|
||||
echo 'Average Run-Time: ' . $avg_time . PHP_EOL;
|
||||
}
|
||||
|
||||
echo 'Latest Run-Time: ' . $latest_time . PHP_EOL;
|
||||
echo 'Times Run: ' . $args['object']->test_installation->get_run_count() . PHP_EOL;
|
||||
$test_title .= ' ' . $test_version;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo PHP_EOL . 'Test Installed: No' . PHP_EOL;
|
||||
}
|
||||
|
||||
$dependencies = $args['object']->get_dependencies();
|
||||
if(!empty($dependencies) && !empty($dependencies[0]))
|
||||
{
|
||||
echo PHP_EOL . 'Software Dependencies:' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($args['object']->get_dependency_names());
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
else if($args['object'] instanceof pts_result_file)
|
||||
{
|
||||
echo 'Title: ' . $args['object']->get_title() . PHP_EOL . 'Identifier: ' . $args['object']->get_identifier() . PHP_EOL;
|
||||
echo PHP_EOL . 'Test Result Identifiers:' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($args['object']->get_system_identifiers());
|
||||
pts_client::$display->generic_heading($test_title);
|
||||
echo 'Run Identifier: ' . $o->get_identifier() . PHP_EOL;
|
||||
echo 'Profile Version: ' . $o->get_test_profile_version() . PHP_EOL;
|
||||
echo 'Maintainer: ' . $o->get_maintainer() . PHP_EOL;
|
||||
echo 'Test Type: ' . $o->get_test_hardware_type() . PHP_EOL;
|
||||
echo 'Software Type: ' . $o->get_test_software_type() . PHP_EOL;
|
||||
echo 'License Type: ' . $o->get_license() . PHP_EOL;
|
||||
echo 'Test Status: ' . $o->get_status() . PHP_EOL;
|
||||
echo 'Project Web-Site: ' . $o->get_project_url() . PHP_EOL;
|
||||
if($o->get_estimated_run_time() > 1)
|
||||
{
|
||||
echo 'Estimated Run-Time: ' . $o->get_estimated_run_time() . ' Seconds' . PHP_EOL;
|
||||
}
|
||||
|
||||
if(count(($tests = $args['object']->get_unique_test_titles())) > 0)
|
||||
{
|
||||
echo PHP_EOL . 'Contained Tests:' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($tests);
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
else if($args['object'] instanceof pts_virtual_test_suite)
|
||||
{
|
||||
pts_client::$display->generic_heading($args['object']->get_title());
|
||||
echo 'Virtual Suite Description: ' . $args['object']->get_description() . PHP_EOL . PHP_EOL;
|
||||
$download_size = $o->get_download_size();
|
||||
if(!empty($download_size))
|
||||
{
|
||||
echo 'Download Size: ' . $download_size . ' MB' . PHP_EOL;
|
||||
}
|
||||
|
||||
foreach($args['object']->get_contained_test_profiles() as $test_profile)
|
||||
{
|
||||
echo '- ' . $test_profile . PHP_EOL;
|
||||
$environment_size = $o->get_environment_size();
|
||||
if(!empty($environment_size))
|
||||
{
|
||||
echo 'Environment Size: ' . $environment_size . ' MB' . PHP_EOL;
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'Description: ' . $o->get_description() . PHP_EOL;
|
||||
|
||||
if($o->test_installation != false)
|
||||
{
|
||||
$last_run = $o->test_installation->get_last_run_date();
|
||||
$last_run = $last_run == '0000-00-00' ? 'Never' : $last_run;
|
||||
|
||||
$avg_time = $o->test_installation->get_average_run_time();
|
||||
$avg_time = !empty($avg_time) ? pts_strings::format_time($avg_time, 'SECONDS') : 'N/A';
|
||||
$latest_time = $o->test_installation->get_latest_run_time();
|
||||
$latest_time = !empty($latest_time) ? pts_strings::format_time($latest_time, 'SECONDS') : 'N/A';
|
||||
|
||||
echo PHP_EOL . 'Test Installed: Yes' . PHP_EOL;
|
||||
echo 'Last Run: ' . $last_run . PHP_EOL;
|
||||
|
||||
if($last_run != 'Never')
|
||||
{
|
||||
if($o->test_installation->get_run_count() > 1)
|
||||
{
|
||||
echo 'Average Run-Time: ' . $avg_time . PHP_EOL;
|
||||
}
|
||||
|
||||
echo 'Latest Run-Time: ' . $latest_time . PHP_EOL;
|
||||
echo 'Times Run: ' . $o->test_installation->get_run_count() . PHP_EOL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo PHP_EOL . 'Test Installed: No' . PHP_EOL;
|
||||
}
|
||||
|
||||
$dependencies = $o->get_external_dependencies();
|
||||
if(!empty($dependencies) && !empty($dependencies[0]))
|
||||
{
|
||||
echo PHP_EOL . 'Software Dependencies:' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($o->get_dependency_names());
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
else if($o instanceof pts_result_file)
|
||||
{
|
||||
echo 'Title: ' . $o->get_title() . PHP_EOL . 'Identifier: ' . $o->get_identifier() . PHP_EOL;
|
||||
echo PHP_EOL . 'Test Result Identifiers:' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($o->get_system_identifiers());
|
||||
|
||||
$test_titles = array();
|
||||
foreach($o->get_result_objects() as $result_object)
|
||||
{
|
||||
if($result_object->test_profile->get_display_format() == 'BAR_GRAPH')
|
||||
{
|
||||
$test_titles[] = $result_object->test_profile->get_title();
|
||||
}
|
||||
}
|
||||
|
||||
if(count($test_titles) > 0)
|
||||
{
|
||||
echo PHP_EOL . 'Contained Tests:' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list(array_unique($test_titles));
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
else if($o instanceof pts_virtual_test_suite)
|
||||
{
|
||||
pts_client::$display->generic_heading($o->get_title());
|
||||
echo 'Virtual Suite Description: ' . $o->get_description() . PHP_EOL . PHP_EOL;
|
||||
|
||||
foreach($o->get_contained_test_profiles() as $test_profile)
|
||||
{
|
||||
echo '- ' . $test_profile . PHP_EOL;
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2010, Phoronix Media
|
||||
Copyright (C) 2008 - 2010, Michael Larabel
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -34,7 +34,6 @@ class install_dependencies implements pts_option_interface
|
||||
public static function run($r)
|
||||
{
|
||||
$test_profiles = pts_types::identifiers_to_test_profile_objects($r, true, true);
|
||||
//pts_client::set_test_flags(pts_c::auto_mode);
|
||||
pts_external_dependencies::install_dependencies($test_profiles);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ class install_test implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Test Installation';
|
||||
const doc_use_alias = 'install';
|
||||
const doc_description = 'This option will install the selected test(s) inside the testing environment directory). The install process from downloading of the test files to the installation is fully automated. The install option needs to be supplied with the test name or suite as an argument. Optionally, a OpenBenchmarking.org ID or the name of a saved results file can be supplied as well and the test(s) to install will automatically be extracted from that information. If the test is already installed and was run by the latest version of the installation process, no action will be taken. Multiple arguments can be supplied to install additional tests at the same time.';
|
||||
const doc_description = 'This option will install the selected test(s) inside the testing environment directory. The install process from downloading of the test files to the installation is fully automated. The install option needs to be supplied with the test name or suite as an argument. Optionally, a OpenBenchmarking.org ID or the name of a saved results file can be supplied as well and the test(s) to install will automatically be extracted from that information. If the test is already installed and was run by the latest version of the installation process, no action will be taken. Multiple arguments can be supplied to install additional tests at the same time.';
|
||||
|
||||
public static function command_aliases()
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2011 - 2013, Phoronix Media
|
||||
Copyright (C) 2011 - 2013, Michael Larabel
|
||||
Copyright (C) 2011 - 2016, Phoronix Media
|
||||
Copyright (C) 2011 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -27,45 +27,10 @@ class interactive implements pts_option_interface
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
$is_moscow = pts_flags::os_identifier_hash() == 'b28d6a7148b34595c5b397dfcf5b12ac7932b3dc';
|
||||
|
||||
if($is_moscow)
|
||||
{
|
||||
// Auto mount?
|
||||
$drives = pts_file_io::glob('/dev/sda*');
|
||||
sort($drives);
|
||||
|
||||
if(false && count($drives) > 0 && !is_dir('/media/pts-auto-mount') && is_writable('/media/'))
|
||||
{
|
||||
$last_drive = array_pop($drives);
|
||||
echo PHP_EOL . 'Attempting to auto-mount drive: ' . $last_drive . PHP_EOL;
|
||||
mkdir('/media/pts-auto-mount');
|
||||
exec('mount ' . $last_drive . ' /media/pts-auto-mount');
|
||||
putenv('PTS_TEST_INSTALL_ROOT_PATH=/media/pts-auto-mount/');
|
||||
}
|
||||
|
||||
// Auto save results
|
||||
$test_results_name = phodevi::read_property('motherboard', 'serial-number');
|
||||
|
||||
if($test_results_name == null)
|
||||
{
|
||||
$test_results_name = phodevi::read_name('motherboard');
|
||||
}
|
||||
if($test_results_name == null)
|
||||
{
|
||||
$test_results_name = phodevi::read_property('system', 'vendor-identifier');
|
||||
}
|
||||
|
||||
putenv('TEST_RESULTS_NAME=' . str_replace(' ', null, $test_results_name));
|
||||
putenv('TEST_RESULTS_IDENTIFIER=' . $test_results_name);
|
||||
putenv('TEST_RESULTS_DESCRIPTION=Tests using ' . phodevi::read_property('system', 'operating-system') . ' on ' . date('d F Y') . ' of ' . $test_results_name . '.');
|
||||
self::select_drive_mount();
|
||||
}
|
||||
|
||||
pts_openbenchmarking::refresh_repository_lists();
|
||||
pts_client::$display->generic_heading('Interactive Benchmarking');
|
||||
echo 'System Hardware:' . PHP_EOL . phodevi::system_hardware(true) . (phodevi::read_property('motherboard', 'serial-number') != null ? PHP_EOL . 'System Serial Number: ' . phodevi::read_property('motherboard', 'serial-number') : null) . PHP_EOL . PHP_EOL . PHP_EOL;
|
||||
$reboot_on_exit = pts_flags::is_live_cd() && pts_client::user_home_directory() == '/root/';
|
||||
$reboot_on_exit = false;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -78,12 +43,6 @@ class interactive implements pts_option_interface
|
||||
'SET_RUN_COUNT' => 'Set Test Run Repetition'
|
||||
);
|
||||
|
||||
if($is_moscow)
|
||||
{
|
||||
unset($options['RUN_SUITE']);
|
||||
// $options['SELECT_DRIVE_MOUNT'] = 'Select Disk Drive To Use For Testing';
|
||||
}
|
||||
|
||||
if(count(pts_client::saved_test_results()) > 0)
|
||||
{
|
||||
$options['BACKUP_RESULTS_TO_USB'] = 'Backup Results To Media Storage';
|
||||
@@ -101,17 +60,11 @@ class interactive implements pts_option_interface
|
||||
|
||||
foreach($supported_tests as $i => &$test_profile)
|
||||
{
|
||||
if($test_profile->get_title() == null || pts_test_run_manager::test_profile_system_compatibility_check($test_profile) == false)
|
||||
if($test_profile->get_title() == null)
|
||||
{
|
||||
unset($supported_tests[$i]);
|
||||
continue;
|
||||
}
|
||||
if($is_moscow && pts_test_install_request::test_files_available_locally($test_profile) == false)
|
||||
{
|
||||
// Don't show tests where files need to be downloaded
|
||||
unset($supported_tests[$i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
$longest_title_length = max($longest_title_length, strlen($test_profile->get_title()));
|
||||
}
|
||||
@@ -130,7 +83,8 @@ class interactive implements pts_option_interface
|
||||
$tests_to_run = pts_user_io::prompt_text_menu('Select Test', $supported_tests, true, true);
|
||||
$tests_to_run = explode(',', $tests_to_run);
|
||||
pts_test_installer::standard_install($tests_to_run);
|
||||
$run_manager = pts_test_run_manager::standard_run($tests_to_run, (pts_c::defaults_mode | pts_c::auto_mode));
|
||||
$run_manager = new pts_test_run_manager(false, 2);
|
||||
$run_manager->standard_run($tests_to_run);
|
||||
if($run_manager != false)
|
||||
{
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $run_manager->get_file_name() . '/index.html', null, true, true);
|
||||
@@ -141,14 +95,15 @@ class interactive implements pts_option_interface
|
||||
|
||||
foreach(array_map('strtolower', pts_types::subsystem_targets()) as $subsystem)
|
||||
{
|
||||
array_push($possible_suites, 'pts/' . $subsystem);
|
||||
$possible_suites[] = 'pts/' . $subsystem;
|
||||
}
|
||||
|
||||
$suites_to_run = pts_user_io::prompt_text_menu('Select Suite', $possible_suites, true);
|
||||
foreach(explode(',', $suites_to_run) as $suite_to_run)
|
||||
{
|
||||
pts_test_installer::standard_install($suite_to_run);
|
||||
pts_test_run_manager::standard_run($suite_to_run, (pts_c::defaults_mode | pts_c::auto_mode));
|
||||
$run_manager = new pts_test_run_manager(false, 2);
|
||||
$run_manager->standard_run($suite_to_run);
|
||||
}
|
||||
break;
|
||||
case 'SELECT_DRIVE_MOUNT':
|
||||
@@ -158,7 +113,8 @@ class interactive implements pts_option_interface
|
||||
pts_client::$display->generic_heading('System Test');
|
||||
$system_tests = array('apache', 'c-ray', 'ramspeed', 'postmark');
|
||||
pts_test_installer::standard_install($system_tests);
|
||||
$run_manager = pts_test_run_manager::standard_run($system_tests, (pts_c::defaults_mode | pts_c::auto_mode));
|
||||
$run_manager = new pts_test_run_manager(false, 2);
|
||||
$run_manager->standard_run($system_tests);
|
||||
if($run_manager != false)
|
||||
{
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $run_manager->get_file_name() . '/index.html', null, true, true);
|
||||
@@ -170,11 +126,7 @@ class interactive implements pts_option_interface
|
||||
echo 'Software:' . PHP_EOL . phodevi::system_software(true) . PHP_EOL . PHP_EOL;
|
||||
break;
|
||||
case 'SHOW_SENSORS':
|
||||
pts_client::$display->generic_heading('Detected System Sensors');
|
||||
foreach(phodevi::supported_sensors() as $sensor)
|
||||
{
|
||||
echo phodevi::sensor_name($sensor) . ': ' . phodevi::read_sensor($sensor) . ' ' . phodevi::read_sensor_unit($sensor) . PHP_EOL;
|
||||
}
|
||||
pts_client::execute_command('system_sensors');
|
||||
break;
|
||||
case 'SET_RUN_COUNT':
|
||||
$run_count = pts_user_io::prompt_user_input('Set the minimum number of times each test should repeat', false);
|
||||
@@ -183,20 +135,6 @@ class interactive implements pts_option_interface
|
||||
case 'BACKUP_RESULTS_TO_USB':
|
||||
pts_client::$display->generic_heading('Backing Up Test Results');
|
||||
|
||||
if($is_moscow)
|
||||
{
|
||||
$drives = pts_file_io::glob('/dev/sd*');
|
||||
sort($drives);
|
||||
|
||||
if(count($drives) > 0 && is_writable('/media/'))
|
||||
{
|
||||
$select_drive = pts_user_io::prompt_text_menu('Select Drive / Partition To Save Results', $drives);
|
||||
echo PHP_EOL . 'Attempting to mount: ' . $select_drive . PHP_EOL;
|
||||
mkdir('/media/00-results-backup');
|
||||
exec('mount ' . $select_drive . ' /media/00-results-backup');
|
||||
}
|
||||
}
|
||||
|
||||
foreach(pts_file_io::glob('/media/*') as $media_dir)
|
||||
{
|
||||
if(!is_writable($media_dir))
|
||||
@@ -209,12 +147,6 @@ class interactive implements pts_option_interface
|
||||
pts_file_io::copy(PTS_SAVE_RESULTS_PATH, $media_dir . '/');
|
||||
break;
|
||||
}
|
||||
|
||||
if($is_moscow && is_dir('/media/00-results-backup'))
|
||||
{
|
||||
exec('umount /media/00-results-backup');
|
||||
rmdir('/media/00-results-backup');
|
||||
}
|
||||
break;
|
||||
}
|
||||
echo PHP_EOL . PHP_EOL;
|
||||
@@ -242,7 +174,7 @@ class interactive implements pts_option_interface
|
||||
}
|
||||
else
|
||||
{
|
||||
array_push($drives, 'No HDD');
|
||||
$drives[] = 'No HDD';
|
||||
$to_mount = pts_user_io::prompt_text_menu('Select Drive / Partition To Mount', $drives);
|
||||
|
||||
if($to_mount != 'No HDD')
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2013, Phoronix Media
|
||||
Copyright (C) 2013, Michael Larabel
|
||||
Copyright (C) 2013 - 2015, Phoronix Media
|
||||
Copyright (C) 2013 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -33,7 +33,7 @@ class internal_run implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_test_run_manager::set_batch_mode(array(
|
||||
$test_run_manager = new pts_test_run_manager(array(
|
||||
'UploadResults' => false,
|
||||
'SaveResults' => true,
|
||||
'PromptForTestDescription' => true,
|
||||
@@ -43,7 +43,7 @@ class internal_run implements pts_option_interface
|
||||
'OpenBrowser' => true
|
||||
));
|
||||
|
||||
pts_test_run_manager::standard_run($r, pts_c::batch_mode);
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2013, Phoronix Media
|
||||
Copyright (C) 2008 - 2013, Michael Larabel
|
||||
Copyright (C) 2008 - 2016, Phoronix Media
|
||||
Copyright (C) 2008 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -39,7 +39,7 @@ class list_available_tests implements pts_option_interface
|
||||
$id = substr($identifier, strlen($repo) + 1);
|
||||
$repo_index = pts_openbenchmarking::read_repository_index($repo);
|
||||
|
||||
if(!in_array(phodevi::operating_system(), $repo_index['tests'][$id]['supported_platforms']) || empty($repo_index['tests'][$id]['title']))
|
||||
if((!empty($repo_index['tests'][$id]['supported_platforms']) && !in_array(phodevi::operating_system(), $repo_index['tests'][$id]['supported_platforms'])) || empty($repo_index['tests'][$id]['title']))
|
||||
{
|
||||
// Don't show unsupported tests
|
||||
continue;
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2013, Phoronix Media
|
||||
Copyright (C) 2009 - 2013, Michael Larabel
|
||||
Copyright (C) 2009 - 2016, Phoronix Media
|
||||
Copyright (C) 2009 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -34,7 +34,7 @@ class list_installed_suites implements pts_option_interface
|
||||
$suite = new pts_test_suite($suite);
|
||||
if($suite->needs_updated_install() == false)
|
||||
{
|
||||
array_push($installed_suites, $suite);
|
||||
$installed_suites[] = $suite;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2011, Phoronix Media
|
||||
Copyright (C) 2008 - 2011, Michael Larabel
|
||||
Copyright (C) 2008 - 2016, Phoronix Media
|
||||
Copyright (C) 2008 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2011, Phoronix Media
|
||||
Copyright (C) 2008 - 2011, Michael Larabel
|
||||
Copyright (C) 2008 - 2016, Phoronix Media
|
||||
Copyright (C) 2008 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -23,14 +23,16 @@
|
||||
class make_download_cache implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Test Installation';
|
||||
const doc_description = 'This option will create a download cache for use by the Phoronix Test Suite.';
|
||||
const doc_description = 'This option will create a download cache for use by the Phoronix Test Suite. The download cache is created of test files already downloaded to the local system. If passing any test/suite names to make-download-cache, the needed files for those test profiles will first be automatically downloaded before creating the cache.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
// Generates a PTS Download Cache
|
||||
$dc_write_directory = null;
|
||||
// Force refresh of OB repository to ensure the latest profiles
|
||||
pts_openbenchmarking::refresh_repository_lists(null, true);
|
||||
|
||||
$dc_write_directory = pts_strings::add_trailing_slash(pts_client::parse_home_directory(pts_config::read_user_config('PhoronixTestSuite/Options/Installation/CacheDirectory', PTS_DOWNLOAD_CACHE_PATH)));
|
||||
// Determine cache location
|
||||
$dc_write_directory = pts_strings::add_trailing_slash(pts_strings::parse_for_home_directory(pts_config::read_user_config('PhoronixTestSuite/Options/Installation/CacheDirectory', PTS_DOWNLOAD_CACHE_PATH)));
|
||||
echo PHP_EOL . 'Download Cache Directory: ' . $dc_write_directory . PHP_EOL;
|
||||
|
||||
if($dc_write_directory == null || !is_writable($dc_write_directory))
|
||||
{
|
||||
@@ -38,50 +40,95 @@ class make_download_cache implements pts_option_interface
|
||||
return false;
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'Download Cache Directory: ' . $dc_write_directory . PHP_EOL;
|
||||
if(!empty($r))
|
||||
{
|
||||
$test_profiles = pts_types::identifiers_to_test_profile_objects($r, true, true);
|
||||
|
||||
$xml_writer = new nye_XmlWriter();
|
||||
if(count($test_profiles) > 0)
|
||||
{
|
||||
echo PHP_EOL . 'Downloading Test Files For: ' . implode(' ', $test_profiles);
|
||||
pts_test_installer::only_download_test_files($test_profiles, $dc_write_directory);
|
||||
}
|
||||
}
|
||||
|
||||
foreach(pts_tests::installed_tests() as $test)
|
||||
$json_download_cache = array('phoronix-test-suite' => array(
|
||||
'main' => array('generated' => time()),
|
||||
'download-cache' => array()
|
||||
));
|
||||
|
||||
foreach(pts_tests::partially_installed_tests() as $test)
|
||||
{
|
||||
$test_profile = new pts_test_profile($test);
|
||||
$cached = false;
|
||||
echo PHP_EOL . 'Checking Downloads For: ' . $test . PHP_EOL;
|
||||
|
||||
foreach(pts_test_install_request::read_download_object_list($test_profile, false) as $file)
|
||||
{
|
||||
$cached_valid = false;
|
||||
if(is_file($dc_write_directory . $file->get_filename()) && $file->check_file_hash($dc_write_directory . $file->get_filename()))
|
||||
{
|
||||
echo ' Previously Cached: ' . $file->get_filename() . PHP_EOL;
|
||||
$cached = true;
|
||||
$cached_valid = true;
|
||||
}
|
||||
else
|
||||
else if(is_dir($test_profile->get_install_dir()))
|
||||
{
|
||||
if(is_dir($test_profile->get_install_dir()))
|
||||
if(is_file($test_profile->get_install_dir() . $file->get_filename()) && $file->check_file_hash($test_profile->get_install_dir() . $file->get_filename()))
|
||||
{
|
||||
if(is_file($test_profile->get_install_dir() . $file->get_filename()) && $file->check_file_hash($test_profile->get_install_dir() . $file->get_filename()))
|
||||
echo ' Caching: ' . $file->get_filename() . PHP_EOL;
|
||||
if(copy($test_profile->get_install_dir() . $file->get_filename(), $dc_write_directory . $file->get_filename()))
|
||||
{
|
||||
echo ' Caching: ' . $file->get_filename() . PHP_EOL;
|
||||
|
||||
if(copy($test_profile->get_install_dir() . $file->get_filename(), $dc_write_directory . $file->get_filename()))
|
||||
{
|
||||
$cached = true;
|
||||
}
|
||||
$cached_valid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($cached)
|
||||
if($cached_valid)
|
||||
{
|
||||
$xml_writer->addXmlNode('PhoronixTestSuite/DownloadCache/Package/FileName', $file->get_filename());
|
||||
$xml_writer->addXmlNode('PhoronixTestSuite/DownloadCache/Package/MD5', $file->get_md5());
|
||||
$xml_writer->addXmlNode('PhoronixTestSuite/DownloadCache/Package/SHA256', $file->get_sha256());
|
||||
if(!isset($json_download_cache['phoronix-test-suite']['download-cache'][$file->get_filename()]))
|
||||
{
|
||||
$json_download_cache['phoronix-test-suite']['download-cache'][$file->get_filename()] = array(
|
||||
'file_name' => $file->get_filename(),
|
||||
'file_size' => $file->get_filesize(),
|
||||
'associated_tests' => array($test_profile->get_identifier()),
|
||||
'md5' => $file->get_md5(),
|
||||
'sha256' => $file->get_sha256(),
|
||||
);
|
||||
}
|
||||
else if($file->get_md5() == $json_download_cache['phoronix-test-suite']['download-cache'][$file->get_filename()]['md5'] && $file->get_sha256() == $json_download_cache['phoronix-test-suite']['download-cache'][$file->get_filename()]['sha256'])
|
||||
{
|
||||
$json_download_cache['phoronix-test-suite']['download-cache'][$file->get_filename()]['associated_tests'][] = $test_profile->get_identifier();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$cache_xml = $xml_writer->getXML();
|
||||
file_put_contents($dc_write_directory . 'pts-download-cache.xml', $cache_xml);
|
||||
// Find files in download-cache/ that weren't part of an installed test (but could have just been tossed in there) to cache
|
||||
foreach(glob($dc_write_directory . '/*') as $cached_file)
|
||||
{
|
||||
$file_name = basename($cached_file);
|
||||
if(!isset($json_download_cache['phoronix-test-suite']['download-cache'][$file_name]) && $file_name != 'pts-download-cache.json')
|
||||
{
|
||||
$json_download_cache['phoronix-test-suite']['download-cache'][$file_name] = array(
|
||||
'file_name' => $file_name,
|
||||
'file_size' => filesize($cached_file),
|
||||
'associated_tests' => array(),
|
||||
'md5' => md5_file($cached_file),
|
||||
'sha256' => hash_file('sha256', $cached_file),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$cached_tests = array();
|
||||
foreach(pts_openbenchmarking::available_tests(true, true) as $test)
|
||||
{
|
||||
if(pts_test_install_request::test_files_in_cache($test, true, true) == false)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$cached_tests[] = $test;
|
||||
}
|
||||
$json_download_cache['phoronix-test-suite']['cached-tests'] = $cached_tests;
|
||||
|
||||
file_put_contents($dc_write_directory . 'pts-download-cache.json', json_encode($json_download_cache, (defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0)));
|
||||
echo PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
108
pts-core/commands/make_openbenchmarking_cache.php
Normal file
108
pts-core/commands/make_openbenchmarking_cache.php
Normal file
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2014 - 2015, Phoronix Media
|
||||
Copyright (C) 2014 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class make_openbenchmarking_cache implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'OpenBenchmarking.org';
|
||||
const doc_description = 'This option will attempt to cache the test profile/suite meta-data from OpenBenchmarking.org for all linked repositories. This is useful if you\'re going to be running the Phoronix Test Suite / Phoromatic behind a firewall or without any Internet connection. Those with unrestricted Internet access or not utilizing a large local deployment of the Phoronix Test Suite / Phoromatic shouldn\'t need to run this command.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
pts_client::$display->generic_heading('Available Tests');
|
||||
$available_tests = pts_openbenchmarking::available_tests(false);
|
||||
$available_suites = pts_openbenchmarking::available_suites(false);
|
||||
$test_count = count($available_tests);
|
||||
$suite_count = count($available_suites);
|
||||
$total_count = $test_count + $suite_count;
|
||||
$total_cache_count = 0;
|
||||
$total_cache_size = 0;
|
||||
|
||||
if($test_count == 0 || !pts_network::internet_support_available())
|
||||
{
|
||||
echo PHP_EOL . 'No tests found. Please check that you have Internet connectivity to download test profile data from OpenBenchmarking.org. The Phoronix Test Suite has documentation on configuring the network setup, proxy settings, and PHP network options. Please contact Phoronix Media if you continuing to experience problems.' . PHP_EOL . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
|
||||
$terminal_width = pts_client::terminal_width();
|
||||
|
||||
// Cache test profiles
|
||||
foreach($available_tests as $i => $identifier)
|
||||
{
|
||||
$repo = substr($identifier, 0, strpos($identifier, '/'));
|
||||
$test = substr($identifier, strlen($repo) + 1);
|
||||
$repo_index = pts_openbenchmarking::read_repository_index($repo);
|
||||
|
||||
echo $i . '/' . $total_count . ': ' . ($repo_index['tests'][$test]['title'] != null ? $repo_index['tests'][$test]['title'] . ' [' . $repo_index['tests'][$test]['test_type'] . ']' : null) . PHP_EOL;
|
||||
foreach($repo_index['tests'][$test]['versions'] as $version)
|
||||
{
|
||||
$qualified_identifier = $repo . '/' . $test . '-' . $version;
|
||||
echo $qualified_identifier;
|
||||
$success = pts_openbenchmarking::download_test_profile($repo . '/' . $test . '-' . $version);
|
||||
|
||||
if($success && is_file(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip'))
|
||||
{
|
||||
$file_size = round(filesize(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip') / 1024, 2);
|
||||
$info = $file_size . 'KB - ' . sha1_file(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip');
|
||||
$r_size = $terminal_width - strlen($qualified_identifier) - 3 - strlen($info);
|
||||
if($r_size > 0)
|
||||
{
|
||||
echo ' ' . str_repeat('.', $terminal_width - strlen($qualified_identifier) - 3 - strlen($info)) . ' ' . $info . PHP_EOL;
|
||||
}
|
||||
$total_cache_count++;
|
||||
$total_cache_size += $file_size;
|
||||
}
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
// Cache test suites
|
||||
foreach($available_suites as $i => $identifier)
|
||||
{
|
||||
$repo = substr($identifier, 0, strpos($identifier, '/'));
|
||||
$test = substr($identifier, strlen($repo) + 1);
|
||||
$repo_index = pts_openbenchmarking::read_repository_index($repo);
|
||||
|
||||
echo ($i + $test_count) . '/' . $total_count . ': ' . $repo_index['suites'][$test]['title'] . PHP_EOL;
|
||||
foreach($repo_index['suites'][$test]['versions'] as $version)
|
||||
{
|
||||
$qualified_identifier = $repo . '/' . $test . '-' . $version;
|
||||
echo $qualified_identifier;
|
||||
$success = pts_openbenchmarking::download_test_suite($repo . '/' . $test . '-' . $version);
|
||||
|
||||
if($success && is_file(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip'))
|
||||
{
|
||||
$file_size = round(filesize(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip') / 1024, 2);
|
||||
$info = $file_size . 'KB - ' . sha1_file(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip');
|
||||
$dot_size = $terminal_width - strlen($qualified_identifier) - 3 - strlen($info);
|
||||
echo ' ' . str_repeat('.', ($dot_size >= 0 ? $dot_size : 0)) . ' ' . $info . PHP_EOL;
|
||||
$total_cache_count++;
|
||||
$total_cache_size += $file_size;
|
||||
}
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
echo PHP_EOL . $total_cache_count . ' Files Cached' . PHP_EOL . $test_count . ' Test Profiles' . PHP_EOL . $suite_count . ' Test Suites' . PHP_EOL . $total_cache_size . 'KB Total Cache Size' . PHP_EOL . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2010, Phoronix Media
|
||||
Copyright (C) 2008 - 2010, Michael Larabel
|
||||
Copyright (C) 2008 - 2016, Phoronix Media
|
||||
Copyright (C) 2008 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -39,7 +39,7 @@ class merge_results implements pts_option_interface
|
||||
{
|
||||
if(pts_types::is_result_file($result_file))
|
||||
{
|
||||
array_push($result_files_to_merge, $result_file);
|
||||
$result_files_to_merge[] = PTS_SAVE_RESULTS_PATH . $result_file . '/composite.xml';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,12 +58,16 @@ class merge_results implements pts_option_interface
|
||||
$merge_to_file .= 'composite.xml';
|
||||
|
||||
// Merge Results
|
||||
$merged_results = call_user_func(array('pts_merge', 'merge_test_results_array'), $result_files_to_merge);
|
||||
pts_client::save_test_result($merge_to_file, $merged_results);
|
||||
|
||||
$result_file = new pts_result_file(array_shift($result_files_to_merge), true);
|
||||
$result_file->merge($result_files_to_merge);
|
||||
pts_client::save_test_result($merge_to_file, $result_file->get_xml());
|
||||
echo 'Merged Results Saved To: ' . PTS_SAVE_RESULTS_PATH . $merge_to_file . PHP_EOL . PHP_EOL;
|
||||
pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . dirname($merge_to_file) . '/index.html');
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::recently_saved_results();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2012, Phoronix Media
|
||||
Copyright (C) 2012, Michael Larabel
|
||||
Copyright (C) 2012 - 2016, Phoronix Media
|
||||
Copyright (C) 2012 - 2016, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -85,8 +85,9 @@ class ob_test_profile_analyze implements pts_option_interface
|
||||
// So for any compiling tasks they will try to use the most aggressive instructions possible
|
||||
putenv('CFLAGS=-march=native -O3');
|
||||
putenv('CXXFLAGS=-march=native -O3');
|
||||
pts_test_installer::standard_install($qualified_identifier, pts_c::force_install);
|
||||
pts_test_run_manager::standard_run($qualified_identifier, (pts_c::defaults_mode | pts_c::auto_mode));
|
||||
pts_test_installer::standard_install($qualified_identifier, true);
|
||||
$run_manager = new pts_test_run_manager(false, 2);
|
||||
$run_manager->standard_run($qualified_identifier);
|
||||
|
||||
if($apitrace)
|
||||
{
|
||||
@@ -194,7 +195,7 @@ var_dump($screenshots);
|
||||
|
||||
if(count($line) == 2)
|
||||
{
|
||||
array_push($shared_library_dependencies, trim(basename($line[0])));
|
||||
$shared_library_dependencies[] = trim(basename($line[0]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,7 +207,7 @@ var_dump($screenshots);
|
||||
// So for any compiling tasks they will try to use the most aggressive instructions possible
|
||||
putenv('CFLAGS=-march=' . $march . ' -O3');
|
||||
putenv('CXXFLAGS=-march=' . $march . ' -O3');
|
||||
pts_test_installer::standard_install($qualified_identifier, pts_c::force_install);
|
||||
pts_test_installer::standard_install($qualified_identifier, true);
|
||||
$instruction_usage[$march] = self::analyze_binary_instruction_usage($test_binary);
|
||||
|
||||
if($instruction_usage[$march] == null)
|
||||
|
||||
@@ -48,7 +48,8 @@ class openbenchmarking_launcher implements pts_option_interface
|
||||
case 'benchmark':
|
||||
$to_benchmark = explode(' ', $payload);
|
||||
pts_test_installer::standard_install($to_benchmark);
|
||||
pts_test_run_manager::standard_run($to_benchmark);
|
||||
$run_manager = new pts_test_run_manager();
|
||||
$run_manager->standard_run($to_benchmark);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2012, Phoronix Media
|
||||
Copyright (C) 2008 - 2012, Michael Larabel
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -46,7 +46,7 @@ class openbenchmarking_login implements pts_option_interface
|
||||
$login_state = pts_openbenchmarking::make_openbenchmarking_request('account_login', $login_payload);
|
||||
$json = json_decode($login_state, true);
|
||||
|
||||
if(isset($json['openbenchmarking']['response']['error']))
|
||||
if(!isset($json['openbenchmarking']) || isset($json['openbenchmarking']['response']['error']))
|
||||
{
|
||||
trigger_error($json['openbenchmarking']['response']['error'], E_USER_ERROR);
|
||||
pts_storage_object::remove_in_file(PTS_CORE_STORAGE, 'openbenchmarking');
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2009, Phoronix Media
|
||||
Copyright (C) 2008 - 2009, Michael Larabel
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -32,7 +32,7 @@ class pts_version implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
echo PHP_EOL . pts_title(true) . PHP_EOL;
|
||||
echo PHP_EOL . pts_core::program_title(true) . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user