Compare commits
1252 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef96cd126e | ||
|
|
f4f38f3b1b | ||
|
|
94732d1590 | ||
|
|
4b3d2dedc0 | ||
|
|
e4aaa3bdb7 | ||
|
|
78bec4ed0f | ||
|
|
3d1a09ebe6 | ||
|
|
b4ebeb3b9b | ||
|
|
ebb5a4f316 | ||
|
|
895cc09f36 | ||
|
|
35dbff8039 | ||
|
|
65391cb682 | ||
|
|
865156461a | ||
|
|
a7753b10d2 | ||
|
|
54db46b2fd | ||
|
|
038fd99b27 | ||
|
|
c82e72b991 | ||
|
|
28018e4c6a | ||
|
|
14e8dd23a3 | ||
|
|
0f45f9e1a1 | ||
|
|
5e80315a25 | ||
|
|
f852a71f68 | ||
|
|
b921f4b7ee | ||
|
|
ed331bb2ea | ||
|
|
2061bb2ca6 | ||
|
|
060788fa26 | ||
|
|
d2a60c8161 | ||
|
|
fb924e9a89 | ||
|
|
3b7d7af937 | ||
|
|
696d562c0c | ||
|
|
4b208c0a5d | ||
|
|
ee8e9e0cda | ||
|
|
54d027a1be | ||
|
|
3e8a3bf7e2 | ||
|
|
bc1e8d1d3d | ||
|
|
423114a1a4 | ||
|
|
a112bc9657 | ||
|
|
1a6dff2238 | ||
|
|
982aa40d0d | ||
|
|
8333ed745c | ||
|
|
7cc2d164fd | ||
|
|
34a40c8791 | ||
|
|
0847fcd9a9 | ||
|
|
31ad2a1872 | ||
|
|
7b8bcfbaff | ||
|
|
26137c9cec | ||
|
|
5f3c3840b6 | ||
|
|
d212c31516 | ||
|
|
a52d1149aa | ||
|
|
8318d3d05b | ||
|
|
27fa0b245e | ||
|
|
48b6ecfdfd | ||
|
|
6f9e659bb1 | ||
|
|
5f42a2e012 | ||
|
|
311c8bc7d3 | ||
|
|
83c2beea88 | ||
|
|
0f19d80f6a | ||
|
|
e9a5b61c64 | ||
|
|
92de5b0a8c | ||
|
|
e8144b4347 | ||
|
|
f974a67042 | ||
|
|
1fe839e5ca | ||
|
|
5fef46e923 | ||
|
|
be65a375a2 | ||
|
|
7e74fe5900 | ||
|
|
c0d5d1573c | ||
|
|
e72f3ff7a1 | ||
|
|
1e310aa6d5 | ||
|
|
7768d61864 | ||
|
|
221b79e9a3 | ||
|
|
de00f10bcb | ||
|
|
489803eb66 | ||
|
|
6adf614e62 | ||
|
|
d6d010db29 | ||
|
|
6f40cbc2bb | ||
|
|
796002b497 | ||
|
|
bb84a01124 | ||
|
|
3c1917591f | ||
|
|
a99524364a | ||
|
|
08ba136b9f | ||
|
|
c1d48729e3 | ||
|
|
7a3dd43890 | ||
|
|
e2fa5ee6ae | ||
|
|
d850218bbc | ||
|
|
9e180abcf8 | ||
|
|
ecff3c1352 | ||
|
|
15b6af1bd7 | ||
|
|
8deef17b2c | ||
|
|
8fd46e944c | ||
|
|
3e4847a277 | ||
|
|
4b6c38ea90 | ||
|
|
8cff2ba48a | ||
|
|
079b9ed1a1 | ||
|
|
283fe6ed3b | ||
|
|
54a9065b8d | ||
|
|
88a87c7299 | ||
|
|
efbb369ecb | ||
|
|
573df72e2e | ||
|
|
d7c10aa83f | ||
|
|
c6c38b6841 | ||
|
|
68314b4706 | ||
|
|
7c922ab8e0 | ||
|
|
4f08f5d124 | ||
|
|
b6d26ef0ea | ||
|
|
15cbacf11c | ||
|
|
c13a0c979c | ||
|
|
471a8fca10 | ||
|
|
5fe04fe512 | ||
|
|
6575797961 | ||
|
|
3bddc10aa8 | ||
|
|
443168b464 | ||
|
|
c4c3ca1627 | ||
|
|
30f1c0a33e | ||
|
|
317b19f073 | ||
|
|
56865d576d | ||
|
|
10f6079ae4 | ||
|
|
3aa0f47245 | ||
|
|
b8c8e83563 | ||
|
|
b3e7a69074 | ||
|
|
7b9c9ae5ca | ||
|
|
752196e86b | ||
|
|
a0d0b90baf | ||
|
|
c648fadd61 | ||
|
|
36425bb513 | ||
|
|
2f3113c074 | ||
|
|
43029a5949 | ||
|
|
cf0464b384 | ||
|
|
439bfb3e4a | ||
|
|
376a5d98d0 | ||
|
|
333ab5dc7e | ||
|
|
fb21292f17 | ||
|
|
9a4d307970 | ||
|
|
9619543455 | ||
|
|
9d9083945e | ||
|
|
0f92db7f9f | ||
|
|
680decaa90 | ||
|
|
587ea55d24 | ||
|
|
198d6bf751 | ||
|
|
763757cfc0 | ||
|
|
5b69e46c43 | ||
|
|
5a05a7f8f8 | ||
|
|
a8643a861a | ||
|
|
75308a0565 | ||
|
|
e552d36eb9 | ||
|
|
a0920673e7 | ||
|
|
ac04329825 | ||
|
|
f95c091cc6 | ||
|
|
6935e67ce3 | ||
|
|
4dc9a80f0b | ||
|
|
b3dcd1bf92 | ||
|
|
47b2cf1322 | ||
|
|
e6a7807110 | ||
|
|
41e0a515df | ||
|
|
bea9fe88da | ||
|
|
b94324e541 | ||
|
|
7495200358 | ||
|
|
10dc1a9084 | ||
|
|
471a547cf1 | ||
|
|
15ac890f93 | ||
|
|
2770e4713f | ||
|
|
04fb42163c | ||
|
|
cb929a0791 | ||
|
|
54393cff88 | ||
|
|
0cbea8b51a | ||
|
|
e53636d05b | ||
|
|
02d84d3dbd | ||
|
|
6c68ee9855 | ||
|
|
920cd98179 | ||
|
|
f1c7e43bbd | ||
|
|
3a5b063ef9 | ||
|
|
5fc3f305fc | ||
|
|
c6a30c3baa | ||
|
|
106c009157 | ||
|
|
081e7d711c | ||
|
|
780fa53fd4 | ||
|
|
44df0f52f7 | ||
|
|
f2d1e80a23 | ||
|
|
a5b1139801 | ||
|
|
bc04922d2e | ||
|
|
9382713b91 | ||
|
|
a88c0b7b8c | ||
|
|
e66599a7e2 | ||
|
|
5ba8b99b72 | ||
|
|
3138646e5d | ||
|
|
fbb825d68a | ||
|
|
d31200789b | ||
|
|
69d3305ab2 | ||
|
|
a2ae11c5eb | ||
|
|
4a2a18cc2b | ||
|
|
c76d3d9282 | ||
|
|
ca1c4c19c6 | ||
|
|
ffcebcde80 | ||
|
|
597f8f57ac | ||
|
|
a6ddfed297 | ||
|
|
867bea2028 | ||
|
|
9047dcb1d2 | ||
|
|
29c0649f02 | ||
|
|
5f9fe8d9fc | ||
|
|
4d589b7466 | ||
|
|
d73cf1721a | ||
|
|
f04e8925e0 | ||
|
|
8e2c7b704b | ||
|
|
a60524dc26 | ||
|
|
084b316cd5 | ||
|
|
4a150f2bd1 | ||
|
|
8e8478813e | ||
|
|
a7e594df85 | ||
|
|
593fa5c3d5 | ||
|
|
a072323b0d | ||
|
|
9f1c47d2c2 | ||
|
|
4882445433 | ||
|
|
0431d3b6cb | ||
|
|
e6430692bf | ||
|
|
9c4b4e56c6 | ||
|
|
10b670ea5f | ||
|
|
5fe7a389aa | ||
|
|
204cb23821 | ||
|
|
7ef46d401e | ||
|
|
a3719c0680 | ||
|
|
758547e9a7 | ||
|
|
bbc7792406 | ||
|
|
5fdf5f336a | ||
|
|
f5cfad988c | ||
|
|
800c9508bc | ||
|
|
788c183430 | ||
|
|
f616f3ac06 | ||
|
|
4a60d00c33 | ||
|
|
e9701e9c1e | ||
|
|
c38a6ed876 | ||
|
|
b38566b43c | ||
|
|
4e4b9068b6 | ||
|
|
e4b3d1f321 | ||
|
|
a38a426224 | ||
|
|
c46a6ae4fa | ||
|
|
23d104a7d1 | ||
|
|
b00e2279eb | ||
|
|
829dac25d0 | ||
|
|
e65af31a06 | ||
|
|
118198547d | ||
|
|
9c718a819a | ||
|
|
c1954af585 | ||
|
|
add09d6371 | ||
|
|
6db221b764 | ||
|
|
b4b90b5f67 | ||
|
|
40b994d8be | ||
|
|
b44a9ad9fd | ||
|
|
8d4ee8065d | ||
|
|
39a7db8e3e | ||
|
|
d5749e01ae | ||
|
|
af1090025b | ||
|
|
470c37e761 | ||
|
|
27036956db | ||
|
|
a0fd2c27ea | ||
|
|
d5d076ac3f | ||
|
|
9531eaa4b9 | ||
|
|
ebf3110458 | ||
|
|
25e92ed118 | ||
|
|
d308a6a9c1 | ||
|
|
d687548fab | ||
|
|
30c1ae0a96 | ||
|
|
1423f371d2 | ||
|
|
108c9e19e0 | ||
|
|
ff032b4b1c | ||
|
|
ba91901e14 | ||
|
|
128b084fe2 | ||
|
|
3e783d50a1 | ||
|
|
678823b079 | ||
|
|
b1c9db1aa1 | ||
|
|
c46d8e78ea | ||
|
|
72246545a7 | ||
|
|
18dcfcde52 | ||
|
|
10e60a0c60 | ||
|
|
d58b43d0f7 | ||
|
|
31119ddcc8 | ||
|
|
2b9752e376 | ||
|
|
f57bbc7938 | ||
|
|
d5bb0c2dae | ||
|
|
e7cdadb8b7 | ||
|
|
fa1d36c45a | ||
|
|
ff8bda5f09 | ||
|
|
85df8554f0 | ||
|
|
e863e546b8 | ||
|
|
eff537facd | ||
|
|
9c1f15450e | ||
|
|
f8f908e808 | ||
|
|
8df1c7546b | ||
|
|
86f71d871d | ||
|
|
ef14c59c9f | ||
|
|
1830da8150 | ||
|
|
bc8f54065c | ||
|
|
011d62f670 | ||
|
|
df2f50f351 | ||
|
|
99e47108fd | ||
|
|
93fe2b699d | ||
|
|
68f3b4838a | ||
|
|
817498daff | ||
|
|
cf62952fc0 | ||
|
|
365b1d3682 | ||
|
|
6d700a8ec3 | ||
|
|
9c0b8b85ef | ||
|
|
63bdc42884 | ||
|
|
207e5c61c6 | ||
|
|
95204b0fd6 | ||
|
|
0eb8d0c4f7 | ||
|
|
0239c5ce16 | ||
|
|
244b79ba08 | ||
|
|
efd6531e1c | ||
|
|
6b364b55d5 | ||
|
|
8d7167f610 | ||
|
|
484c8d9008 | ||
|
|
7c61973895 | ||
|
|
92016e9df6 | ||
|
|
1d2bef89df | ||
|
|
2ed3e682f2 | ||
|
|
249b6c136e | ||
|
|
dd3c42fe22 | ||
|
|
e9e12464d7 | ||
|
|
4583696ccf | ||
|
|
35e6f2c5e1 | ||
|
|
3a33f68776 | ||
|
|
cfe898ebc2 | ||
|
|
8e30f42fa6 | ||
|
|
61d1df4dd0 | ||
|
|
789e19cb80 | ||
|
|
fa2d5eb96b | ||
|
|
ce9d40e0f5 | ||
|
|
4b86ade6e7 | ||
|
|
47e91cbb08 | ||
|
|
6cc786df32 | ||
|
|
ef4150d5bb | ||
|
|
864835d884 | ||
|
|
18490d9665 | ||
|
|
1d759267e4 | ||
|
|
e412f3adc1 | ||
|
|
714f6ce751 | ||
|
|
0c0468c37b | ||
|
|
1d2dabd939 | ||
|
|
70f007301b | ||
|
|
a4386de0c6 | ||
|
|
2212819887 | ||
|
|
22f09ba41b | ||
|
|
98efa0789d | ||
|
|
4705db7e5f | ||
|
|
776f196cbb | ||
|
|
66189914e3 | ||
|
|
5908bfe4a3 | ||
|
|
04f63eb73b | ||
|
|
a5bbf08b8f | ||
|
|
cfb0a478bc | ||
|
|
046beec318 | ||
|
|
3382e8c76b | ||
|
|
0258ae8930 | ||
|
|
f0d183070d | ||
|
|
bec7de29a2 | ||
|
|
7b49fd280a | ||
|
|
24e72908cb | ||
|
|
b30e5db2ac | ||
|
|
e8cb6fcf13 | ||
|
|
ff4a5c9226 | ||
|
|
850698409e | ||
|
|
0ad3917b53 | ||
|
|
a5dd22efef | ||
|
|
e6c2387eac | ||
|
|
72552dc0e6 | ||
|
|
35b5d28c4b | ||
|
|
2aa0725d98 | ||
|
|
002d10418f | ||
|
|
dda267de07 | ||
|
|
17560c09cd | ||
|
|
1a799cce6a | ||
|
|
29ffab4598 | ||
|
|
e486cbeda3 | ||
|
|
d235b00a69 | ||
|
|
e486239012 | ||
|
|
71f5d2be53 | ||
|
|
32ada6f09b | ||
|
|
996ecf911d | ||
|
|
1a0323d4b5 | ||
|
|
7c13749d15 | ||
|
|
7a4e5c9440 | ||
|
|
2682bb25f7 | ||
|
|
b181f39d6b | ||
|
|
da18941225 | ||
|
|
bc431e8ec4 | ||
|
|
63a09d9fc1 | ||
|
|
8fda9e4538 | ||
|
|
6776dcbbad | ||
|
|
5b7a229f57 | ||
|
|
f2ad85e735 | ||
|
|
e49fd7ac54 | ||
|
|
6a4a3e7b4c | ||
|
|
5b22d9419c | ||
|
|
deb27740aa | ||
|
|
79c7f1b0e0 | ||
|
|
67d03dd9b3 | ||
|
|
51d781e4c8 | ||
|
|
9b0c3adea8 | ||
|
|
bc1f8d3e82 | ||
|
|
02d1cf268e | ||
|
|
ccbf555418 | ||
|
|
487a1c63b8 | ||
|
|
88b5784537 | ||
|
|
9bfd2d025d | ||
|
|
6e378ab4c0 | ||
|
|
253fc167af | ||
|
|
9207d4c069 | ||
|
|
607be2c5c8 | ||
|
|
e3ff77b2d2 | ||
|
|
f5af13bdda | ||
|
|
5104ffbefd | ||
|
|
43c68c8bda | ||
|
|
98ce410b9c | ||
|
|
dd13bfab16 | ||
|
|
905604098e | ||
|
|
5d33dd8309 | ||
|
|
d860935659 | ||
|
|
02f1f70a1e | ||
|
|
ae3d38ddec | ||
|
|
924c41a0bf | ||
|
|
fdd75522a6 | ||
|
|
fec5b96365 | ||
|
|
ec08145b36 | ||
|
|
3983ab4e44 | ||
|
|
913ffd4450 | ||
|
|
818e9bf922 | ||
|
|
f1d960d947 | ||
|
|
ea22429b04 | ||
|
|
8809be22d7 | ||
|
|
3df6cb31da | ||
|
|
2a26c396a2 | ||
|
|
80bcf41722 | ||
|
|
443c566a22 | ||
|
|
4d396906d8 | ||
|
|
e378f0c1ce | ||
|
|
d15a970833 | ||
|
|
d00ce45d5a | ||
|
|
e48b11cb69 | ||
|
|
b2bb4ff12b | ||
|
|
33d6d2c89c | ||
|
|
1643febee2 | ||
|
|
0dfe353b39 | ||
|
|
14c1940aae | ||
|
|
474e12b3e4 | ||
|
|
c6820c7413 | ||
|
|
bc1387e711 | ||
|
|
eea1d16921 | ||
|
|
6669ce5be6 | ||
|
|
bcfd4ea7f6 | ||
|
|
4b37aa2c34 | ||
|
|
f84cc6b091 | ||
|
|
fa41f50698 | ||
|
|
2b3c6354b3 | ||
|
|
c184cc6841 | ||
|
|
9f3cc3814b | ||
|
|
e129e1865e | ||
|
|
f668188cbd | ||
|
|
2ba79b3671 | ||
|
|
caab17cd65 | ||
|
|
b11a44932e | ||
|
|
bc217e4c0e | ||
|
|
aa4c7624b7 | ||
|
|
f6bf4378ac | ||
|
|
db6a019dad | ||
|
|
c05f7c8c11 | ||
|
|
9a0069cbe9 | ||
|
|
b87948ce60 | ||
|
|
39e7940ba8 | ||
|
|
f6b4343a5e | ||
|
|
f84784205d | ||
|
|
5b839203e6 | ||
|
|
4be3f1ee00 | ||
|
|
b078a38354 | ||
|
|
1311fa8588 | ||
|
|
969375e06e | ||
|
|
422b06bbb3 | ||
|
|
0a1ac41bd0 | ||
|
|
e9e6b1c974 | ||
|
|
cc97a52c85 | ||
|
|
69d15a9072 | ||
|
|
57a78237d3 | ||
|
|
bc84af9eef | ||
|
|
c03621d572 | ||
|
|
58a2d07acf | ||
|
|
75a1b692ce | ||
|
|
0fa2141e03 | ||
|
|
fd8c29db23 | ||
|
|
3c6a4b8537 | ||
|
|
047ee7be47 | ||
|
|
4557aa8fba | ||
|
|
149c628b38 | ||
|
|
af186ec618 | ||
|
|
381b1a864a | ||
|
|
59e7dbfced | ||
|
|
7950f33663 | ||
|
|
e103fdd836 | ||
|
|
d374da3cf5 | ||
|
|
61d9e0cc8c | ||
|
|
dd94c12c90 | ||
|
|
370354ca23 | ||
|
|
807e55269c | ||
|
|
aae681713b | ||
|
|
1511970f99 | ||
|
|
7367b078f2 | ||
|
|
f408f44dce | ||
|
|
78a5372294 | ||
|
|
24b74c4c5f | ||
|
|
ed1b2bbc7e | ||
|
|
3c444f1c18 | ||
|
|
b4183cc1eb | ||
|
|
57153279ef | ||
|
|
66dae6a931 | ||
|
|
2d9b349907 | ||
|
|
3ffd051e78 | ||
|
|
4c180aa96d | ||
|
|
75633423f6 | ||
|
|
54ba1572d4 | ||
|
|
be9b33dc28 | ||
|
|
cadd0b8ad5 | ||
|
|
9c409c12d4 | ||
|
|
891e6255fe | ||
|
|
e95a9d93a2 | ||
|
|
06a9f3d529 | ||
|
|
ab54542d61 | ||
|
|
1cc351dc07 | ||
|
|
062b9a6bba | ||
|
|
fefd63bed9 | ||
|
|
3b4699aaac | ||
|
|
40466a0847 | ||
|
|
9c1f2f4b65 | ||
|
|
aa89ca4339 | ||
|
|
39fe54abc0 | ||
|
|
5637bf542a | ||
|
|
4d6b97d39a | ||
|
|
892faf7e9d | ||
|
|
b15d3f085e | ||
|
|
0318bb52be | ||
|
|
c2904258f5 | ||
|
|
143c775f2a | ||
|
|
38b36330d9 | ||
|
|
8b797189b1 | ||
|
|
ddf67c08bb | ||
|
|
b2ddf027d0 | ||
|
|
5bfe99d244 | ||
|
|
d751e3cfbf | ||
|
|
43a3aa98f6 | ||
|
|
c9be9e14d2 | ||
|
|
0dad2a25d4 | ||
|
|
86997d281c | ||
|
|
451b258c2d | ||
|
|
399b796330 | ||
|
|
580ffac277 | ||
|
|
31b1f964d2 | ||
|
|
5c064d7b76 | ||
|
|
80813ce7c7 | ||
|
|
8fd370afd6 | ||
|
|
4a74e67ee5 | ||
|
|
a02d0c8c70 | ||
|
|
f8eaa96156 | ||
|
|
2cfb430256 | ||
|
|
6ad454b881 | ||
|
|
9c64945f7f | ||
|
|
af987e6608 | ||
|
|
662360012f | ||
|
|
fe898279bb | ||
|
|
cf86a9b209 | ||
|
|
35a752b10a | ||
|
|
70cbb94301 | ||
|
|
311eca9777 | ||
|
|
bcb3283993 | ||
|
|
d8ec874d6c | ||
|
|
346672145e | ||
|
|
2bce5cdd02 | ||
|
|
28aa93b15c | ||
|
|
322b266b48 | ||
|
|
1a92c4faaa | ||
|
|
0bf2e84eec | ||
|
|
8f4335954c | ||
|
|
a7995738ec | ||
|
|
d5a2587daa | ||
|
|
dde42d8ffc | ||
|
|
40829023c3 | ||
|
|
118cff1799 | ||
|
|
e06e304a24 | ||
|
|
f4f08bd210 | ||
|
|
67b304248c | ||
|
|
6b4d99816a | ||
|
|
ec6c58756f | ||
|
|
3465b95292 | ||
|
|
45259478a4 | ||
|
|
872b071670 | ||
|
|
4b8ef61a4b | ||
|
|
ec8acf9ed9 | ||
|
|
b155c1ea90 | ||
|
|
d7cd61deb1 | ||
|
|
9720bc7e16 | ||
|
|
e283682246 | ||
|
|
580fd6c441 | ||
|
|
9507f952c6 | ||
|
|
8af17a0a6c | ||
|
|
8740216864 | ||
|
|
7f5028f3ce | ||
|
|
631cb56662 | ||
|
|
95b4caa7e2 | ||
|
|
27e9e5a56c | ||
|
|
dfc0b8978a | ||
|
|
90d3fe2783 | ||
|
|
92426aedc5 | ||
|
|
62c9f10ea4 | ||
|
|
07d85ef98e | ||
|
|
a84d3c0e31 | ||
|
|
eb210e506e | ||
|
|
7f232753cd | ||
|
|
e87e83a289 | ||
|
|
6cee52c416 | ||
|
|
a7a38b2fc0 | ||
|
|
8b6a1490bb | ||
|
|
b71fb80c7e | ||
|
|
82672e54d7 | ||
|
|
3981d4a169 | ||
|
|
b82cce0531 | ||
|
|
6d1e06bf51 | ||
|
|
daa583d783 | ||
|
|
dec8a5b346 | ||
|
|
fe67cb459b | ||
|
|
13ea3d230f | ||
|
|
155e21e9ad | ||
|
|
f87a035117 | ||
|
|
2e0ccb9c48 | ||
|
|
74f0c18b40 | ||
|
|
6e9e05e3fa | ||
|
|
e744b886c3 | ||
|
|
4df4c975c3 | ||
|
|
8c60566f5f | ||
|
|
0f5bb82f87 | ||
|
|
4a679bc3a3 | ||
|
|
d4a9c04e96 | ||
|
|
2c8b703a0d | ||
|
|
59948042c2 | ||
|
|
1b1f7f191f | ||
|
|
516b41017a | ||
|
|
0ea2375c87 | ||
|
|
be1a4dec8a | ||
|
|
7aadba1d57 | ||
|
|
7bf6c03113 | ||
|
|
60716494e6 | ||
|
|
51acdc67c7 | ||
|
|
c279b0a3a3 | ||
|
|
bf2e8dcc16 | ||
|
|
791d82ecdf | ||
|
|
ed27e1a36f | ||
|
|
da86cd5046 | ||
|
|
78b7da54ef | ||
|
|
f8f16f3e87 | ||
|
|
6885629cb7 | ||
|
|
024189d25d | ||
|
|
8782fcdaa5 | ||
|
|
5bbf8a8caf | ||
|
|
1d21ea4a53 | ||
|
|
ea890b7b8b | ||
|
|
da2648fec8 | ||
|
|
767e8641e1 | ||
|
|
1658bf1e65 | ||
|
|
5245f152a1 | ||
|
|
3cae6d56a6 | ||
|
|
22e0a1134a | ||
|
|
18f8662c24 | ||
|
|
42b9a5b6fd | ||
|
|
2e57174e46 | ||
|
|
39aef2d526 | ||
|
|
9af4fe7a0e | ||
|
|
894364a09c | ||
|
|
3bbd06d599 | ||
|
|
1907838b35 | ||
|
|
8eda4a5a91 | ||
|
|
712de905a4 | ||
|
|
a1d05a987c | ||
|
|
abbe900f13 | ||
|
|
5a96db3380 | ||
|
|
56ef1a00b6 | ||
|
|
e6f19c8988 | ||
|
|
0d768702e0 | ||
|
|
a45895b0ff | ||
|
|
c1a6dcc851 | ||
|
|
eafc5b7a7f | ||
|
|
1c31a919b6 | ||
|
|
5e02c1202c | ||
|
|
2c9cfa4aa7 | ||
|
|
9b22974ea4 | ||
|
|
bee7eeb30a | ||
|
|
a7a0a85183 | ||
|
|
be6ee9b44e | ||
|
|
98a9f44146 | ||
|
|
9004ab7410 | ||
|
|
43e0657d62 | ||
|
|
639a4739e5 | ||
|
|
5d988fb686 | ||
|
|
602ad4bd8e | ||
|
|
7ea7799327 | ||
|
|
edce918fc2 | ||
|
|
66966c63bd | ||
|
|
4fdbf3e04d | ||
|
|
28689112ef | ||
|
|
bfbd5600bf | ||
|
|
4ba6342b94 | ||
|
|
d72518f471 | ||
|
|
e1340308aa | ||
|
|
e9788b9f35 | ||
|
|
3b65a0329e | ||
|
|
7c02413dc6 | ||
|
|
9a4d519a18 | ||
|
|
218f5cfab0 | ||
|
|
82389c8e6a | ||
|
|
fd26da038a | ||
|
|
0c84dd460c | ||
|
|
05e5b13b17 | ||
|
|
976a1564c2 | ||
|
|
803e11d274 | ||
|
|
4f60331beb | ||
|
|
5219e0a08d | ||
|
|
c166443a11 | ||
|
|
d8d72f6d4e | ||
|
|
4be09f1155 | ||
|
|
c4a82ae8f6 | ||
|
|
a19b10d401 | ||
|
|
5d941004e2 | ||
|
|
c3c47d7829 | ||
|
|
ec013399f0 | ||
|
|
60154761b5 | ||
|
|
afa41dcb8b | ||
|
|
200f25160d | ||
|
|
a21ae0bbc1 | ||
|
|
ffdd31d273 | ||
|
|
460fda86bf | ||
|
|
7607477254 | ||
|
|
1bf2f3239a | ||
|
|
c569da824c | ||
|
|
f3891dc41d | ||
|
|
c5908f1979 | ||
|
|
7b734c9cd9 | ||
|
|
e1d75936de | ||
|
|
7d0b809ea9 | ||
|
|
a71bd2cbf8 | ||
|
|
8941860e9b | ||
|
|
a000c0ef20 | ||
|
|
e4b47aa5a4 | ||
|
|
3b95afe1f0 | ||
|
|
d279629ee4 | ||
|
|
a28727598e | ||
|
|
5f23296e9b | ||
|
|
09e721cfda | ||
|
|
a87b8fbad7 | ||
|
|
2ccaf6eab9 | ||
|
|
5d26bc75ab | ||
|
|
38b813186e | ||
|
|
f66269971b | ||
|
|
b10d6d62bb | ||
|
|
d2f7ef4d59 | ||
|
|
eaac34ce9b | ||
|
|
4f3c6d1046 | ||
|
|
ee17c558b5 | ||
|
|
1adc5604d7 | ||
|
|
c5d6fbe9b7 | ||
|
|
c6170880ed | ||
|
|
bba7a462b7 | ||
|
|
a023c9ffb8 | ||
|
|
98f536a827 | ||
|
|
aec95545da | ||
|
|
e10563d25c | ||
|
|
360b2ea52c | ||
|
|
d7000da52b | ||
|
|
52f97d07fe | ||
|
|
a469cd9b24 | ||
|
|
d3c26130d8 | ||
|
|
b6958aea66 | ||
|
|
cd9f20a553 | ||
|
|
327315004f | ||
|
|
b1cabd5cce | ||
|
|
9cf7ecd68c | ||
|
|
2fd7fd58ca | ||
|
|
1939c50960 | ||
|
|
2d6953fe67 | ||
|
|
7592fd09b1 | ||
|
|
c271719825 | ||
|
|
de63dcd52e | ||
|
|
fbb21fcba7 | ||
|
|
358e0e019e | ||
|
|
6e15b68e82 | ||
|
|
6347c3f982 | ||
|
|
d152ee6166 | ||
|
|
f28d8eff3d | ||
|
|
4049811246 | ||
|
|
7b2446ee52 | ||
|
|
e30f391520 | ||
|
|
32073ad075 | ||
|
|
5b1da20a39 | ||
|
|
01b3030ef8 | ||
|
|
d35d61ed7a | ||
|
|
86ccf1f872 | ||
|
|
7277d957d2 | ||
|
|
3742302f6a | ||
|
|
04e0bb96ed | ||
|
|
6f9e7feb1f | ||
|
|
60ce0b5727 | ||
|
|
c6da014d03 | ||
|
|
dcd5b41ae7 | ||
|
|
bdc952bd0c | ||
|
|
f823d6475f | ||
|
|
3c5e61286b | ||
|
|
63bc93c74c | ||
|
|
f3575e663a | ||
|
|
fefc17b87c | ||
|
|
a26f2f5223 | ||
|
|
81dc40f174 | ||
|
|
283ea3f704 | ||
|
|
97619f5014 | ||
|
|
bf934fb90b | ||
|
|
f497023529 | ||
|
|
6ee8cb107d | ||
|
|
7330df29ae | ||
|
|
a314034df7 | ||
|
|
e78beb7e8a | ||
|
|
4628e1cbb3 | ||
|
|
0b8fdfc13f | ||
|
|
dd0b6056a6 | ||
|
|
b9d5108479 | ||
|
|
566ae6d648 | ||
|
|
fdd0f5c6d1 | ||
|
|
f4435c54f6 | ||
|
|
5c765b0b86 | ||
|
|
01efc7eeb7 | ||
|
|
8b01a910f6 | ||
|
|
22a966553b | ||
|
|
8bc6d4ab3c | ||
|
|
e28ab9feaf | ||
|
|
916bf5ef25 | ||
|
|
9dea655699 | ||
|
|
160210de1f | ||
|
|
85b8fa1561 | ||
|
|
390552847f | ||
|
|
041a10ab71 | ||
|
|
a6f0208080 | ||
|
|
afc3319808 | ||
|
|
04e34a9785 | ||
|
|
669d64fccd | ||
|
|
d34da778eb | ||
|
|
2e7f7004bc | ||
|
|
924b3f1ebf | ||
|
|
6bee435df4 | ||
|
|
914a1632dd | ||
|
|
3a68779c1b | ||
|
|
6e1a5fe51f | ||
|
|
a63d7ccbe4 | ||
|
|
2c05f1a225 | ||
|
|
f1866f7675 | ||
|
|
47bab9f402 | ||
|
|
131812eb54 | ||
|
|
d22ab87bd3 | ||
|
|
5172376256 | ||
|
|
4a48da0cf4 | ||
|
|
372e3102bd | ||
|
|
b6a42d4fae | ||
|
|
c42e629d12 | ||
|
|
eb241892bb | ||
|
|
ea65b2f735 | ||
|
|
84de65a0b2 | ||
|
|
a9e05b8296 | ||
|
|
db31e1536d | ||
|
|
1536c6160d | ||
|
|
f1a480380a | ||
|
|
edbde811fc | ||
|
|
e38d5bedc2 | ||
|
|
5ee3eb0a29 | ||
|
|
12f25faebe | ||
|
|
506d650e9e | ||
|
|
0229f0a924 | ||
|
|
88c627b624 | ||
|
|
f6d4ddd838 | ||
|
|
7bb2550573 | ||
|
|
bbb5009e80 | ||
|
|
1ca04b1f70 | ||
|
|
dff1263dab | ||
|
|
f50fd289ed | ||
|
|
2cc521ee61 | ||
|
|
7c87cbcf35 | ||
|
|
a5e4944c0f | ||
|
|
59b63bc26d | ||
|
|
c364e89793 | ||
|
|
3a88d83254 | ||
|
|
0015567d24 | ||
|
|
30d79511bf | ||
|
|
e6a12eceb4 | ||
|
|
b05ca034c9 | ||
|
|
b9da25a040 | ||
|
|
f23f336477 | ||
|
|
41168d7dd5 | ||
|
|
493ebd2b41 | ||
|
|
a351cdd3ba | ||
|
|
e1e10bbd75 | ||
|
|
88a7740dfb | ||
|
|
b318833d1d | ||
|
|
296485afac | ||
|
|
d280772507 | ||
|
|
29fcf362a1 | ||
|
|
28710178d5 | ||
|
|
b20f9c7e29 | ||
|
|
dfe945e04c | ||
|
|
ed1455e68f | ||
|
|
2ecb8426c8 | ||
|
|
a92ac2c2c6 | ||
|
|
165e824630 | ||
|
|
24128fc243 | ||
|
|
e2942f164c | ||
|
|
d8189a32ec | ||
|
|
744d380253 | ||
|
|
ad9aace274 | ||
|
|
42cac172f3 | ||
|
|
89d094f990 | ||
|
|
f2b8d5406e | ||
|
|
4e3de6da21 | ||
|
|
8242022047 | ||
|
|
d582c84f5a | ||
|
|
73abf2bda8 | ||
|
|
d58fe95958 | ||
|
|
8257565f1e | ||
|
|
8bc425049e | ||
|
|
502ef8ee6d | ||
|
|
934a1334d4 | ||
|
|
999fc361d1 | ||
|
|
1aa0cd3020 | ||
|
|
ab9a509ded | ||
|
|
1569432b97 | ||
|
|
44c73e0bb0 | ||
|
|
d719cb2a40 | ||
|
|
650056633f | ||
|
|
326cfa2025 | ||
|
|
42498edb51 | ||
|
|
6ee7341e31 | ||
|
|
92343153de | ||
|
|
09dda94575 | ||
|
|
6c594d4266 | ||
|
|
64dbfad097 | ||
|
|
092d4eacad | ||
|
|
2f51c1cea7 | ||
|
|
f4627c0119 | ||
|
|
a5bce454bc | ||
|
|
2ac16b4feb | ||
|
|
0462cbbcc8 | ||
|
|
d3a4bc7c5d | ||
|
|
87b6be4094 | ||
|
|
964155f6f6 | ||
|
|
389be3a5af | ||
|
|
3a513f7741 | ||
|
|
4762cba5b8 | ||
|
|
58f06fec29 | ||
|
|
d8ec55f206 | ||
|
|
1c21aecdcb | ||
|
|
4db83fd42b | ||
|
|
a177e0865c | ||
|
|
c20fd451a8 | ||
|
|
15949b11d8 | ||
|
|
3048d6753a | ||
|
|
7fc086e792 | ||
|
|
3046b4d707 | ||
|
|
4d388174a5 | ||
|
|
bda8ebc88d | ||
|
|
ae90e14b49 | ||
|
|
55f5eefb3f | ||
|
|
3ddc3f1f53 | ||
|
|
080a3574e9 | ||
|
|
50fd4f6c3b | ||
|
|
676373d32a | ||
|
|
e68f0c1ad0 | ||
|
|
d4bbd9569f | ||
|
|
db6856ef47 | ||
|
|
7fa2427eb7 | ||
|
|
2d889bca8b | ||
|
|
6f8d84dbc3 | ||
|
|
045be30ab5 | ||
|
|
153f7fed30 | ||
|
|
5d71f521a1 | ||
|
|
2a74fb3cdc | ||
|
|
18498c11ea | ||
|
|
ca12daceac | ||
|
|
a2e8b3ffb4 | ||
|
|
6a4489701c | ||
|
|
c26817bfbd | ||
|
|
402bd85cc9 | ||
|
|
c4da765b71 | ||
|
|
0c0d9ad583 | ||
|
|
29afd4c7fb | ||
|
|
415e2e4038 | ||
|
|
f466eb0775 | ||
|
|
9afcd28ee6 | ||
|
|
f81c3fcc57 | ||
|
|
157fc269a3 | ||
|
|
4f5390a40d | ||
|
|
7899b11cb1 | ||
|
|
669990ddd1 | ||
|
|
e4f0c5f788 | ||
|
|
6820316a92 | ||
|
|
20f6e77a72 | ||
|
|
2cee8b9ed7 | ||
|
|
ba4f9cc7be | ||
|
|
4d9515ea7c | ||
|
|
9758c83067 | ||
|
|
31ec58a747 | ||
|
|
2c4a2aa320 | ||
|
|
e4c69e609b | ||
|
|
e007f901f8 | ||
|
|
0943b37e69 | ||
|
|
d65daf9f8f | ||
|
|
fd7c47bb91 | ||
|
|
4470c5fec8 | ||
|
|
081e03ddc0 | ||
|
|
c4b5638538 | ||
|
|
c2825d0346 | ||
|
|
130da0b0b0 | ||
|
|
7fcd9e553a | ||
|
|
8ecf60f515 | ||
|
|
3b48647c21 | ||
|
|
09ed6afa51 | ||
|
|
3ae1b271ed | ||
|
|
5fdaf18860 | ||
|
|
95982a1c3c | ||
|
|
3602260228 | ||
|
|
753edc4e1c | ||
|
|
b6ba411800 | ||
|
|
084914dfdf | ||
|
|
4972815427 | ||
|
|
e6671137cd | ||
|
|
16164afac9 | ||
|
|
918ac8834a | ||
|
|
03b83fb293 | ||
|
|
2e943c8a1d | ||
|
|
2ca8dcc896 | ||
|
|
84f73d952b | ||
|
|
111bab9c27 | ||
|
|
547738f354 | ||
|
|
f95218a616 | ||
|
|
1c7849239c | ||
|
|
1f09021a4a | ||
|
|
caa4594972 | ||
|
|
b6dd727ea3 | ||
|
|
9876d4b554 | ||
|
|
f6b1ea4990 | ||
|
|
3a29cf1d63 | ||
|
|
f61e10589e | ||
|
|
14c4658425 | ||
|
|
82da68b23e | ||
|
|
404b804616 | ||
|
|
9c6b50367d | ||
|
|
2234680bf6 | ||
|
|
5029fc62e7 | ||
|
|
2cf8eed156 | ||
|
|
ab84278515 | ||
|
|
c318e1c07f | ||
|
|
9aadf99d39 | ||
|
|
bc9e566e38 | ||
|
|
7ec6c6f214 | ||
|
|
d2a33177a7 | ||
|
|
7918bd4cc4 | ||
|
|
a89ce4375b | ||
|
|
553f5d16cf | ||
|
|
420c570b09 | ||
|
|
d99e57fb68 | ||
|
|
9aec757040 | ||
|
|
7cbf772db5 | ||
|
|
70e6bc7825 | ||
|
|
63d1401f0e | ||
|
|
3908736fd9 | ||
|
|
e7a5b8b6ec | ||
|
|
4628a69c1d | ||
|
|
e45b81b8a2 | ||
|
|
ef7be984ac | ||
|
|
290f28394c | ||
|
|
d0cbc9c46a | ||
|
|
4db4ce29b3 | ||
|
|
daee43f7a1 | ||
|
|
c82e6509d6 | ||
|
|
d21d59fdee | ||
|
|
14d9bc8d81 | ||
|
|
c3d8bc31e9 | ||
|
|
61d0555fe5 | ||
|
|
106d565ffd | ||
|
|
716a2635eb | ||
|
|
5d2f5ac6eb | ||
|
|
c2193e9844 | ||
|
|
c501adc0f9 | ||
|
|
7954f94868 | ||
|
|
3fad54cefe | ||
|
|
54e667ed2b | ||
|
|
ce1acaa6fb | ||
|
|
2a730dc94a | ||
|
|
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 |
2
AUTHORS
2
AUTHORS
@@ -1,4 +1,4 @@
|
||||
Copyright 2008 - 2015 by Phoronix Media.
|
||||
Copyright 2008 - 2018 by Phoronix Media.
|
||||
|
||||
Lead Architects:
|
||||
|
||||
|
||||
26
README.md
26
README.md
@@ -1,8 +1,8 @@
|
||||
# Phoronix Test Suite 6.0.0
|
||||
# Phoronix Test Suite 8.0.0m5
|
||||
http://www.phoronix-test-suite.com/
|
||||
|
||||
The **Phoronix Test Suite** is the most comprehensive testing and benchmarking
|
||||
platform available for Linux, Solaris, Mac OS X, and BSD operating systems. The
|
||||
platform available for Linux, Solaris, 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
|
||||
@@ -27,7 +27,7 @@ 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
|
||||
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
|
||||
@@ -46,9 +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
|
||||
@@ -61,11 +61,11 @@ 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.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
|
||||
(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
|
||||
@@ -76,16 +76,16 @@ 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.
|
||||
`phoronix-test-suite system-info`.
|
||||
|
||||
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
|
||||
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.
|
||||
`phoronix-test-suite/documentation/` directory or via
|
||||
<http://www.phoronix-test-suite.com/documentation/>. 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 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, 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,7 +23,7 @@
|
||||
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 deploy/deb-package/build-package-deb.php\n";
|
||||
echo "Example: php deploy/deb-package/build-package-deb.php\n";
|
||||
exit(0);
|
||||
}
|
||||
if(!is_executable('/usr/bin/dpkg'))
|
||||
@@ -63,8 +63,8 @@ $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";
|
||||
$control_file .= "Recommends: build-essential\n";
|
||||
$control_file .= "Depends: php-cli|php5-cli,php5-cli|php-xml\n";
|
||||
$control_file .= "Recommends: build-essential, php-gd|php5-gd\n";
|
||||
$control_file .= "Maintainer: Phoronix Media <trondheim-pts@phoronix-test-suite.com>\n";
|
||||
$control_file .= "Description: An Automated, Open-Source Testing Framework\n " . @str_replace("\n", " ", file_get_contents('pts-core/static/short-description.txt')) . "\n";
|
||||
$control_file .= "Homepage: http://www.phoronix-test-suite.com/ \n";
|
||||
|
||||
@@ -12,6 +12,7 @@ Section "Device"
|
||||
Option "Virtualheads" "1"
|
||||
Option "Vsync" "0"
|
||||
Option "SwapbuffersWait" "0"
|
||||
Option "DRI" "3"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
|
||||
@@ -2,6 +2,7 @@ Section "Device"
|
||||
Identifier "Device0"
|
||||
Driver "radeon"
|
||||
Option "SwapBuffersWait" "0"
|
||||
Option "DRI "3"
|
||||
EndSection
|
||||
|
||||
Section "Monitor"
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
# 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
|
||||
@@ -1,20 +0,0 @@
|
||||
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."
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
run_benchmark() {
|
||||
chlp benchmark-start || true
|
||||
|
||||
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
|
||||
|
||||
phoronix-test-suite batch-run $params
|
||||
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
|
||||
chlp benchmark-finish || true
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/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
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/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 +0,0 @@
|
||||
custom
|
||||
@@ -1,18 +0,0 @@
|
||||
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
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
<?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>
|
||||
@@ -1,47 +0,0 @@
|
||||
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"
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/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 +0,0 @@
|
||||
phoronix-common
|
||||
@@ -1 +0,0 @@
|
||||
phoronix-common
|
||||
@@ -1,175 +0,0 @@
|
||||
#!/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
|
||||
|
||||
# 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 +0,0 @@
|
||||
phoronix-common
|
||||
@@ -1 +0,0 @@
|
||||
phoronix-common
|
||||
@@ -1 +0,0 @@
|
||||
phoronix-common
|
||||
@@ -1,6 +0,0 @@
|
||||
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 +0,0 @@
|
||||
15
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/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})
|
||||
6
deploy/phoromatic-rcd/phoromatic-client
Executable file
6
deploy/phoromatic-rcd/phoromatic-client
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
# PROVIDE: phoromatic-client
|
||||
# REQUIRE: LOGIN
|
||||
|
||||
/usr/bin/phoronix-test-suite phoromatic.connect
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2017, Phoronix Media
|
||||
Copyright (C) 2008, Andrew Schofield
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -91,7 +91,7 @@ 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-" . $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("mv -f /tmp/pts-rpm-builder/.rpmmacros " . getenv('HOME') . ' 2>&1');
|
||||
shell_exec("rm -rf /tmp/pts-rpm-builder");
|
||||
|
||||
?>
|
||||
|
||||
@@ -10,10 +10,15 @@ PHORONIX TEST SUITE PUBLIC TODO LIST:
|
||||
- Possibly restore "weighted suites" [http://phorogit.com/index.php?p=phoronix-test-suite.git&a=commitdiff&h=548e5c073cc90d92ac3f382ca4933d5f556e78c6&hb=444441f9be866f51920e0ad8ca3909951b4d90c5]
|
||||
- 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
|
||||
|
||||
- Figure out why TestClientVersion in result file XML is missing after adding multiple systems, the previous ones are then blank
|
||||
- Restore the ReferenceID support in the results XML
|
||||
- Improve titles on tables like in: http://openbenchmarking.org/result/1603172-GA-AMDTONGA973
|
||||
|
||||
### PTS-GRAPH ###
|
||||
|
||||
@@ -23,10 +28,8 @@ PHORONIX TEST SUITE PUBLIC TODO LIST:
|
||||
|
||||
- Shorten long change-logs on test profile pages - e.g. http://openbenchmarking.org/test/pts/hpcc
|
||||
|
||||
### 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 / TeraSort
|
||||
- LATT Latency Tests [git://git.kernel.dk/latt.git]
|
||||
- QMC Beaver [http://qmcbeaver.sourceforge.net/]
|
||||
@@ -45,21 +48,19 @@ PHORONIX TEST SUITE PUBLIC TODO LIST:
|
||||
- http://sourceforge.net/projects/ffsb/
|
||||
- http://www.ratgpu.com/
|
||||
- http://panthema.net/2013/pmbw/
|
||||
- http://www.thedarkmod.com/
|
||||
- http://code.google.com/p/lz4/
|
||||
- http://parsec.cs.princeton.edu/parsec3-doc.htm
|
||||
- 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://gooseberry.blender.org/gooseberry-production-benchmark-file/
|
||||
- https://github.com/gormanm/mmtests
|
||||
- https://github.com/soumith/convnet-benchmarks
|
||||
- http://apt.cs.manchester.ac.uk/projects/PAMELA/tools/SLAMBench/
|
||||
- https://haasn.xyz/posts/2017-10-05-how-to-benchmark-mpvs-raw-throughput.html
|
||||
|
||||
### WEB SOCKET / HTML5 USER INTERFACE WORK ###
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "6.0.0"
|
||||
.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "8.0.0m5"
|
||||
.SH NAME
|
||||
phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source platform for performing testing and performance evaluation.
|
||||
.SH SYNOPSIS
|
||||
@@ -6,14 +6,17 @@ 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, 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] ...
|
||||
.B force-install [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will force the installation (or re-installation) of a test or suite. The arguments and process is similar to the install option but even if the test is installed, the entire installation process will automatically be executed. This option is generally used when debugging a test installation problem.
|
||||
.TP
|
||||
.B install [Test | Suite | OpenBenchmarking 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.
|
||||
.TP
|
||||
.B install-dependencies [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B install-dependencies [Test | Suite | OpenBenchmarking 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
|
||||
@@ -26,13 +29,16 @@ This option will permanently remove a installed test by the Phoronix Test Suite.
|
||||
.B auto-compare
|
||||
This option will autonomously determine the most relevant test(s) to run for any selected sub-system(s). The tests to run are determined via OpenBenchmarking.org integration with the global results pool. Related test results from OpenBenchmarking.org are also merged to provide a straight-forward and effective means of carrying out a system comparison. If wishing to find comparable results for any particular test profile(s), simply pass the test profile names as additional arguments to this command.
|
||||
.TP
|
||||
.B benchmark [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B benchmark [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will install the selected test(s) (if needed) and will proceed to run the test(s). This option is equivalent to running phoronix-test-suite with the install option followed by the run option. Multiple arguments can be supplied to run additional tests at the same time and save the results into one file.
|
||||
.TP
|
||||
.B estimate-run-time [Test | Suite | OpenBenchmarking ID | Test Result]
|
||||
This option will provide estimates for test run-time / length.
|
||||
.TP
|
||||
.B finish-run [Test Result]
|
||||
This option can be used if a test run had not properly finished running all tests within a saved results file. Using this option when specifying a saved results file where all tests had not completed will attempt to finish testing on the remaining tests where there are missing results.
|
||||
.TP
|
||||
.B run [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will run the selected test(s).
|
||||
.TP
|
||||
.B run-random-tests
|
||||
@@ -41,29 +47,29 @@ 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] ...
|
||||
.B stress-run [Test | Suite | OpenBenchmarking 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] ...
|
||||
.B batch-benchmark [Test | Suite | OpenBenchmarking 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.
|
||||
.TP
|
||||
.B batch-install [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B batch-install [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
If you wish to run the install process in the Phoronix Test Suite batch mode but do not wish to run any tests at this time. Running the install process in the batch mode will use the default values and not prompt the user of any possible options, to ensure the process is fully automated.
|
||||
.TP
|
||||
.B batch-run [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B batch-run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option and its arguments are equivalent to the run option, but the process will be run in the Phoronix Test Suite batch mode.
|
||||
.TP
|
||||
.B batch-setup
|
||||
This option is used to configure the batch mode options for the Phoronix Test Suite, which is subsequently written to the user configuration file. Among the options are whether to automatically upload the test results to OpenBenchmarking.org and prompting for the saved file name.
|
||||
.TP
|
||||
.B default-benchmark [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B default-benchmark [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will install the selected test(s) (if needed) and will proceed to run the test(s) in the defaults mode. This option is equivalent to running phoronix-test-suite with the install option followed by the default-run option.
|
||||
.TP
|
||||
.B default-run [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B default-run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will run the selected test(s). The name of the test or suite must be supplied or the OpenBenchmarking.org ID or saved local file name. Multiple arguments can be supplied to run additional tests at the same time and save the results in a suite-like fashion. Unlike the normal run option, the default-run will not prompt the user to select from the available test options but will instead use the default options as automatically set by pts-core or the test profile. Use batch-run to automatically test all of the available options.
|
||||
.TP
|
||||
.B internal-run [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.B internal-run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option and its arguments pre-set the Phoronix Test Suite batch run mode with sane values for carrying out benchmarks in a semi-automated manner and without uploading any of the result data to the public OpenBenchmarking.org.
|
||||
.TP
|
||||
.SH OPENBENCHMARKING.ORG
|
||||
@@ -79,9 +85,6 @@ This option will attempt to cache the test profile/suite meta-data from OpenBenc
|
||||
.B openbenchmarking-changes
|
||||
This option will list recent changes to test profiles of enabled OpenBenchmarking.org repositories.
|
||||
.TP
|
||||
.B openbenchmarking-launcher
|
||||
This option is called automatically with the .openbenchmarking MIME file extension support for launching OpenBenchmarking.org operations.
|
||||
.TP
|
||||
.B openbenchmarking-login
|
||||
This option is used for controlling your Phoronix Test Suite client options for OpenBechmarking.org and syncing the client to your account.
|
||||
.TP
|
||||
@@ -91,6 +94,9 @@ This option is used for refreshing the stored OpenBenchmarking.org repostory inf
|
||||
.B openbenchmarking-repositories
|
||||
This option will list the OpenBenchmarking.org repositories currently linked to this Phoronix Test Suite client instance.
|
||||
.TP
|
||||
.B openbenchmarking-uploads
|
||||
This option will list any recent test result uploads from the system's IP address to OpenBenchmarking.org.
|
||||
.TP
|
||||
.B upload-result [Test Result]
|
||||
This option is used for uploading a test result to OpenBenchmarking.org.
|
||||
.TP
|
||||
@@ -101,15 +107,18 @@ This option can be used for uploading a test profile to your account on OpenBenc
|
||||
This option can be used for uploading a test suite to your account on OpenBenchmarking.org. By uploading your test suite to OpenBenchmarking.org, others are then able to browse and access this test suite for easy distribution.
|
||||
.TP
|
||||
.SH SYSTEM
|
||||
.B detailed-system-info
|
||||
Display detailed information about the installed system hardware and software information as detected by the Phoronix Test Suite Phodevi Library.
|
||||
.TP
|
||||
.B diagnostics
|
||||
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
|
||||
.TP
|
||||
.B interactive
|
||||
A simple text-driven interactive interface to the Phoronix Test Suite.
|
||||
.TP
|
||||
.B php-conf
|
||||
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
|
||||
.TP
|
||||
.B shell
|
||||
A simple text-driven shell interface / helper to the Phoronix Test Suite. Ideal for those that may be new to the Phoronix Test Suite
|
||||
.TP
|
||||
.B system-info
|
||||
Display the installed system hardware and software information as detected by the Phoronix Test Suite Phodevi Library.
|
||||
.TP
|
||||
@@ -117,14 +126,14 @@ Display the installed system hardware and software information as detected by th
|
||||
Display the installed system hardware and software sensors in real-time as detected by the Phoronix Test Suite Phodevi Library.
|
||||
.TP
|
||||
.SH INFORMATION
|
||||
.B info [Test | Suite | OpenBenchmarking.org ID | Test Result]
|
||||
.B info [Test | Suite | OpenBenchmarking ID | Test Result]
|
||||
This option will show details about the supplied test, suite, virtual suite, or result file.
|
||||
.TP
|
||||
.B list-available-suites
|
||||
This option will list all test suites that are available from the enabled OpenBenchmarking.org repositories.
|
||||
.TP
|
||||
.B list-available-tests
|
||||
This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories.
|
||||
This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories where supported on the system and are of a verified state.
|
||||
.TP
|
||||
.B list-available-virtual-suites
|
||||
This option will list all available virtual test suites that can be dynamically created based upon the available tests from enabled OpenBenchmarking.org repositories.
|
||||
@@ -141,6 +150,9 @@ This option will list all test profiles that are currently installed on the syst
|
||||
.B list-missing-dependencies
|
||||
This option will list all of the packages / external test dependencies that are missing from the system that the Phoronix Test Suite may potentially need by select test profiles.
|
||||
.TP
|
||||
.B list-not-installed-tests
|
||||
This option will list all test profiles that are supported and available but presently NOT installed on the system.
|
||||
.TP
|
||||
.B list-possible-dependencies
|
||||
This option will list all of the packages / external test dependencies that are are potentially used by the Phoronix Test Suite.
|
||||
.TP
|
||||
@@ -153,21 +165,33 @@ This option will list various details about installed tests and their usage.
|
||||
.B list-unsupported-tests
|
||||
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
|
||||
.B search
|
||||
This option provides command-line searching abilities for test profiles / test suites / test results. The search query can be passed as a parameter otherwise the user is prompted to input their search query..
|
||||
.TP
|
||||
.SH ASSET CREATION
|
||||
.B debug-benchmark [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
.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 create-test-profile
|
||||
This option can be used for creating a Phoronix Test Suite test profile by answering questions about the test for constructing the test profile XML meta-data and handling other boiler-plate basics for getting started in developing new tests.
|
||||
.TP
|
||||
.B debug-benchmark [Test | Suite | OpenBenchmarking 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] ...
|
||||
.B debug-install [Test | Suite | OpenBenchmarking 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-test-download-links [Test | Suite | OpenBenchmarking.org ID | Test Result]
|
||||
.B debug-result-parser [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option is intended for use by test profile writers and is used for debugging a result parser. No test execution is done, but there must already be PTS-generated .log files present within the test's installation directory.
|
||||
.TP
|
||||
.B debug-test-download-links [Test | Suite | OpenBenchmarking 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] ...
|
||||
.B download-test-files [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This will download the selected test file(s) to the Phoronix Test Suite download cache but will not install the tests.
|
||||
.TP
|
||||
.B force-install [Test | Suite | OpenBenchmarking.org ID | Test Result] ...
|
||||
This option will force the installation (or re-installation) of a test or suite. The arguments and process is similar to the install option but even if the test is installed, the entire installation process will automatically be executed. This option is generally used when debugging a test installation problem.
|
||||
.B inspect-test-profile [Test]
|
||||
This option can be used for inspecting a Phoronix Test Suite test profile with providing inside details on test profiles for debugging / evaluation / learning purposes.
|
||||
.TP
|
||||
.B result-file-to-suite [Test Result]
|
||||
This option will guide the user through the process of generating their own test suite, which they can then run, that is based upon an existing test results file.
|
||||
@@ -175,13 +199,16 @@ This option will guide the user through the process of generating their own test
|
||||
.B validate-result-file
|
||||
This option can be used for validating a Phoronix Test Suite result file as being compliant against the OpenBenchmarking.org specification.
|
||||
.TP
|
||||
.B validate-test-profile
|
||||
.B validate-test-profile [Test]
|
||||
This option can be used for validating a Phoronix Test Suite test profile as being compliant against the OpenBenchmarking.org specification.
|
||||
.TP
|
||||
.B validate-test-suite
|
||||
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 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 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
|
||||
@@ -227,13 +254,15 @@ This option will read a saved test results file and output the system hardware a
|
||||
.B show-result [Test Result]
|
||||
Open up the test results in the Phoronix Test Suite Result Viewer or on OpenBenchmarking.org.
|
||||
.TP
|
||||
.SH RESULT ANALYTICS
|
||||
.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.
|
||||
.B winners-and-losers [Test Result]
|
||||
This option is used if you wish to analyze a result file to see which runs produced the most wins/losses of those result identifiers in the saved file.
|
||||
.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.
|
||||
.B commands
|
||||
This option will display a short list of possible Phoronix Test Suite commands.
|
||||
.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.
|
||||
@@ -241,35 +270,16 @@ This option is used during the development of the Phoronix Test Suite software f
|
||||
.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 user-config-reset
|
||||
This option can be used for resetting the Phoronix Test Suite user configuration file to its default state.
|
||||
.TP
|
||||
.B user-config-set
|
||||
This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.
|
||||
This option will display a list of available Phoronix Test Suite commands and possible parameter types.
|
||||
.TP
|
||||
.B version
|
||||
This option will display the Phoronix Test Suite client version.
|
||||
.TP
|
||||
.SH WEB / GUI SUPPORT
|
||||
.B gui
|
||||
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 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. This function checks the PTS_WEBSOCKET_PORT and PTS_WEBSOCKET_SERVER environment variables for configuration.
|
||||
.TP
|
||||
.SH MODULES
|
||||
.B auto-load-module
|
||||
This option can be used for easily adding a module to the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.
|
||||
.TP
|
||||
.B list-modules
|
||||
This option will list all of the available Phoronix Test Suite modules on this system.
|
||||
.TP
|
||||
@@ -282,9 +292,32 @@ 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
|
||||
.B unload-module
|
||||
This option can be used for easily removing a module from the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what modules are automatically loaded on start-up of the Phoronix Test Suite.
|
||||
.TP
|
||||
.SH USER CONFIGURATION
|
||||
.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 network-info
|
||||
This option will print information detected by the Phoronix Test Suite around the system's network configuration.
|
||||
.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 user-config-reset
|
||||
This option can be used for resetting the Phoronix Test Suite user configuration file to its default state.
|
||||
.TP
|
||||
.B user-config-set
|
||||
This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.
|
||||
.TP
|
||||
.SH WEB / GUI SUPPORT
|
||||
.B gui
|
||||
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. THIS FEATURE IS CURRENTLY EXPERIMENTAL AND NO LONGER ACTIVE DEVELOPMENT. See Phoronix Test Suite Phoromatic as an alternative web UI approach.
|
||||
.TP
|
||||
.SH PHOROMATIC
|
||||
.B g
|
||||
n
|
||||
.B n
|
||||
_
|
||||
.TP
|
||||
.SH SEE ALSO
|
||||
.B Websites:
|
||||
@@ -299,5 +332,5 @@ http://www.phoronix.com/
|
||||
.br
|
||||
http://www.phoronix.com/forums/
|
||||
.SH AUTHORS
|
||||
Copyright 2008 - 2015 by Phoronix Media, Michael Larabel.
|
||||
Copyright 2008 - 2018 by Phoronix Media, Michael Larabel.
|
||||
.TP
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/xsl" href="xsl/pts-definitions-viewer.xsl" ?>
|
||||
<PhoronixTestSuite>
|
||||
<Definitions>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_MATCH_TO_TEST_ARGUMENTS</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/MatchToTestArguments</Value>
|
||||
<Description>If there are multiple ResulsParser sections within the XML file and this tag is set, the Phoronix Test Suite will see if this string appears within the PTS_TEST_ARGUMENTS in determining if this is the ResultsParser section to use for parsing the results.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_TEMPLATE</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/OutputTemplate</Value>
|
||||
<Description>The section of the test output to look for the result(s) within.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_RESULT_KEY</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/ResultKey</Value>
|
||||
<Description>The key to look for when parsing the OutputTemplate to find where the result should be stored. If this tag is not implemented, the default key will be used.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_LINE_HINT</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/LineHint</Value>
|
||||
<Description>A unique string to search the test result output for to indicate this is the line that contains the result value.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_LINE_BEFORE_HINT</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/LineBeforeHint</Value>
|
||||
<Description>The LineBeforeHint tag is similar to LineHint but is used to indicate the line before where the test results appear, in the event the LineHint tag cannot be used reliably.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_LINE_AFTER_HINT</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/LineAfterHint</Value>
|
||||
<Description>The LineAfterHint tag is similar to LineBeforeHint but is used to indicate the line after where the test results appear, in the event the LineHint or LineBeforeHint tags cannot be used reliably.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_RESULT_BEFORE_STRING</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/ResultBeforeString</Value>
|
||||
<Description>The ResultBeforeString tag is optional and can be used if there is a consistient string following the reporting of the result, in the event the result's location is not static within the line string.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_STRIP_FROM_RESULT</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/StripFromResult</Value>
|
||||
<Description>Any string that should be searched for and removed from the result value anywhere within the value string.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_STRIP_RESULT_POSTFIX</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/StripResultPostfix</Value>
|
||||
<Description>This is similar to the StripFromResult tag but will only look at the end of the value string for this string to be removed. (I.e. if a unit such as 'ms' or 'FPS' is appended to the result by the test without a space.)</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_MULTI_MATCH</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/MultiMatch</Value>
|
||||
<Description>If the result value should be found multiple times within the result file and then some mathematical operation carried out, it should be set using this tag. Setting the value to AVERAGE will find all matches and then calculate the average value based upon matches. While not required, setting the value to NONE will use the default code-path of only looking for one result value.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_DIVIDE_BY</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/DivideResultBy</Value>
|
||||
<Description>If the result value should be divided by some constant (to convert the result to a different unit), the value should be supplied in this tag.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_RESULTS_PARSER_MULTIPLY_BY</Name>
|
||||
<Value>PhoronixTestSuite/ResultsParser/MultiplyResultBy</Value>
|
||||
<Description>If the result value should be multiplied by some constant (to convert the result to a different unit), the value should be supplied in this tag.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_IMAGE_PARSER_MATCH_TO_TEST_ARGUMENTS</Name>
|
||||
<Value>PhoronixTestSuite/ImageParser/MatchToTestArguments</Value>
|
||||
<Description>If there are multiple ResulsParser sections within the XML file and this tag is set, the Phoronix Test Suite will see if this string appears within the PTS_TEST_ARGUMENTS in determining if this is the ResultsParser section to use for parsing the results.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_IMAGE_PARSER_SOURCE_IMAGE</Name>
|
||||
<Value>PhoronixTestSuite/ImageParser/SourceImage</Value>
|
||||
<Description>If the test profile is for an image quality comparison, the ImageFile tag should contain the file/path of the source file.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_IMAGE_PARSER_IMAGE_X</Name>
|
||||
<Value>PhoronixTestSuite/ImageParser/ImageX</Value>
|
||||
<Description>If the test profile is for an image quality comparison, the ImageX should be the X coordinate of where to begin cropping the source file.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_IMAGE_PARSER_IMAGE_Y</Name>
|
||||
<Value>PhoronixTestSuite/ImageParser/ImageY</Value>
|
||||
<Description>If the test profile is for an image quality comparison, the ImageX should be the Y coordinate of where to begin cropping the source file.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_IMAGE_PARSER_IMAGE_WIDTH</Name>
|
||||
<Value>PhoronixTestSuite/ImageParser/ImageWidth</Value>
|
||||
<Description>If the test profile is for an image quality comparison, the ImageWidth should be the produced image width.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_IMAGE_PARSER_IMAGE_HEIGHT</Name>
|
||||
<Value>PhoronixTestSuite/ImageParser/ImageHeight</Value>
|
||||
<Description>If the test profile is for an image quality comparison, the ImageHeight should be the produced image height.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_MONITOR_PARSER_SENSOR</Name>
|
||||
<Value>PhoronixTestSuite/SystemMonitor/Sensor</Value>
|
||||
<Description>If the test profile is to monitor any system sensors during the testing process, the name of the sensor (via the Phodevi name; i.e. cpu.usage) should be supplied. While not a Phodevi sensor, if passing sys.time as the sensor value, the time it takes to execute the test will be recorded.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_MONITOR_PARSER_FREQUENCY</Name>
|
||||
<Value>PhoronixTestSuite/SystemMonitor/PollingFrequency</Value>
|
||||
<Description>If the test profile is to monitor any system sensors during the testing process, how often the matched sensor is to be polled (in seconds) should be supplied. Floating values are supported.</Description>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_MONITOR_PARSER_REPORT</Name>
|
||||
<Value>PhoronixTestSuite/SystemMonitor/Report</Value>
|
||||
<Description>If the test profile is to monitor any system sensors during the testing process, this tag provides how the monitored results should be reported. Supported values include MAX, MIN, AVG, and ALL.</Description>
|
||||
</Define>
|
||||
</Definitions>
|
||||
</PhoronixTestSuite>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet type="text/xsl" href="xsl/pts-definitions-viewer.xsl" ?>
|
||||
<PhoronixTestSuite>
|
||||
<Definitions>
|
||||
<Define>
|
||||
<Name>P_DOWNLOADS_PACKAGE_URL</Name>
|
||||
<Value>PhoronixTestSuite/Downloads/Package/URL</Value>
|
||||
<Description>The URL(s) to download the package from. If multiple URLs are supplied (delimited by a comma), the Phoronix Test Suite will randomly choose one URL but will fallback to other URLs if one fails either due to the file missing, the MD5 changed, or server inaccessability.</Description>
|
||||
<Required>YES</Required>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_DOWNLOADS_PACKAGE_MD5</Name>
|
||||
<Value>PhoronixTestSuite/Downloads/Package/MD5</Value>
|
||||
<Description>The MD5 check-sum for the file to be downloaded. This is to ensure file integrity. If no string is supplied, no MD5 check will be performed.</Description>
|
||||
<Required>RECOMMENDED</Required>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_DOWNLOADS_PACKAGE_FILENAME</Name>
|
||||
<Value>PhoronixTestSuite/Downloads/Package/FileName</Value>
|
||||
<Description>If this tag is set, once the file is downloaded it will be renamed to this value. If this tag is not set, the remote file-name will be used.</Description>
|
||||
<Required>NO</Required>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_DOWNLOADS_PACKAGE_FILESIZE</Name>
|
||||
<Value>PhoronixTestSuite/Downloads/Package/FileSize</Value>
|
||||
<Description>The size of the file to be downloaded should be the value of this tag. The FileSize should be an integer that is the number of bytes that makes up the file. This tag is used so that the Phoronix Test Suite can determine the total size of files that need to be downloaded for a given operation.</Description>
|
||||
<Required>RECOMMENDED</Required>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_DOWNLOADS_PACKAGE_PLATFORMSPECIFIC</Name>
|
||||
<Value>PhoronixTestSuite/Downloads/Package/PlatformSpecific</Value>
|
||||
<Description>If this package is just needed on select operating systems / platforms, list them inside this tag and multiple platforms can be delimited by a comma.</Description>
|
||||
<Required>NO</Required>
|
||||
</Define>
|
||||
<Define>
|
||||
<Name>P_DOWNLOADS_PACKAGE_ARCHSPECIFIC</Name>
|
||||
<Value>PhoronixTestSuite/Downloads/Package/ArchitectureSpecific</Value>
|
||||
<Description>If this package is just needed on select system/processor architectures, list them inside this tag and multiple architectures can be delimited by a comma.</Description>
|
||||
<Required>NO</Required>
|
||||
</Define>
|
||||
</Definitions>
|
||||
</PhoronixTestSuite>
|
||||
@@ -1,73 +0,0 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<Title>Phoronix Test Suite - Module Writing</Title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link href="includes/pts-documentation.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="pts_doc_header"><div class="pts_doc_fixed"><a href="http://www.phoronix-test-suite.com/"><div id="pts_doc_logo"></div></a></div></div>
|
||||
<div class="pts_doc_fixed">
|
||||
<div class="pts_doc_notice"><div style="float: left"><a href="index.html"><< Documentation Home</a></div><div style="float: right;">Module Writing</div></div>
|
||||
<div class="pts_doc_main">
|
||||
<!-- PTS AREA -->
|
||||
<h1>Phoronix Test Suite Modules</h1>
|
||||
<div style="width: 1px; height: 20px;"></div>
|
||||
<p>Writing a module for the Phoronix Test Suite allows new functionality to be added
|
||||
without having to extensively learn how pts-core functions. The module framework
|
||||
for the Phoronix Test Suite allows modules to be written as a PHP object. Example PTS modules could include a module to shutdown the
|
||||
screensaver when the Phoronix Test Suite starts up and re-enabling it when the
|
||||
test is over, using sendmail to forward the results to an e-mail address when
|
||||
testing is completed, or writing the current test status to a LCDproc-enabled
|
||||
VFD display.</p>
|
||||
<p>Modules are stored in <em>pts-core/modules/</em>. Loading a
|
||||
module is done by either setting the <em>PTS_MODULES</em> environmental variable
|
||||
with the name of the module (excluding the <em>.php</em> file
|
||||
extension) or by associating a module with a separate environmental variable. The default list of modules to be loaded is stored in <em>~/.phoronix-test-suite/user-config.xml</em>.</p>
|
||||
<p>Note: To run through all of the function calls for a module without needing to run a test,
|
||||
run <em>phoronix-test-suite test-module MODULE_NAME</em>. Additionally, running
|
||||
<em>phoronix-test-suite debug-module MODULE_NAME</em> will yield additional debugging details while
|
||||
executing the same process.</p>
|
||||
<h1>Module</h1>
|
||||
<p>To see all of the functions supported for modules written in PHP, look at <em>pts-core/modules/dummy_module.php</em>
|
||||
and additionally the other .php modules that ship with the Phoronix Test Suite.
|
||||
Additionally, there are several functions written specifically for Phoronix Test
|
||||
Suite modules that make it easier to save files, read files, and provided multi-threading
|
||||
support for modules. The <em>pts_timed_function()</em> makes it possible (and
|
||||
very easy) to thread functions within a module so that at a set interval the defined
|
||||
functions will be called. For example, this support is used heavily within the
|
||||
<em>system_monitor</em> module to poll sensors every X seconds even while there
|
||||
are tests running. These functions can be found within <em>pts-core/objects/pts_module.php</em>.</p>
|
||||
<p>Below is a sample module that times how long it takes to run the Phoronix Test
|
||||
Suite. It would be saved as <em>pts-core/modules/time_me.php</em>.</p>
|
||||
<blockquote><?php<br />
|
||||
class time_me extends pts_module_interface<br />
|
||||
{<br />
|
||||
const module_name = "Time Me!";<br />
|
||||
const module_version = "1.0.0";<br />
|
||||
const module_description = "This is a module that times how long the Phoronix Test Suite runs.";<br />
|
||||
const module_author = "Phoronix Media";<br />
|
||||
<br />
|
||||
static $start_time = NULL;<br />
|
||||
static $end_time = NULL;<br />
|
||||
<br />
|
||||
public static function __startup()<br />
|
||||
{<br />
|
||||
self::$start_time = time();<br />
|
||||
}<br />
|
||||
public static function __shutdown()<br />
|
||||
{<br />
|
||||
self::$end_time = time();<br />
|
||||
<br />
|
||||
$time_elapsed = self::$end_time - self::$start_time;<br />
|
||||
<br />
|
||||
echo "\nThe Phoronix Test Suite Ran For " . $time_elapsed . " Seconds.\n";<br />
|
||||
}<br />
|
||||
}<br />
|
||||
?></blockquote>
|
||||
<p>Then by running <em>PTS_MODULES=time_me phoronix-test-suite benchmark video-extensions</em>,
|
||||
at the end of the test it would print a string similar to: "The Phoronix
|
||||
Test Suite Ran For 52 Seconds."</p>
|
||||
<!-- END OF PTS AREA -->
|
||||
</div></div><div class="pts_doc_fixed"><div class="pts_doc_bottom"><div style="float: left;"><a href="http://www.phoronix-test-suite.com/">Phoronix-Test-Suite.com</a></div><div style="float: right;">Copyright © 2008 by <a href="http://www.phoronix-media.com/">Phoronix Media</a>.</div></div></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,118 +0,0 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<Title>Phoronix Test Suite - A Quick Guide To Writing A Test Profile</Title>
|
||||
<link href="includes/pts-documentation.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="pts_doc_header"><div class="pts_doc_fixed"><a href="http://www.phoronix-test-suite.com/"><div id="pts_doc_logo"></div></a></div></div>
|
||||
<div class="pts_doc_fixed">
|
||||
<div class="pts_doc_notice"><div style="float: left"><a href="index.html"><< Documentation Home</a></div><div style="float: right;">Writing A Test Profile</div></div>
|
||||
<div class="pts_doc_main">
|
||||
<!-- PTS AREA -->
|
||||
<h1>Writing A Test Profile</h1>
|
||||
<p>Writing a test profile for the Phoronix Test Suite is a relatively quick and easy
|
||||
process for anyone familiar with common Linux commands and the basics of XML.
|
||||
To help you understand the design of the Phoronix Test Suite, this guide covers
|
||||
the steps needed to write a testing profile for a very simple application.</p>
|
||||
<p>The first step in the profile writing process is to, well, have a piece of
|
||||
software you'd like to use with the Phoronix Test Suite. This software can be
|
||||
closed-source or open-source and be virtually anything as long as it is compatible
|
||||
with the Linux operating system.</p>
|
||||
<p>For this guide, the piece of software being used for demonstration is just
|
||||
a simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz
|
||||
formula. Below is this sample piece of software intended just for demonstration
|
||||
purposes.</p>
|
||||
<blockquote>#include <iostream><br>
|
||||
#include <math.h></p>
|
||||
<p>int main()<br>
|
||||
{<br>
|
||||
double pi = 0;</p>
|
||||
<p> for(long int i = 1; i <= 87654321; i++)<br>
|
||||
pi += (double) pow(-1, i + 1) / (2 * i - 1);</p>
|
||||
<p> pi *= 4;<br>
|
||||
std::cout << "Done Calculating Pi..." << endl;<br>
|
||||
return 0;<br>
|
||||
}</blockquote>
|
||||
<p>The first step in the actual profile writing process is to name it. If you're
|
||||
looking to ultimately push this profile to be included in the Phoronix Test Suite,
|
||||
its name must be all lower case and consist of just alpha-numeric characters,
|
||||
but can contain dashes (-). A more advanced test profile capability is operating system prefixes, and if using those there is an
|
||||
underscore separating the prefix from the normal profile name. For this sample profile, we're calling it <em>sample-program</em>
|
||||
and the file-name would be <em>sample-program.xml</em>. Our (very basic) profile is showcased
|
||||
below.</p>
|
||||
<blockquote><PhoronixTestSuite><br>
|
||||
<TestProfile><br>
|
||||
<Version>1.1.0</Version><br>
|
||||
<TestType>Processor</TestType><br>
|
||||
<SoftwareType>Utility</SoftwareType><br>
|
||||
<License>FREE</License><br>
|
||||
<Status>PRIVATE</Status><br>
|
||||
<Maintainer>Phoronix Media</Maintainer><br>
|
||||
</TestProfile><br>
|
||||
<TestInformation><br>
|
||||
<Title>Sample Pi Program</Title><br>
|
||||
<TimesToRun>3</TimesToRun><br>
|
||||
<ResultScale>Seconds</ResultScale><br>
|
||||
<Proportion>LIB</Proportion><br>
|
||||
<Description>A simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. This test can be used for showcasing how to write a basic test profile.</Description><br>
|
||||
<ExternalDependencies>build-utilities</ExternalDependencies><br>
|
||||
</TestInformation><br>
|
||||
</PhoronixTestSuite></blockquote>
|
||||
<p>This XML profile is what interfaces with the Phoronix Test Suite and provides
|
||||
all the needed information about the test as well as other attributes. For a complete
|
||||
listing of all the supported profile options, look at the specification files
|
||||
in the documentation folder. In the case of <em>sample-program</em>, it lets the Phoronix
|
||||
Test Suite know that it's composed of free software, is designed to test the processor,
|
||||
is intended for private use only, and this profile is maintained by Phoronix Media.
|
||||
In addition, it tells the Phoronix Test Suite to execute this program three times
|
||||
and as no result quantifier is set, the average of the three runs will be taken.
|
||||
This profile also tells the Phoronix Test Suite that the generic <em>build-utilities</em>
|
||||
package is needed, which will attempt to ensure that GCC and the standard development
|
||||
utilities/libraries are installed on your Linux distribution. This is needed as
|
||||
the C++ source-code will need to be built from source.</p>
|
||||
<p>The next step is to write the <em>install.sh</em> file, which once called by the Phoronix
|
||||
Test Suite is intended to install the test locally for benchmarking purposes.
|
||||
The <em>install.sh</em> file is technically optional, but is generally used by all tests. Note: The first argument supplied to
|
||||
the install script is the directory that the test needs to be installed to. The
|
||||
<em>install.sh</em> file (in our instance) is to be placed inside <em>pts/test-resources/sample-program</em>.
|
||||
Below is the <em>install.sh</em> for the <em>sample-program</em>.</p>
|
||||
<blockquote>#!/bin/sh<br /><br />
|
||||
tar -xjf sample-pi-program-1.tar.bz2<br />
|
||||
g++ sample-pi-program.cpp -o sample-pi-program<br />
|
||||
echo "#!/bin/sh<br />
|
||||
\$TIMER_START<br />
|
||||
./sample-pi-program 2>&1<br />
|
||||
\$TIMER_STOP<br />
|
||||
" > sample-program<br>
|
||||
chmod +x sample-program</blockquote>
|
||||
<p>Phoronix Test Suite 1.4 and later provides an integrated multi-platform micro-timer framework that provides the <em>$TIMER_START</em> and <em>$TIMER_STOP</em> functionality.</p>
|
||||
<p>This install file builds the code with GCC, and then creates a small script
|
||||
that is run by the Phoronix Test Suite, which times how long it takes to run the
|
||||
software. Where does the source-code come into play? Well, it needs to be downloaded
|
||||
now from a web server. The Phoronix Test Suite has built-in support for managing
|
||||
downloads from multiple servers in a random over, fall-back support if one mirror
|
||||
is done, and verification of MD5 check-sums. Below is the <em>downloads.xml</em> file for
|
||||
<em>sample-program</em> that covers all of this.</p>
|
||||
<blockquote><PhoronixTestSuite><br>
|
||||
<Downloads><br>
|
||||
<Package><br>
|
||||
<URL>http://www.phoronix-test-suite.com/benchmark-files/sample-pi-program.cpp</URL><br>
|
||||
<MD5>e90fb790df8d1544696a1439c9b5bd8d</MD5><br>
|
||||
</Package><br>
|
||||
</Downloads><br>
|
||||
</PhoronixTestSuite></blockquote>
|
||||
<p>The final step in the profile writing process is to write a parser to strip
|
||||
all information but the reported result from the standard output. The standard
|
||||
output is submitted to <em>parse-results.sh</em> or <em>parse-results.php</em> as the first argument
|
||||
in quotes or using <em>$LOG_FILE</em> if the test profile writes to that variable's location.</p>
|
||||
<p>If the test profile uses the integrated micro-timer framework with <em>$TIMER_START</em> and <em>$TIMER_STOP</em> but no parse-results file is provided, the Phoronix Test Suite will automatically use the difference between <em>$TIMER_START</em> and <em>$TIMER_STOP</em> and use that as the test result. This is the time (in seconds) that elapsed between starting and stopping the timer.</p>
|
||||
<p>After that, with all the files in their correct locations, just run: <em>phoronix-test-suite
|
||||
benchmark sample-program</em>. The Phoronix Test Suite should now handle the rest by
|
||||
installing the test, running the test, and recording the results (if you so choose).
|
||||
There is no additional work that needs to be done for the results to be recorded
|
||||
in the PTS Results Viewer or even reporting the results to OpenBenchmarking.org.</p>
|
||||
<p><strong>For more information, visit <a href="http://www.phoronix-test-suite.com/">Phoronix-Test-Suite.com</a> and read the <a href="index.html">included documentation</a>. It should also be of great help to just look at the existing test profiles, which can be found inside the <em>phoronix-test-suite/pts/</em> folder with the <em>test-resources</em> and <em>test-profiles</em> sub-directories.</strong></p>
|
||||
<!-- END OF PTS AREA -->
|
||||
</div></div><div class="pts_doc_fixed"><div class="pts_doc_bottom"><div style="float: left;"><a href="http://www.phoronix-test-suite.com/">Phoronix-Test-Suite.com</a></div><div style="float: right;">Copyright © 2008 by <a href="http://www.phoronix-media.com/">Phoronix Media</a>.</div></div></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -8,7 +8,7 @@
|
||||
<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>
|
||||
<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>
|
||||
|
||||
92
documentation/phoromatic.md
Normal file
92
documentation/phoromatic.md
Normal file
@@ -0,0 +1,92 @@
|
||||
|
||||
# Phoronix Test Suite Phoromatic
|
||||
|
||||
## Phoromatic Server
|
||||
|
||||
### Introduction
|
||||
Phoromatic is a remote management system for the Phoronix Test Suite. Phoromatic allows the automatic (hence the name *Phoro-matic* ) 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.
|
||||
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.
|
||||
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.
|
||||
|
||||
### Features
|
||||
Built atop the Phoronix Test Suite, Phoromatic offers many features for both enterprise and community/personal users:
|
||||
#### Automated Scheduling
|
||||
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.
|
||||
#### Extensible
|
||||
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).
|
||||
#### Remote Testing
|
||||
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.
|
||||
#### Multi-System Support
|
||||
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.
|
||||
#### Turn-Key Deployment
|
||||
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.
|
||||
#### Result Management
|
||||
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.
|
||||
#### Decentralized
|
||||
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.
|
||||
#### Fully Open-Source
|
||||
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.
|
||||
|
||||
### Phoromatic Server Setup
|
||||
Phoromatic is built into the Phoronix Test Suite code-base and should be found in all packaged versions of the **phoronix-test-suite** . Starting the Phoromatic Server entails running phoronix-test-suite start-phoromatic-server after configuring the server information within *~/.phoronix-test-suite/user-config.xml* . The Phoromatic Server can with or without root permissions depending upon your firewall and the port numbers you wish to use for the server.
|
||||
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 _avahi-tools_ ), 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.
|
||||
Further configuration of the setup parameters for the Phoromatic Server and Phoronix Test Suite clients can be tuned via the *~/.phoronix-test-suite/user-config.xml* file. All control and configuration of the Phoromatic Server is done via the web-based interface when the Phoromatic Server is active.
|
||||
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.
|
||||
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.
|
||||
|
||||
### Example Deployments
|
||||
#### Use Case A: Unrestricted Internet Access, Local Result Storage
|
||||
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 *user-config.xml* file, simply run:
|
||||
**$ phoronix-test-suite start-phoromatic-server**
|
||||
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.
|
||||
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 **phoronix-test-suite phoromatic.connect** with zero-conf networking or otherwise follow the information from the Phoromatic web interface for manual setup with the IP/port information.
|
||||
#### Use Case B: No Internet Available To Client Systems
|
||||
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 *user-config.xml* file, a few commands from the system while having an Internet connection will be able to cache the needed data:
|
||||
**$ phoronix-test-suite make-download-cache x264 xonotic ffmpeg**
|
||||
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 *~/.phoronix-test-suite/download-cache/* or */usr/share/phoronix-test-suite/download-cache/* 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.
|
||||
**$ phoronix-test-suite make-openbenchmarking-cache**
|
||||
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.
|
||||
**$ phororonix-test-suite start-phoromatic-server**
|
||||
Proceed to start the Phoromatic Server and operate as normal.
|
||||
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.
|
||||
#### Use Case C: Phoromatic Across The Internet
|
||||
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 *PhoromaticServers* element within the *user-config.xml* . 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.
|
||||
|
||||
### Client Setup
|
||||
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:
|
||||
**$ phoronix-test-suite phoromatic.explore**
|
||||
With the following example output on finding one successful server:
|
||||
*IP: 192.168.1.211
|
||||
HTTP PORT: 5447
|
||||
WEBSOCKET PORT: 5427
|
||||
SERVER: PHP 5.5.9-1ubuntu4.4 Development Server
|
||||
PHORONIX TEST SUITE: Phoronix Test Suite v5.4.0m1 [5313]
|
||||
DOWNLOAD CACHE: 19 FILES / 2390 MB CACHE SIZE
|
||||
SUPPORTED OPENBENCHMARKING.ORG REPOSITORIES:
|
||||
pts - Last Generated: 05 Oct 2014 07:16*
|
||||
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 *~/.phoronix-test-suite/user-config.xml* with the *PhoromaticServers* element. Adding the *IP:port* (the Phoromatic Server's HTTP port) to the PhoromaticServers *user-config.xml* 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.
|
||||
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. *phoronix-test-suite phoromatic.connect 192.168.1.211:5447/I0SSJY* . 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 **phoronix-test-suite phoromatic.connect** command running on the system (after the initial account has been synced, simply running **phoronix-test-suite phoromatic.connect** is enough for the system to find the server and its account).
|
||||
|
||||
### Root Administrator
|
||||
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.
|
||||
To enable the root administrator log-in, first from the server's command-line interface run **phoronix-test-suite phoromatic.set-root-admin-password** to set the password. Following that, you can log into the root administrator account via the web interface via the *rootadmin* user-name and the set password.
|
||||
|
||||
### Other Advice
|
||||
#### Disable Internet Precaution
|
||||
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 *~/.phoronix-test-suite/user-config.xml* you can set *NoInternetCommunication* to *TRUE* . There's also a NoNetworkCommunication tag, but setting that to TRUE will disable any form of network communication -- including communication with the Phoromatic Server.
|
||||
#### Ports / Services
|
||||
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.
|
||||
#### Systemd / Upstart
|
||||
Packaged with the Phoronix Test Suite are basic *phoromatic-client* and *phoromatic-server* configurations for both Upstart and systemd init systems. The *phoromatic-server* configuration will launch the Phoronix Test Suite's Phoromatic Server and the *phoromatic-client* service will attempt to connect to a _pre-configured_ Phoromatic Server. The systemd service files will automatically be installed via the Phoronix Test Suite *install-sh* process while the Upstart jobs can be copied from *deploy/phoromatic-upstart/** to */etc/init* .
|
||||
#### Cache Verification
|
||||
To confirm the files accessible to Phoronix Test Suite client systems, from the Phoromatic Server web user-interface go to the *settings* page followed by the *cache settings* link to view information about the download and OpenBenchmarking.org caches. From the client systems, running **phoronix-test-suite phoromatic.explore** will also supply cache statistics.
|
||||
#### Log Files
|
||||
The Phoromatic Server will produce a log file of events / debugging information to *~/.phoronix-test-suite/phoromatic.log* or */var/log/phoromatic.log* 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 *phoronix-test-suite.log* .
|
||||
#### Multi-User Accounts
|
||||
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 *Users* 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.
|
||||
#### File Locations
|
||||
When running the Phoronix Test Suite Phoromatic Server as root, rather than using the *~/.phoronix-test-suite/* directory, the standard Linux file-system hierarchy standard is honored. The main storage path is */var/lib/phoronix-test-suite/* , the user configuration file is */etc/phoronix-test-suite.xml* , and */var/cache/phoronix-test-suite/* for cache files.
|
||||
#### Uploading Other Test Results
|
||||
Unscheduled test results and other results found on connected systems to a Phoromatic account can upload the data to the Phoromatic Server using the *phoronix-test-suite phoromatic.upload-result <result file identifier >* sub-command.
|
||||
#### User Context File Logging
|
||||
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 *PHOROMATIC_LOG_FILE* 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 *PHOROMATIC_TRIGGER* , *PHOROMATIC_SCHEDULE_ID* , and *PHOROMATIC_SCHEDULE_PROCESS* .
|
||||
27
documentation/phoronix-test-suite-window.md
Normal file
27
documentation/phoronix-test-suite-window.md
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
# Phoronix Test Suite On Windows
|
||||
|
||||
### Introduction
|
||||
Phoronix Test Suite 8.0 features rewritten Windows support that is at a near feature parity to the program's long-standing support for Linux, macOS, BSD and Solaris operating systems. To make it abundantly clear, if you are using a Phoronix Test Suite version pre-8.0, you are best upgrading or ideally using Phoronix Test Suite Git as the Windows support remains in very active development at the moment as of early 2018.
|
||||
The Phoronix Test Suite Windows support currently targets **Windows 10 x64** and **Windows Server 2016 x64** . Earlier versions of Windows, namely Windows Server 2012 and Windows 8, may work to some extent but some hardware/software reporting features and other capabilities may be missing or report warning messages. The Phoronix Test Suite Windows support is also exclusively focused on x86 64-bit support: the Phoronix Test Suite itself will run on x86 32-bit but many of the program dependencies are configured for making use of 64-bit binaries.
|
||||
|
||||
### Windows Setup / Dependencies
|
||||
As with Phoronix Test Suite on Linux and other operating systems, the principal dependency is on PHP (PHP v5.3 or newer, including PHP 7.x). Running the *phoronix-test-suite.bat* file launcher for the Phoronix Test Suite on Windows will attempt to download and setup PHP on the system under *C:\PHP* as the default location should PHP support not be found within your system's *Program Files* directories. The PHP Windows build does depend upon Microsoft Visual C++ redistributable libraries, which the Windows launcher will also attempt to download and install if needed.
|
||||
The Phoronix Test Suite on Windows does depend upon [Cygwin](https://www.cygwin.com/) for its Bash interpreter and other basic utilities to ease the process of porting test profiles to Windows with being able to use many of the same test installation scripts on Windows/Linux/macOS/BSD/Solaris then largely unmodified. Most of the Windows tests depend upon their respective native Windows applications/binaries while this Cygwin support is a convenience for handling these Bash setup scripts and also some test profiles that depend upon a GNU toolchain. The Phoronix Test Suite will attempt to download and setup Cygwin on the system if Cygwin isn't found in its default location of *C:\cygwin64* .
|
||||
Various test profiles may depend upon other "external dependencies" like Python, PERL, Steam, and Java, as examples. The Phoronix Test Suite as with its support for other operating systems and Linux distributions will attempt to install these needed dependencies on a per-test basis when needed if existing support is not detected on the system.
|
||||
|
||||
### Running The Phoronix Test Suite On Windows
|
||||
The Phoronix Test Suite can run from its local directory and does not need to be "installed" to a system path or any other "setup" process prior to execution. On a clean install of Windows 10 x64 or Windows Server 2016, deploying the Phoronix Test Suite is designed to be as easy and straight-forward as possible:
|
||||
1. Download the Phoronix Test Suite 8.0+ or [Phoronix-Test-Suite from GitHub](https://github.com/phoronix-test-suite/phoronix-test-suite) ( [zip file](https://github.com/phoronix-test-suite/phoronix-test-suite/archive/master.zip) ).
|
||||
2. From the Command Prompt or PowerShell, enter the *phoronix-test-suite* directory whether it be from Git or a zipped download.
|
||||
3. Run the *phoronix-test-suite.bat* file that should proceed to run the Phoronix Test Suite just as you would on any other operating system. If needed the Phoronix Test Suite will try to initially download and setup PHP if needed followed by the attempted automatic Cygwin setup, etc.
|
||||
4. Any of the Phoronix Test Suite commands from other operating systems should work on Windows. If you are new to the Phoronix Test Suite, you may enjoy a bit more guided experience by running the **phoronix-test-suite shell** command.
|
||||
|
||||
### Test Profiles On Windows
|
||||
As of March 2018, around 50 of the test profiles are currently compatible with the Phoronix Test Suite on Windows. This includes many of the popular benchmarks and other interesting test cases. Over time more test profiles will continue to be ported to Windows where applicable and there are also some Windows-only tests also supported for execution by the Phoronix Test Suite.
|
||||
|
||||
### Getting Started
|
||||
Besides **phoronix-test-suite shell** and **phoronix-test-suite help** , there is also **phoronix-test-suite interactive** for helping new users understand Phoronix Test Suite benchmarking. Long story short, it should be as easy as running **phoronix-test-suite benchmark c-ray** or **phoronix-test-suite benchmark crafty** as some examples for carrying out automated, cross-platform benchmarks in a side-by-side and fully-reproducible manner.
|
||||
|
||||
### Support
|
||||
Community technical support is available via [GitHub](https://github.com/phoronix-test-suite/phoronix-test-suite/issues) or general inquiries via [the Phoronix Forums](https://www.phoronix.com/forums/forum/phoronix/phoronix-test-suite) . For enterprise inquiries, commercial support, and custom engineering services, [contact us](http://phoronix-test-suite.com/?k=commercial) .
|
||||
27
documentation/phoronix-test-suite-windows.html
Normal file
27
documentation/phoronix-test-suite-windows.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<Title>Phoronix Test Suite On Windows</Title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>Introduction</h2>
|
||||
<p>Phoronix Test Suite 8.0 features rewritten Windows support that is at a near feature parity to the program's long-standing support for Linux, macOS, BSD and Solaris operating systems. To make it abundantly clear, if you are using a Phoronix Test Suite version pre-8.0, you are best upgrading or ideally using Phoronix Test Suite Git as the Windows support remains in very active development at the moment as of early 2018.</p>
|
||||
<p>The Phoronix Test Suite Windows support currently targets <strong>Windows 10 x64</strong> and <strong>Windows Server 2016 x64</strong>. Earlier versions of Windows, namely Windows Server 2012 and Windows 8, may work to some extent but some hardware/software reporting features and other capabilities may be missing or report warning messages. The Phoronix Test Suite Windows support is also exclusively focused on x86 64-bit support: the Phoronix Test Suite itself will run on x86 32-bit but many of the program dependencies are configured for making use of 64-bit binaries.</p>
|
||||
<h2>Windows Setup / Dependencies</h2>
|
||||
<p>As with Phoronix Test Suite on Linux and other operating systems, the principal dependency is on PHP (PHP v5.3 or newer, including PHP 7.x). Running the <em>phoronix-test-suite.bat</em> file launcher for the Phoronix Test Suite on Windows will attempt to download and setup PHP on the system under <em>C:\PHP</em> as the default location should PHP support not be found within your system's <em>Program Files</em> directories. The PHP Windows build does depend upon Microsoft Visual C++ redistributable libraries, which the Windows launcher will also attempt to download and install if needed.</p>
|
||||
<p>The Phoronix Test Suite on Windows does depend upon <a href="https://www.cygwin.com/">Cygwin</a> for its Bash interpreter and other basic utilities to ease the process of porting test profiles to Windows with being able to use many of the same test installation scripts on Windows/Linux/macOS/BSD/Solaris then largely unmodified. Most of the Windows tests depend upon their respective native Windows applications/binaries while this Cygwin support is a convenience for handling these Bash setup scripts and also some test profiles that depend upon a GNU toolchain. The Phoronix Test Suite will attempt to download and setup Cygwin on the system if Cygwin isn't found in its default location of <em>C:\cygwin64</em>.</p>
|
||||
<p>Various test profiles may depend upon other "external dependencies" like Python, PERL, Steam, and Java, as examples. The Phoronix Test Suite as with its support for other operating systems and Linux distributions will attempt to install these needed dependencies on a per-test basis when needed if existing support is not detected on the system.</p>
|
||||
<h2>Running The Phoronix Test Suite On Windows</h2>
|
||||
<p>The Phoronix Test Suite can run from its local directory and does not need to be "installed" to a system path or any other "setup" process prior to execution. On a clean install of Windows 10 x64 or Windows Server 2016, deploying the Phoronix Test Suite is designed to be as easy and straight-forward as possible:</p>
|
||||
<p>1. Download the Phoronix Test Suite 8.0+ or <a href="https://github.com/phoronix-test-suite/phoronix-test-suite">Phoronix-Test-Suite from GitHub</a> (<a href="https://github.com/phoronix-test-suite/phoronix-test-suite/archive/master.zip">zip file</a>).</p>
|
||||
<p>2. From the Command Prompt or PowerShell, enter the <em>phoronix-test-suite</em> directory whether it be from Git or a zipped download.</p>
|
||||
<p>3. Run the <em>phoronix-test-suite.bat</em> file that should proceed to run the Phoronix Test Suite just as you would on any other operating system. If needed the Phoronix Test Suite will try to initially download and setup PHP if needed followed by the attempted automatic Cygwin setup, etc.</p>
|
||||
<p>4. Any of the Phoronix Test Suite commands from other operating systems should work on Windows. If you are new to the Phoronix Test Suite, you may enjoy a bit more guided experience by running the <strong>phoronix-test-suite shell</strong> command.</p>
|
||||
<h2>Test Profiles On Windows</h2>
|
||||
<p>As of March 2018, around 50 of the test profiles are currently compatible with the Phoronix Test Suite on Windows. This includes many of the popular benchmarks and other interesting test cases. Over time more test profiles will continue to be ported to Windows where applicable and there are also some Windows-only tests also supported for execution by the Phoronix Test Suite.</p>
|
||||
<h2>Getting Started</h2>
|
||||
<p>Besides <strong>phoronix-test-suite shell</strong> and <strong>phoronix-test-suite help</strong>, there is also <strong>phoronix-test-suite interactive</strong> for helping new users understand Phoronix Test Suite benchmarking. Long story short, it should be as easy as running <strong>phoronix-test-suite benchmark c-ray</strong> or <strong>phoronix-test-suite benchmark crafty</strong> as some examples for carrying out automated, cross-platform benchmarks in a side-by-side and fully-reproducible manner.</p>
|
||||
<h2>Support</h2>
|
||||
<p>Community technical support is available via <a href="https://github.com/phoronix-test-suite/phoronix-test-suite/issues">GitHub</a> or general inquiries via <a href="https://www.phoronix.com/forums/forum/phoronix/phoronix-test-suite">the Phoronix Forums</a>. For enterprise inquiries, commercial support, and custom engineering services, <a href="http://phoronix-test-suite.com/?k=commercial">contact us</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
861
documentation/phoronix-test-suite.md
Normal file
861
documentation/phoronix-test-suite.md
Normal file
@@ -0,0 +1,861 @@
|
||||
|
||||
# Getting Started
|
||||
|
||||
## Overview
|
||||
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. Version 1.0 of the Phoronix Test Suite was publicly released in 2008.
|
||||
The Phoronix Test Suite client itself is a test framework for providing seamless execution of test profiles and test suites. There are more than 200 tests available by default, which are transparently available via [OpenBenchmarking.org](http://openbenchmarking.org/) integration. Of these default test profiles there is a range of sub-systems that can be tested and a range of hardware from mobile devices to desktops and worksrtations/servers. New tests can be easily introduced via the Phoronix Test Suite's extensible test architecture, with test profiles consisting of XML files and shell scripts. Test profiles can produce a quantitative result or other qualitative/abstract results like image quality comparisons and pass/fail. Using Phoronix Test Suite modules, other data can also be automatically collected at run-time such as the system power consumption, disk usage, and other software/hardware sensors. Test suites contain references to test profiles to execute as part of a set or can also reference other test suites. Test suites are defined via an XML schema.
|
||||
Running the Phoronix Test Suite for the first time can be as simple as issuing a command such as *phoronix-test-suite benchmark c-ray* , which would proceed to install a simple CPU test, execute the test, and report the results. Along with the results, the system's hardware/software information is collected in a detailed manner, relevant system logs, and other important system attributes such as compiler flags and system state. Users can optionally upload their results to OpenBenchmarking.org for sharing results with others, comparing results against other systems, and to carry out further analysis.
|
||||
|
||||
## OpenBenchmarking.org
|
||||
OpenBenchmarking.org is an open, collaborative testing platform that makes the Phoronix Test Suite an even more extensible platform for conducting automated tests with complete integration into Phoronix Test Suite test client. OpenBenchmarking.org serves as a repository for storing test profiles, test suites, and result data. Test profiles and suites are stored in the OpenBenchmarking.org cloud to allow for new/updated tests to be seamlessly obtained via the Phoronix Test Suite without needing to manually update the Phoronix Test Suite client. OpenBenchmarking.org also makes it easy to facilitate side-by-side comparisons with any other results stored in the OpenBenchmarking.org cloud. Any Phoronix Test Suite user is permitted to upload their test results, test profiles, and suites to OpenBenchmarking.org.
|
||||
When finding a set of results on OpenBenchmarking.org (e.g. [an example result file](http://openbenchmarking.org/result/1203160-BY-NVTEGRA3785) ), it's as easy as running the Phoronix Test Suite with that OpenBenchmarking.org ID to perform an automated side-by-side comparison (e.g. *phoronix-test-suite benchmark 1203160-BY-NVTEGRA3785* ).
|
||||
Thanks to the wealth of test data (results, system logs, etc) from crowd-sourced benchmarking via the Phoronix Test Suite, a plethora of analytical features are also available from OpenBenchmarking.org.
|
||||
|
||||
## Phoromatic
|
||||
Phoromatic is a remote management system for the Phoronix Test Suite that allows the automatic 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. Phoromatic can also interface with revision control systems to offer support for issuing new tests on a context-basis, such as whenever a Git commit has been pushed or new daily image available. The test results are then available from this central, secure location.
|
||||
Phoromatic is an add-on to the Phoronix Test Suite that's primarily intended for enterprise users when facilitating tests across a wide-spectrum of hardware within a test lab or when needing to carry out tests on a routine basis.
|
||||
|
||||
# User Options
|
||||
The following options are currently supported by the Phoronix Test Suite client. A list of available options can also be found by running *phoronix-test-suite help.*
|
||||
|
||||
---
|
||||
|
||||
## Test Installation
|
||||
#### force-install [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will force the installation (or re-installation) of a test or suite. The arguments and process is similar to the install option but even if the test is installed, the entire installation process will automatically be executed. This option is generally used when debugging a test installation problem.
|
||||
#### install [Test | Suite | OpenBenchmarking 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.
|
||||
#### install-dependencies [Test | Suite | OpenBenchmarking 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.
|
||||
#### make-download-cache
|
||||
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.
|
||||
#### remove-installed-test [Test]
|
||||
This option will permanently remove a installed test by the Phoronix Test Suite.
|
||||
|
||||
## Testing
|
||||
#### auto-compare
|
||||
This option will autonomously determine the most relevant test(s) to run for any selected sub-system(s). The tests to run are determined via OpenBenchmarking.org integration with the global results pool. Related test results from OpenBenchmarking.org are also merged to provide a straight-forward and effective means of carrying out a system comparison. If wishing to find comparable results for any particular test profile(s), simply pass the test profile names as additional arguments to this command.
|
||||
#### benchmark [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will install the selected test(s) (if needed) and will proceed to run the test(s). This option is equivalent to running phoronix-test-suite with the install option followed by the run option. Multiple arguments can be supplied to run additional tests at the same time and save the results into one file.
|
||||
#### estimate-run-time [Test | Suite | OpenBenchmarking ID | Test Result]
|
||||
This option will provide estimates for test run-time / length.
|
||||
#### finish-run [Test Result]
|
||||
This option can be used if a test run had not properly finished running all tests within a saved results file. Using this option when specifying a saved results file where all tests had not completed will attempt to finish testing on the remaining tests where there are missing results.
|
||||
#### run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will run the selected test(s).
|
||||
#### run-random-tests
|
||||
This option will query OpenBenchmarking.org to run random benchmarks and result comparisons on the system. This test can be used for simply supplying interesting results from your system onto OpenBenchmarking.org, stressing your system with random workloads, seeding new OpenBenchmarking.org results, etc. Basic options are provided at start-up for tuning the randomness of the testing when running this command.
|
||||
#### 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.
|
||||
#### stress-run [Test | Suite | OpenBenchmarking 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.
|
||||
|
||||
## Batch Testing
|
||||
#### batch-benchmark [Test | Suite | OpenBenchmarking 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.
|
||||
#### batch-install [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
If you wish to run the install process in the Phoronix Test Suite batch mode but do not wish to run any tests at this time. Running the install process in the batch mode will use the default values and not prompt the user of any possible options, to ensure the process is fully automated.
|
||||
#### batch-run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option and its arguments are equivalent to the run option, but the process will be run in the Phoronix Test Suite batch mode.
|
||||
#### batch-setup
|
||||
This option is used to configure the batch mode options for the Phoronix Test Suite, which is subsequently written to the user configuration file. Among the options are whether to automatically upload the test results to OpenBenchmarking.org and prompting for the saved file name.
|
||||
#### default-benchmark [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will install the selected test(s) (if needed) and will proceed to run the test(s) in the defaults mode. This option is equivalent to running phoronix-test-suite with the install option followed by the default-run option.
|
||||
#### default-run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option will run the selected test(s). The name of the test or suite must be supplied or the OpenBenchmarking.org ID or saved local file name. Multiple arguments can be supplied to run additional tests at the same time and save the results in a suite-like fashion. Unlike the normal run option, the default-run will not prompt the user to select from the available test options but will instead use the default options as automatically set by pts-core or the test profile. Use batch-run to automatically test all of the available options.
|
||||
#### internal-run [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option and its arguments pre-set the Phoronix Test Suite batch run mode with sane values for carrying out benchmarks in a semi-automated manner and without uploading any of the result data to the public OpenBenchmarking.org.
|
||||
|
||||
## OpenBenchmarking.org
|
||||
#### 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.
|
||||
#### 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.
|
||||
#### 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.
|
||||
#### openbenchmarking-changes
|
||||
This option will list recent changes to test profiles of enabled OpenBenchmarking.org repositories.
|
||||
#### openbenchmarking-login
|
||||
This option is used for controlling your Phoronix Test Suite client options for OpenBechmarking.org and syncing the client to your account.
|
||||
#### openbenchmarking-refresh
|
||||
This option is used for refreshing the stored OpenBenchmarking.org repostory information and other data. The Phoronix Test Suite will automatically refresh this data every three days or when other thresholds are exceeded, but this command can be used to manually refresh/updates the data.
|
||||
#### openbenchmarking-repositories
|
||||
This option will list the OpenBenchmarking.org repositories currently linked to this Phoronix Test Suite client instance.
|
||||
#### openbenchmarking-uploads
|
||||
This option will list any recent test result uploads from the system's IP address to OpenBenchmarking.org.
|
||||
#### upload-result [Test Result]
|
||||
This option is used for uploading a test result to OpenBenchmarking.org.
|
||||
#### upload-test-profile
|
||||
This option can be used for uploading a test profile to your account on OpenBenchmarking.org. By uploading your test profile to OpenBenchmarking.org, others are then able to browse and access this test suite for easy distribution in a seamless manner by other Phoronix Test Suite clients.
|
||||
#### upload-test-suite
|
||||
This option can be used for uploading a test suite to your account on OpenBenchmarking.org. By uploading your test suite to OpenBenchmarking.org, others are then able to browse and access this test suite for easy distribution.
|
||||
|
||||
## System
|
||||
#### diagnostics
|
||||
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
|
||||
#### interactive
|
||||
A simple text-driven interactive interface to the Phoronix Test Suite.
|
||||
#### php-conf
|
||||
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
|
||||
#### shell
|
||||
A simple text-driven shell interface / helper to the Phoronix Test Suite. Ideal for those that may be new to the Phoronix Test Suite
|
||||
#### system-info
|
||||
Display the installed system hardware and software information as detected by the Phoronix Test Suite Phodevi Library.
|
||||
#### system-sensors
|
||||
Display the installed system hardware and software sensors in real-time as detected by the Phoronix Test Suite Phodevi Library.
|
||||
|
||||
## Information
|
||||
#### info [Test | Suite | OpenBenchmarking ID | Test Result]
|
||||
This option will show details about the supplied test, suite, virtual suite, or result file.
|
||||
#### list-available-suites
|
||||
This option will list all test suites that are available from the enabled OpenBenchmarking.org repositories.
|
||||
#### list-available-tests
|
||||
This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories where supported on the system and are of a verified state.
|
||||
#### list-available-virtual-suites
|
||||
This option will list all available virtual test suites that can be dynamically created based upon the available tests from enabled OpenBenchmarking.org repositories.
|
||||
#### list-installed-dependencies
|
||||
This option will list all of the packages / external test dependencies that are already installed on the system that the Phoronix Test Suite may potentially depend upon by test profiles.
|
||||
#### list-installed-suites
|
||||
This option will list all suites that are currently installed on the system.
|
||||
#### list-installed-tests
|
||||
This option will list all test profiles that are currently installed on the system.
|
||||
#### list-missing-dependencies
|
||||
This option will list all of the packages / external test dependencies that are missing from the system that the Phoronix Test Suite may potentially need by select test profiles.
|
||||
#### list-not-installed-tests
|
||||
This option will list all test profiles that are supported and available but presently NOT installed on the system.
|
||||
#### list-possible-dependencies
|
||||
This option will list all of the packages / external test dependencies that are are potentially used by the Phoronix Test Suite.
|
||||
#### list-saved-results
|
||||
This option will list all of the saved test results found on the system.
|
||||
#### list-test-usage
|
||||
This option will list various details about installed tests and their usage.
|
||||
#### list-unsupported-tests
|
||||
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.
|
||||
#### search
|
||||
This option provides command-line searching abilities for test profiles / test suites / test results. The search query can be passed as a parameter otherwise the user is prompted to input their search query..
|
||||
|
||||
## Asset Creation
|
||||
#### 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.
|
||||
#### create-test-profile
|
||||
This option can be used for creating a Phoronix Test Suite test profile by answering questions about the test for constructing the test profile XML meta-data and handling other boiler-plate basics for getting started in developing new tests.
|
||||
#### debug-benchmark [Test | Suite | OpenBenchmarking 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.
|
||||
#### debug-install [Test | Suite | OpenBenchmarking 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.
|
||||
#### debug-result-parser [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This option is intended for use by test profile writers and is used for debugging a result parser. No test execution is done, but there must already be PTS-generated .log files present within the test's installation directory.
|
||||
#### debug-test-download-links [Test | Suite | OpenBenchmarking ID | Test Result]
|
||||
This option will check all download links within the specified test profile(s) to ensure there are no broken URLs.
|
||||
#### download-test-files [Test | Suite | OpenBenchmarking ID | Test Result] ...
|
||||
This will download the selected test file(s) to the Phoronix Test Suite download cache but will not install the tests.
|
||||
#### inspect-test-profile [Test]
|
||||
This option can be used for inspecting a Phoronix Test Suite test profile with providing inside details on test profiles for debugging / evaluation / learning purposes.
|
||||
#### result-file-to-suite [Test Result]
|
||||
This option will guide the user through the process of generating their own test suite, which they can then run, that is based upon an existing test results file.
|
||||
#### validate-result-file
|
||||
This option can be used for validating a Phoronix Test Suite result file as being compliant against the OpenBenchmarking.org specification.
|
||||
#### validate-test-profile [Test]
|
||||
This option can be used for validating a Phoronix Test Suite test profile as being compliant against the OpenBenchmarking.org specification.
|
||||
#### validate-test-suite
|
||||
This option can be used for validating a Phoronix Test Suite test suite as being compliant against the OpenBenchmarking.org specification.
|
||||
|
||||
## Result Management
|
||||
#### 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.
|
||||
#### 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.
|
||||
#### edit-result-file [Test Result]
|
||||
This option is used if you wish to edit the title and description of an existing result file.
|
||||
#### extract-from-result-file [Test Result]
|
||||
This option will extract a single set of test results from a saved results file that contains multiple test results that have been merged. The user is the prompted to specify a new result file name and select which result identifier to extract.
|
||||
#### merge-results [Test Result] ...
|
||||
This option will manually merge multiple sets of test results generated by the Phoronix Test Suite.
|
||||
#### refresh-graphs [Test Result]
|
||||
This option will re-render and save all result graphs within a saved file. This option can be used when making modifications to the graphing code or its color/option configuration file and testing the changes.
|
||||
#### remove-from-result-file [Test Result]
|
||||
This option is used if there is a set of test results you wish to remove/delete from a saved results file. The user must specify a saved results file and then they will be prompted to select the results identifier associated with the results they wish to remove.
|
||||
#### remove-result [Test Result]
|
||||
This option will permanently remove the saved file set that is set as the first argument.
|
||||
#### rename-identifier-in-result-file [Test Result]
|
||||
This option is used if you wish to change the name of the identifier in a test results file that is shown in the Phoronix Test Suite Results Viewer and the contained graphs.
|
||||
#### rename-result-file [Test Result]
|
||||
This option is used if you wish to change the name of the saved name of a result file.
|
||||
#### reorder-result-file [Test Result]
|
||||
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.
|
||||
#### 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.
|
||||
#### 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).
|
||||
#### 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.
|
||||
#### result-file-to-text [Test Result]
|
||||
This option will read a saved test results file and output the system hardware and software information to the terminal. The test results are also outputted.
|
||||
#### show-result [Test Result]
|
||||
Open up the test results in the Phoronix Test Suite Result Viewer or on OpenBenchmarking.org.
|
||||
#### winners-and-losers [Test Result]
|
||||
This option is used if you wish to analyze a result file to see which runs produced the most wins/losses of those result identifiers in the saved file.
|
||||
|
||||
## Other
|
||||
#### commands
|
||||
This option will display a short list of possible Phoronix Test Suite commands.
|
||||
#### debug-dependency-handler
|
||||
This option is used for testing the distribution-specific dependency handler for external dependencies.
|
||||
#### 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.
|
||||
#### 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.
|
||||
#### help
|
||||
This option will display a list of available Phoronix Test Suite commands and possible parameter types.
|
||||
#### version
|
||||
This option will display the Phoronix Test Suite client version.
|
||||
|
||||
## Modules
|
||||
#### auto-load-module
|
||||
This option can be used for easily adding a module to the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.
|
||||
#### list-modules
|
||||
This option will list all of the available Phoronix Test Suite modules on this system.
|
||||
#### module-info [Phoronix Test Suite Module]
|
||||
This option will show detailed information on a Phoronix Test Suite module such as the version, developer, and a description of its purpose.
|
||||
#### module-setup [Phoronix Test Suite Module]
|
||||
This option will allow you to configure all available end-user options for a Phoronix Test Suite module. These options are then stored within the user's configuration file. Not all modules may have options that can be configured by the end-user.
|
||||
#### test-module [Phoronix Test Suite Module]
|
||||
This option can be used for debugging a Phoronix Test Suite module.
|
||||
#### unload-module
|
||||
This option can be used for easily removing a module from the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what modules are automatically loaded on start-up of the Phoronix Test Suite.
|
||||
|
||||
## User Configuration
|
||||
#### 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.
|
||||
#### network-info
|
||||
This option will print information detected by the Phoronix Test Suite around the system's network configuration.
|
||||
#### 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.
|
||||
#### user-config-reset
|
||||
This option can be used for resetting the Phoronix Test Suite user configuration file to its default state.
|
||||
#### user-config-set
|
||||
This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.
|
||||
|
||||
## Web / GUI Support
|
||||
#### gui
|
||||
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. THIS FEATURE IS CURRENTLY EXPERIMENTAL AND NO LONGER ACTIVE DEVELOPMENT. See Phoronix Test Suite Phoromatic as an alternative web UI approach.
|
||||
|
||||
## Phoromatic
|
||||
#### start-phoromatic-server
|
||||
Start the Phoromatic web server for controlling local Phoronix Test Suite client systems to facilitate automated and repeated test orchestration and other automated features targeted at the enterprise.
|
||||
|
||||
# Module Options
|
||||
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 environment variable. A list of available modules is also available by running *phoronix-test-suite list-modules.*
|
||||
|
||||
---
|
||||
|
||||
### Backup Creation + Restore
|
||||
This is a module for creating backups of the Phoronix Test Suite / Phoromatic and allows for restoring of created backups. The backup will be in ZIP or TAR format. If only a path is specified, the file-name will be auto-generated with a current time-stamp.
|
||||
phoronix-test-suite backup.create
|
||||
phoronix-test-suite backup.restore
|
||||
|
||||
### Dummy Module
|
||||
This is a simple module intended for developers to just demonstrate some of the module functions.
|
||||
phoronix-test-suite dummy_module.dummy-command
|
||||
|
||||
### Generate Perf FlameGraphs For Tests
|
||||
Setting FLAME_GRAPH_PATH=<path to flamegraph path> will auto-load and enable this Phoronix Test Suite module. The module will generate a Linux perf FlameGraph for each test run during the benchmarking process. Details on FlameGraph @ https://github.com/brendangregg/FlameGraph
|
||||
This module utilizes the following environmental variables: FLAME_GRAPH_PATH.
|
||||
|
||||
### Graphics Override
|
||||
This module allows you to override some graphics rendering settings for the ATI and NVIDIA drivers while running the Phoronix Test Suite.
|
||||
This module utilizes the following environmental variables: FORCE_AA, FORCE_AF.
|
||||
|
||||
### Result Exporter To HTML
|
||||
This module allows basic exporting of results to HTML for saving either to a file locally (specified using the EXPORT_RESULTS_HTML_FILE_TO environment variable) or to a mail account (specified using the EXPORT_RESULTS_HTML_EMAIL_TO environment variable). EXPORT_RESULTS_HTML_EMAIL_TO supports multiple email addresses delimited by a comma.
|
||||
This module utilizes the following environmental variables: EXPORT_RESULTS_HTML_EMAIL_TO, EXPORT_RESULTS_HTML_FILE_TO.
|
||||
|
||||
### Linux Perf Framework Reporter
|
||||
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.
|
||||
This module utilizes the following environmental variables: LINUX_PERF.
|
||||
|
||||
### Log Exporter
|
||||
This module allows for easily exporting test run logs and system logs to external locations via specifying the directory paths via the COPY_TEST_RUN_LOGS_TO and COPY_SYSTEM_LOGS_TO environment variables.
|
||||
This module utilizes the following environmental variables: COPY_TEST_RUN_LOGS_TO, COPY_SYSTEM_LOGS_TO.
|
||||
|
||||
### MATISK
|
||||
My Automated Test Infrastructure Setup Kit
|
||||
phoronix-test-suite matisk.run
|
||||
phoronix-test-suite matisk.template
|
||||
|
||||
### OpenBenchmarking.org Auto Comparison
|
||||
This module prints comparable OpenBenchmarking.org results in the command-line for reference purposes as tests are being run. OpenBenchmarking.org is automatically queried for results to show based on the test comparison hash and the system type (mobile, desktop, server, cloud, workstation, etc). No other system information or result data is transmitted..
|
||||
phoronix-test-suite ob_auto_compare.debug
|
||||
|
||||
### Performance Per Dollar/Cost Calculator
|
||||
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. Set the COST_PERF_PER_UNIT= environment variable if wishing to use a metric besides dollar/cost. The COST_PERF_PER_HOUR value can be used rather than COST_PERF_PER_DOLLAR if wishing to calculate the e.g. cloud time or other compute time based on an hourly basis.
|
||||
phoronix-test-suite perf_per_dollar.add
|
||||
This module utilizes the following environmental variables: COST_PERF_PER_DOLLAR, COST_PERF_PER_UNIT, COST_PERF_PER_HOUR.
|
||||
|
||||
### Performance Tip Prompts
|
||||
This module alerts the user if the system configuration may not be the right one for achieving the best performance with the target benchmark(s). This initial version of the module actually cares only about the BFQ I/O scheduler and powersave governor checks.
|
||||
phoronix-test-suite perf_tips.show
|
||||
This module utilizes the following environmental variables: SUPPRESS_PERF_TIPS.
|
||||
|
||||
### Phoromatic Client
|
||||
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.
|
||||
phoronix-test-suite phoromatic.connect
|
||||
phoronix-test-suite phoromatic.explore
|
||||
phoronix-test-suite phoromatic.upload-result
|
||||
phoronix-test-suite phoromatic.set-root-admin-password
|
||||
phoronix-test-suite phoromatic.list-results
|
||||
phoronix-test-suite phoromatic.clone
|
||||
phoronix-test-suite phoromatic.export-results-for-account-schedules
|
||||
|
||||
### Pushover.net
|
||||
Submit notifications to your iOS/Android mobile devices of test results in real-time as push notifications, etc. Using the Pushover.net API.
|
||||
This module utilizes the following environmental variables: PUSHOVER_NET_USER.
|
||||
|
||||
### Report Test Time Graphs
|
||||
Setting the RUN_TIMES_ARE_A_BENCHMARK=1 environment variable will automatically create additional graphs for each test run plotting the run-time needed for each test being executed. Setting the INSTALL_TIMES_ARE_A_BENCHMARK=1 environment variable will automatically create additional graphs for each test run plotting the time required for the test installation. Setting the INSTALL_SIZES_ARE_A_BENCHMARK=1 environment variable will automatically create additional graphs for each test run plotting the size of the installed test directory.
|
||||
This module utilizes the following environmental variables: RUN_TIMES_ARE_A_BENCHMARK, INSTALL_TIMES_ARE_A_BENCHMARK, INSTALL_SIZES_ARE_A_BENCHMARK.
|
||||
|
||||
### Result Notifier
|
||||
A notification module.
|
||||
|
||||
### Custom Result Export Methods
|
||||
A simple example module about interfacing with Phoronix Test Suite core for dumping result files in a custom format.
|
||||
phoronix-test-suite results_custom_export.nf
|
||||
|
||||
### System Monitor
|
||||
This module contains sensor monitoring support.
|
||||
This module utilizes the following environmental variables: MONITOR, PERFORMANCE_PER_WATT, MONITOR_INTERVAL, MONITOR_PER_RUN.
|
||||
|
||||
### Timed Screenshot
|
||||
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.
|
||||
This module utilizes the following environmental variables: SCREENSHOT_INTERVAL.
|
||||
|
||||
### Toggle Screensaver
|
||||
This module toggles the system's screensaver while the Phoronix Test Suite is running. At this time, the GNOME and KDE screensavers are supported.
|
||||
This module utilizes the following environmental variables: HALT_SCREENSAVER.
|
||||
|
||||
### Update Checker
|
||||
This module checks to see if the Phoronix Test Suite -- and its tests and suites -- are up to date.
|
||||
|
||||
### System Event Watchdog
|
||||
This module has support for stopping/interrupting tests if various system issues occur, like a temperature sensor exceeds a defined threshold.
|
||||
This module utilizes the following environmental variables: WATCHDOG_SENSOR, WATCHDOG_SENSOR_THRESHOLD.
|
||||
|
||||
# Installation Instructions
|
||||
|
||||
## Setup Overview
|
||||
The Phoronix Test Suite supports Linux, Apple Mac OS X, Microsoft Windows, Solaris, Hurd, BSD, and other operating system environments. The only Linux distribution-specific code deals with the external dependencies support feature that are set by individual test profiles. If you are not running one of the supported Linux distributions, Solaris, BSD, or Mac OS X, you may need to install a package manually (as instructed by the Phoronix Test Suite) in order for a test to run. An example of an external dependency would be GCC and the OpenGL Utility Toolkit being needed for test profiles that build an OpenGL benchmark from source-code.
|
||||
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, Alpine Linux, Void Linux, Intel Clear Linux, and Amazon Linux EC2.
|
||||
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.
|
||||
|
||||
## Dependencies
|
||||
The only required dependency for the Phoronix Test Suite is PHP 5.3 or newer. On Linux distributions, the needed package is commonly called *php5-cli* or *php-cli* or *php7* or *php* . 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 [www.php.net](http://www.php.net/) . PHP 7 is fully supported by the Phoronix Test Suite as well as HHVM.
|
||||
For installing PHP on Windows, the [Microsoft Web Platform Installer](https://www.microsoft.com/web/platform/phponwindows.aspx) 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 *C:\Program Files (x86)\PHP\* or a subdirectory.
|
||||
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:
|
||||
|
||||
|
||||
+
|
||||
+ PHP DOM is needed for XML operations and must be installed for the Phoronix Test Suite to function.
|
||||
+
|
||||
+ PHP ZIP is needed for file compression and decompression and specifically dealing with test profiles and suites obtained via OpenBenchmarking.org or when uploading such tests and suites.
|
||||
+
|
||||
+ PHP OpenSSL is used for enabling HTTPS communication with Phoronix Test Suite / OpenBenchmarking.org servers.
|
||||
+
|
||||
+ PHP GD is highly recommended for rendering of test data to JPEG and PNG image formats and is selectively used in other image operations.
|
||||
+
|
||||
+ PHP Zlib is highly recommended for greater data compression when dealing with remote OpenBenchmarking.org assets.
|
||||
+
|
||||
+ PHP PCNTL is used for multi-threaded system sensor monitoring support during the testing process and other threaded tasks by the Phoronix Test Suite module framework.
|
||||
+
|
||||
+ PHP POSIX is used for reliably obtaining more system information in an efficient manner.
|
||||
+
|
||||
+ PHP CURL is supported as an alternative networking library for improved network performance in downloading test files and other operations.
|
||||
+
|
||||
+ PHP FPDF is used to generate PDF reports of test data.
|
||||
+
|
||||
Without all of these extensions, some capabilities of the Phoronix Test Suite will not be available. Many of these packages are enabled by default and do not require any additional installation steps on most Linux distributions, otherwise they are often found in the package vendor's repository.
|
||||
|
||||
## Notes
|
||||
|
||||
### General
|
||||
You may need to modify the *php.ini* file on your system in order to support uploading results to OpenBenchmarking.org or logging into your OpenBenchmarking.org account. The *allow_url_fopen* , *file_uploads* , and *allow_url_include* options must be set to true in the PHP configuration. See additional information in this [Phoronix Forums support thread](http://www.phoronix.com/forums/showpost.php?p=32484&postcount=4) .
|
||||
Major updates to the Phoronix Test Suite are released on a quarterly basis. The latest stable and development versions of the Phoronix Test Suite are available at [Phoronix-Test-Suite.com](http://www.phoronix-test-suite.com/) . The Git repository where the latest Phoronix Test Suite code is provided is hosted at [GitHub.com/phoronix-test-suite](https://github.com/phoronix-test-suite/phoronix-test-suite) and can be cloned/pulled from the *https://github.com/phoronix-test-suite/phoronix-test-suite.git* repository location. The latest upstream development code is housed in the master tree while older Phoronix Test Suite releases are available in their respective Git branches based upon the release's code-name.
|
||||
If building the PHP package from upstream sources, it should just be a matter of running *./configure* with the *--enable-zip* flag (all other requirements should be apart of the stock PHP configuration) to satisfy the PHP needs of the Phoronix Test Suite.
|
||||
|
||||
### File Structure
|
||||
If manually changing the location of the *phoronix-test-suite* launcher file, the *PTS_USER_PATH* environment variable must be adjusted inside the file to reflect the absolute location that leads to the root directory of the *pts* and *pts-core* folders. The *pts-core* directory contains the "engine" of the Phoronix Test Suite.
|
||||
|
||||
### Running Locally
|
||||
The Phoronix Test Suite can be simply extracted from the downloaded *.tar.gz* or *.zip* file or it can also be installed system-wide. If you just wish to run the Phoronix Test Suite without installing it, open a terminal and run *./phoronix-test-suite <options>* from the same directory.
|
||||
|
||||
### Generic Installation
|
||||
Running *install-sh* from the root directory of the Phoronix Test Suite will install the software for system-wide access. By default the *phoronix-test-suite* executable is in */usr/bin/* , the Phoronix Test Suite files in */usr/share/phoronix-test-suite/* , and the documentation in / *usr/share/doc/phoronix-test-suite/* . Root access is required. The default installation prefix is /usr/ but can be adjusted as the first argument (example: *install-sh /home/user/* to install the Phoronix Test Suite in your home directory).
|
||||
|
||||
### Debian/Ubuntu Installation
|
||||
Debian/Ubuntu users are able to follow the Generic Installation instructions or can obtain a Debian Package from the Phoronix Test Suite web-site. The package contains the *phoronix-test-suite* executable in */usr/bin/* , the Phoronix Test Suite files in */usr/share/phoronix-test-suite/* , and the documentation in */usr/share/doc/phoronix-test-suite/* .
|
||||
A phoronix-test-suite package can also be found in the official Ubuntu universe repository beginning with the Ubuntu 9.04 (Jaunty) release, but it may be out of date compared to the latest upstream version.
|
||||
On Ubuntu 13.04 and newer if you experience an issue of system sensor monitoring not working, other multi-process tasks, or related issues reported as PHP PCNTL missing, the pcntl functions need to be removed from the *disable_functions* line within the */etc/php5/cli/php.ini* file. This may also affect other Linux distribution support too if the vendor disables access to the PCNTL functions.
|
||||
|
||||
### Fedora / Red Hat Installation
|
||||
The Phoronix Test Suite can be installed on Fedora, Red Hat Enterprise Linux, and CentOS systems using the generic installation method. Alternatively, a *phoronix-test-suite* package is available in recent versions of the Fedora repository and in the EPEL (Extra Packages for Enterprise Linux) repository for Red Hat Enterprise Linux. At this time, however, the Fedora-supplied package is vastly out of date.
|
||||
|
||||
### Gentoo Installation
|
||||
Gentoo ebuild's for the Phoronix Test Suite have been created by users and can be currently found in the [Gentoo BugZilla](http://bugs.gentoo.org/show_bug.cgi?id=216656) .
|
||||
|
||||
### Mandriva Installation
|
||||
Phoronix Test Suite packages are available through Mandriva Cooker starting with the Mandriva Linux 2009 release.
|
||||
|
||||
### OpenSolaris Installation
|
||||
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 *SUNWphp524* 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.
|
||||
|
||||
### BSD Installation
|
||||
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.
|
||||
For DragonFlyBSD, it's a matter of just using *pkg_radd* with php5, php5-json, php5-dom, and php5-zip or *pkgsrc* . With DragonFlyBSD using dports, the command is *pkg install php5 php5-dom php5-zip php5-json php5-simplexml* . Under FreeBSD/PC-BSD, PHP can be obtained from the *php5* and *php5-extensions* Ports collection.
|
||||
|
||||
### Mac OS X Installation
|
||||
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.
|
||||
|
||||
### Windows Installation
|
||||
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.
|
||||
At this time the Phoronix Test Suite client is dependent upon the *php.exe* executable being installed to *C:\Program Files (x86)\PHP\ * 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 *phoronix-test-suite.bat*
|
||||
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.
|
||||
|
||||
### Facebook HipHop
|
||||
The Phoronix Test Suite can use Facebook's [HipHop HHVM](https://github.com/facebook/hiphop-php) 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 *PHP_BIN* environment variable can be set to point to an alternative *hhvm* binary.
|
||||
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 *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"* from the root *phoronix-test-suite/* directory. It can then be executed in the form of */tmp/hphp_XXX/program -f pts-core/phoronix-test-suite.php system-info* .
|
||||
|
||||
# External Dependencies
|
||||
The Phoronix Test Suite has a feature known as "External Dependencies" where the Phoronix Test Suite can attempt to automatically install some of the test-specific dependencies on supported distributions. If running on a distribution where there is currently no External Dependencies profile, the needed package name(s) are listed for manual installation.
|
||||
Below are a list of the operating systems that currently have external dependencies support within the Phoronix Test Suite for the automatic installation of needed test files.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Alpine LinuxAmazonAngstromArch LinuxCentOSClearOSClearOS Core ServerDebianDragonFlyBSDFedoraFluxbuntuGNU KFreeBSDGentooGoobuntuHPJoli CloudLinaroLinux Embedded Development EnvironmentLinux MintMEPISMac OS XMacPortsMageiaMandrivaMeeGoMicrosoft WindowsMidnightBSDMoblinMythbuntuNetBSDNexenta CoreOLPCOpenIndianaOpenMandrivaOpenSolarisOpenSuSEOptwareOracle ServerPCLinuxOSPTS Desktop LivePTS Linux LivePalmPardus LinuxRed Hat EnterpriseRed Hat Enterprise ServerSUSESUSE LinuxScientificScientificSLSolusSolus LinuxTermuxUbuntuVoid LinuxZenwalkgNewSense
|
||||
# Configuration
|
||||
|
||||
## User Files & Folders
|
||||
**~/.phoronix-test-suite/user-config.xml**
|
||||
This is a per-user configuration file. Among the information stored here is the test options, locations for storing files, and batch mode options. This file is formatted in XML.
|
||||
**~/.phoronix-test-suite/graph-config.json**
|
||||
This is a per-user configuration file for storing graph attributes. The adjustable options include HTML hex color codes for different areas of the graph, dimensions of the graph, and font sizes. This file is formatted in JSON.
|
||||
**~/.phoronix-test-suite/download-cache/**
|
||||
This directory contains test packages that have been downloaded for test profiles. For more information on the download cache.
|
||||
**~/.phoronix-test-suite/installed-tests/**
|
||||
This directory is where tests are installed by default. Each test has its own directory within a sub-directory of *installed-tests/* based upon its OpenBenchmarking.org repository. In the test's folder is a *pts-install.xml* file used for managing the installation.
|
||||
**~/.phoronix-test-suite/test-results/**
|
||||
This directory is where tests results are saved by default. Each saved file has its own directory. In the saved directory is then a *composite.xml* file containing the useful results while in the *test-X.xml* files are back-ups of the results.
|
||||
**~/.phoronix-test-suite/modules-data/**
|
||||
This is the directory where any Phoronix Test Suite modules should save any files to, within a sub-directory of the module's name. The module configuration settings are also stored within this directory.
|
||||
**~/.phoronix-test-suite/test-profiles/**
|
||||
This is the directory where test profiles are stored.
|
||||
**~/.phoronix-test-suite/test-suites/**
|
||||
This is the directory where test suites are stored.
|
||||
|
||||
## Environment Variables
|
||||
**TEST_RESULTS_NAME**
|
||||
When this variable is set, the value will be used as the name for automatically saving the test results.
|
||||
**TEST_RESULTS_IDENTIFIER**
|
||||
When this variable is set, the value will be used as the test identifier when automatically saving the test results.
|
||||
**TEST_RESULTS_DESCRIPTION**
|
||||
When this variable is set, the value will be used as the test results description when saving the test results.
|
||||
**PRESET_OPTIONS**
|
||||
For setting any test option(s) from an environment variable rather than being prompted for the options when running a test. Example: *PRESET_OPTIONS="stream.run-type=Add" ./phoronix-test-suite benchmark stream* . Multiple options can be passed to this environment variable when delimited by a semicolon.
|
||||
**SKIP_TESTS**
|
||||
If there are any test(s) to exempt from the testing process, specify them in this variable. Multiple tests can be waived by delimiting each test identifier by a comma. A test hardware type (i.e. Graphics) can also be supplied for skipping a range of tests.
|
||||
**SKIP_TESTS_HAVING_ARGS**
|
||||
If any of the test(s) have an argument matching any strings contained in this environment variable, the test execution will be skipped. Multiple strings can be set when delimiting by a comma.
|
||||
**RUN_TESTS_IN_RANDOM_ORDER**
|
||||
Setting this environment variable will cause the tests to be run in a random order.
|
||||
**SKIP_TESTING_SUBSYSTEMS**
|
||||
If you are running a set of benchmarks (namely a result file) but wish to skip some of the tests that don't belong to a certain test type group, you can set the hardware types to test via this environment variable. E.g. setting *SKIP_TESTING_SUBSYSTEMS=Graphics* will skip all test profiles to run that are not of the graphics test group. Multiple types should be delimited by a comma.
|
||||
**PTS_MODULE_SETUP**
|
||||
This variable can be used to load Phoronix Test Suite module settings automatically when using the *module-setup* option. An example would be: *PTS_MODULE_SETUP="phoromatic.remote_host=http://www.phoromatic.com/; phoromatic.remote_account=123456; phoromatic.remote_verifier=ABCD" phoronix-test-suite module-setup phoromatic* .
|
||||
**PTS_MODULES**
|
||||
If there are any Phoronix Test Suite modules to additionally load, they can be specified here. Multiple modules can be supplied by delimiting them with a comma. The more appropriate way of loading Phoronix Test Suite modules for longer periods of time is by using the *~/.phoronix-test-suite/user-config.xml* configuration.
|
||||
**NO_PHODEVI_CACHE**
|
||||
This is a debugging option to disable the Phodevi cache from being loaded of cached software/hardware information. Instead, all software/hardware will be polled from the Phodevi library without caching.
|
||||
**EXTERNAL_PHODEVI_CACHE**
|
||||
This option can be used for loading an external Phodevi cache. Such as loading the native hardware/software information from within a Windows Wine client from a native system host.
|
||||
**PTS_DISPLAY_MODE**
|
||||
If you wish to load a non-default display mode for a single instance, specify the mode in this variable.
|
||||
**TOTAL_LOOP_TIME**
|
||||
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.
|
||||
**LIMIT_ELAPSED_TEST_TIME**
|
||||
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.
|
||||
**TOTAL_LOOP_COUNT**
|
||||
When running any test(s), if you would like the test(s) to continue running for a number of times, this variable can be used. The value should be the number of times to loop the testing process before ending.
|
||||
**FORCE_TIMES_TO_RUN**
|
||||
If you wish to override the number of times to run each test -- rather than the Phoronix Test Suite using the number of times specified in each test profile -- this variable can be used.
|
||||
**FORCE_MIN_TIMES_TO_RUN**
|
||||
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.
|
||||
**NO_FILE_HASH_CHECKS**
|
||||
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 *NO_MD5_CHECKS* , which is still honored but was changed to *NO_FILE_HASH_CHECKS* to reflect other kind of file hash sum checks.
|
||||
**NO_HTTPS**
|
||||
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.
|
||||
**PTS_DOWNLOAD_CACHE**
|
||||
While non-standard Phoronix Test Suite download caches can be specified within the *user-config.xml* file, an additional directory to look for potential Phoronix Test Suite download files can be specified by this variable.
|
||||
**GRAPH_HIGHLIGHT**
|
||||
If this variable is set with a valid test identifer from a result file whether you are using the *refresh-graphs* command or any other related to the rendering of test results on a bar graph, the specified test identifier's result will be rendered in a different color than the other test results. Multiple identifiers can be specified when delimited by a comma. Additionally, for each key it is possible to provide the actual color value, or an index in the color palette. Example: "will_be_different,group1a=1,group1b=1,blue=#0000ff"
|
||||
**TEST_EXEC_PREPEND**
|
||||
Set this variable to any command/environment variable that you may be passed prepended to the test execution string at runtime.
|
||||
**VIDEO_MEMORY**
|
||||
If Phodevi fails to detect the system's video memory capacity or is incorrectly detected, the video memory capacity (in MB) can be specified by this variable.
|
||||
**OVERRIDE_VIDEO_MODES**
|
||||
If Phodevi fails to detect all of the system's monitor video modes or a separate set of modes would be preferred, the modes can be specified in this variable. Example: *OVERRIDE_VIDEO_MODES=800x600,1024x768,1280x1024 phoronix-test-suite benchmark nexuiz* .
|
||||
**SKIP_TEST_SUPPORT_CHECKS**
|
||||
If this environment variable is set, it will not honor the support checks made by individual test profiles. I.e. test profiles that would normally be considered un-supported on a given platform are attempted to install and run regardless.
|
||||
**SKIP_ALL_TEST_SUPPORT_CHECKS**
|
||||
If this environment variable is set, all tests will be permitted on the client for execution. SKIP_ALL_TEST_SUPPORT_CHECKS is more liberal than SKIP_TEST_SUPPORT_CHECKS in letting disk tests run on RAM-based file-systems, attempt to run 2D/3D tests on VESA display drivers, and other special cases.
|
||||
**DEFAULT_VIDEO_MODE**
|
||||
If Phodevi fails to detect the system's monitor standard / default resolution, the mode can be specified in this variable. Example: *DEFAULT_VIDEO_MODE=1680x1050 phoronix-test-suite benchmark nexuiz* .
|
||||
**SKIP_EXTERNAL_DEPENDENCIES**
|
||||
To skip the Phoronix Test Suite external dependency checking/installation when installing a test, set this environment variable to *1* . If wishing to skip only certain external dependencies, set this variable's value to the name of the external dependencies (the generic dependency names used by the Phoronix Test Suite) to not install. Multiple dependencies to skip can be delimited by a comma.
|
||||
|
||||
# General Information
|
||||
|
||||
## Frequently Asked Questions
|
||||
**Q: May I use the Phoronix Test Suite when running benchmarks for my own publication or blog? Are there any publishing restrictions?**
|
||||
**A:** Anyone is more than welcome to use the Phoronix Test Suite for their own publication or purpose. While the Phoronix Test Suite came out of our internal test tools for carrying out Linux hardware reviews at [Phoronix.com](http://www.phoronix.com/) , we invite other hardware review web-sites, technology journals, and independent publications to use our software too. While not required, we would just kindly ask that you mention in your review/article that the *Phoronix Test Suite* was used for carrying out your testing, and ideally to link to [www.phoronix-test-suite.com](http://www.phoronix-test-suite.com/) so that your readers will know where to obtain the software if they are interested in running the tests. You are also more than welcome to upload your results to [OpenBenchmarking.org](http://www.openbenchmarking.org/) so that others may compare their results against yours in an easy manner.
|
||||
We also try to make the Phoronix Test Suite easy-to-use by independent publications. For example, if you would like to watermark your web-site's URL into the graphs containing your test results, that can be easily modified in *~/.phoronix-test-suite/graph-config.json* . The colors and other graph settings are also stored in this XML file. If you are a publication and run into any issues with the Phoronix Test Suite or have a feature request, please let us know.
|
||||
A partial list of other publications using the Phoronix Test Suite can be found in [this forum thread](http://www.phoronix.com/forums/showthread.php?t=12925) .
|
||||
**Q: Why does the Phoronix Test Suite not use my distribution's package management system for acquiring all needed packages?**
|
||||
**A:** The tests themselves are generally downloaded from source and built locally on the machine, rather than fetching any distribution-specific packages. This is done to ensure more comparable results across operating systems / releases, etc. The distribution packager could be applying a number of unknown patches to the software, building the software with unique build options, or making other changes to the software that could skew the results.
|
||||
**Q: Besides being a developer, documentation writer, or having any other unique technical abilities, how else can I contribute to the Phoronix Test Suite?**
|
||||
**A:** Independent code contributions are very welcome as well as creating your own test profiles and suites. We also appreciate any feedback, comments, or other ideas either by emailing us, posting on the forums, or sending a message to the mailing list. You can also see this (outdated) [forum thread](http://www.phoronix.com/forums/showthread.php?t=16180) .
|
||||
**Q: Do you offer technical support for the Phoronix Test Suite**
|
||||
**A:** Paid, professional support is available and is done via [our commercial services](http://commercial.phoronix-test-suite.com/) . We also offer Phoromatic licenses for use within a corporate intranet and other custom services. Free, community support is offered via our [mailing list](http://phoronix-test-suite.com/mailman/listinfo/trondheim-pts_phoronix-test-suite.com) , IRC channel ( *#phoronix* on *FreeNode.net* , and the [Phoronix Forums](http://www.phoronix.com/forums/) .
|
||||
**Q: May I put the Phoronix Test Suite logo on my company's web-site or on my product packaging?**
|
||||
**A:** [Contact us](http://www.phoronix-test-suite.com/?k=contact) for licensing information and details regarding the Phoronix Certification & Qualification Suite.
|
||||
**Q: How often is the Phoronix Test Suite updated?**
|
||||
**A:** We provide major updates on a quarterly basis with an occasional point release to fix outstanding bugs or address other issues. The latest work going into the Phoronix Test Suite is accessible via our Git repository at [GitHub.com/phoronix-test-suite](https://github.com/phoronix-test-suite/phoronix-test-suite/) .
|
||||
|
||||
## Tips & Tricks
|
||||
|
||||
### General
|
||||
- The desktop's screensaver will automatically be shutdown when a test is running and will be restored to its previous state upon the test's completion. This is supported for GNOME, KDE, and other XDG-supportive desktop environments.
|
||||
- If you have many computers you wish to benchmark, once all of your tests have been downloaded, run *phoronix-test-suite make-download-cache* to generate a copy of these files at *~/.phoronix-test-suite/download-cache/* . A download cache is used for conserving time and bandwidth by eliminating the need for the Phoronix Test Suite to download files that have already been downloaded once. Copy this folder to the other systems or copy it to a DVD or USB hard drive, connect it to the next test system, and the Phoronix Test Suite will automatically use this local download cache. Or store these files on a local HTTP/FTP server and then update your *~/.phoronix-test-suite/user-config.xml* file to reflect the location of this download cache directory.
|
||||
|
||||
### Running
|
||||
- When running a test in batch mode (through the use of the *batch-run* or *batch-benchmark* options) that normally has end-user options (such as the sub-test to run or resolution), the Phoronix Test Suite will run the test with each unique combination of options possible, if configured appropriately.
|
||||
- When running a test where you are prompted to enter any test options, multiple selections can be performed -- which will result in multiple test runs for each combination of the selected option(s) -- by separating each intended test option / number with a comma.
|
||||
- When being prompted for the test identifier or the file name for saving the results, several user variables are supported. These include *$VIDEO_RESOLUTION* , *$VIDEO_CARD* , *$OPERATING_SYSTEM* , *$PROCESSOR* , *$MOTHERBOARD* , *$CHIPSET* , and *$KERNEL_VERSION* . If any of these variables are entered, the Phoronix Test Suite will replace them with their respective values before saving the results.
|
||||
- If *RemoveDownloadFiles* is set to *TRUE* within the *user-config.xml* file, once a test has been installed the originally downloaded files for that test will be automatically removed. This conserves disk space but will cause these files to be re-downloaded the next time the test needs to be re-installed. This will also not back up the downloaded files to the Phoronix Test Suite download cache. Enabling this option is just recommended for users with very limited disk space.
|
||||
- If the amount of video memory for your graphics card is incorrectly reported by the Phoronix Test Suite (you can check by running *phoronix-test-suite diagnostics* ), you can use the *VIDEO_MEMORY=* environment variable for overriding the video memory capacity (in Megabytes) used by the Phoronix Test Suite.
|
||||
- If the *DISPLAY* environment variable is not set or *NO_GRAPHICS_TESTS* environment variable is set, tests of type *Graphics* will not be run. Likewise, if *NO_SYSTEM_TESTS* environment variable is set, tests of type *System* will not run. This applies to all test types where *NO_<TEST TYPE>_TESTS* is set.
|
||||
- If while running multiple tests you want to quit the testing prematurely, in a new terminal window type *touch ~/.phoronix-test-suite/halt-testing* . All results for tests that had already run will be saved (permitting you opted to save the results), except for the test currently being run.
|
||||
- If you wish to stop the current test run prematurely but continue the testing process, in a new terminal window type *touch ~/.phoronix-test-suite/skip-test* .
|
||||
- If you want the specified test(s) to run in a loop for a set period of time, use the *TOTAL_LOOP_TIME* environment variable. For instance, running *TOTAL_LOOP_TIME=120 phoronix-test-suite benchmark ffmpeg* would keep running the ffmpeg test profile for 120 minutes.
|
||||
- If you want the specified test(s) to run in a loop for a set number of times, use the *TOTAL_LOOP_COUNT* environment variable. For instance, running *TOTAL_LOOP_COUNT=3 phoronix-test-suite benchmark ffmpeg* would keep running the ffmpeg test profile three times.
|
||||
- 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 *phoronix-test-suite.active* (i.e. */tmp/phoronix-test-suite.active* ) 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.
|
||||
|
||||
### Troubleshooting
|
||||
In the event that a test profile fails to install or run, the following general troubleshooting steps may be helpful:- If a test profile fails immediately after starting, check the test profile's directory in *~/.phoronix-test-suite/installed-tests/* 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.
|
||||
- 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
|
||||
- Try running the test profile with the *debug-benchmark* command, or reinstalling with the *debug-install* command and make note of any unusual output.
|
||||
|
||||
### Configuration
|
||||
- The user configuration options for the Phoronix Test Suite are stored in *~/.phoronix-test-suite/user-config.xml* . The batch mode options are also stored within this file and those can be adjusted by running *phoronix-test-suite batch-setup* .
|
||||
- The colors, size, and other attributes for the graphs found within the Phoronix Test Suite Results Viewer can be modified via the file *~/.phoronix-test-suite/graph-config.json* .
|
||||
|
||||
### Test / Suite Writing
|
||||
- The Phoronix Test Suite recursively determines tests/suites and allows a suite to call another suite.
|
||||
|
||||
### Module Writing
|
||||
- By writing a Phoronix Test Suite module, you can easily extend the functionality of the Phoronix Test Suite. Some examples are being able to email the results upon completion, controlling the system's screensaver, updating a text LCD panel with the current test status, etc.
|
||||
|
||||
# Virtual Test Suites
|
||||
Virtual test suites are not like a traditional test suite defined by the XML suite specification. Virtual test suites are dynamically generated in real-time by the Phoronix Test Suite client based upon the specified test critera. Virtual test suites can automatically consist of all test profiles that are compatible with a particular operating system or test profiles that meet other critera. When running a virtual suite, the OpenBenchmarking.org repository of the test profiles to use for generating the dynamic suite must be prefixed.
|
||||
Virtual test suites can be installed and run just like a normal XML test suite and shares nearly all of the same capabilities. However, when running a virtual suite, the user will be prompted to input any user-configuration options for needed test profiles just as they would need to do if running the test individually. When running a virtual suite, the user also has the ability to select individual tests within the suite to run or to run all of the contained test profiles. Virtual test suites are also only supported for an OpenBenchmarking.org repository if there is no test profile or test suite of the same name in the repository. Below is a list of common virtual test suites for the main Phoronix Test Suite repository, but the dynamic list of available virtual test suites based upon the enabled repositories is available by running *phoronix-test-suite list-available-virtual-suites.*
|
||||
|
||||
---
|
||||
#### All PTS Tests pts/all
|
||||
This is a collection of all test profiles found within the specified OpenBenchmarking.org repository.
|
||||
#### Installed Tests pts/installed
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository that are already installed on the system under test.
|
||||
#### Linux Operating System Tests pts/linux
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Linux Operating System.
|
||||
#### Solaris Operating System Tests pts/solaris
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Solaris Operating System.
|
||||
#### BSD Operating System Tests pts/bsd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the BSD Operating System.
|
||||
#### MacOSX Operating System Tests pts/macosx
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the MacOSX Operating System.
|
||||
#### Windows Operating System Tests pts/windows
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Windows Operating System.
|
||||
#### Hurd Operating System Tests pts/hurd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Hurd Operating System.
|
||||
#### System Subsystem Tests pts/system
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the System sub-system.
|
||||
#### Processor Subsystem Tests pts/processor
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Processor sub-system.
|
||||
#### Graphics Subsystem Tests pts/graphics
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Graphics sub-system.
|
||||
#### Other Subsystem Tests pts/other
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Other sub-system.
|
||||
#### Utility Tests pts/utility
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Utility software test.
|
||||
#### Simulator Tests pts/simulator
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Simulator software test.
|
||||
#### Scientific Tests pts/scientific
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Scientific software test.
|
||||
#### Benchmark Tests pts/benchmark
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Benchmark software test.
|
||||
#### Application Tests pts/application
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Application software test.
|
||||
#### Game Tests pts/game
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Game software test.
|
||||
#### Smp Tests pts/smp
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing smp.
|
||||
#### Cuda Tests pts/cuda
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing cuda.
|
||||
#### Python Tests pts/python
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing python.
|
||||
#### Go Tests pts/go
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing go.
|
||||
#### Mpi Tests pts/mpi
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing mpi.
|
||||
#### Openmp Tests pts/openmp
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing openmp.
|
||||
#### Vdpau Tests pts/vdpau
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing vdpau.
|
||||
#### Video Tests pts/video
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing video.
|
||||
#### Responsiveness Tests pts/responsiveness
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing responsiveness.
|
||||
#### Openmpi Tests pts/openmpi
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing openmpi.
|
||||
#### All SYSTEM Tests system/all
|
||||
This is a collection of all test profiles found within the specified OpenBenchmarking.org repository.
|
||||
#### Installed Tests system/installed
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository that are already installed on the system under test.
|
||||
#### Linux Operating System Tests system/linux
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Linux Operating System.
|
||||
#### Solaris Operating System Tests system/solaris
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Solaris Operating System.
|
||||
#### BSD Operating System Tests system/bsd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the BSD Operating System.
|
||||
#### MacOSX Operating System Tests system/macosx
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the MacOSX Operating System.
|
||||
#### Windows Operating System Tests system/windows
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Windows Operating System.
|
||||
#### Hurd Operating System Tests system/hurd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Hurd Operating System.
|
||||
#### System Subsystem Tests system/system
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the System sub-system.
|
||||
#### Processor Subsystem Tests system/processor
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Processor sub-system.
|
||||
#### Disk Subsystem Tests system/disk
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Disk sub-system.
|
||||
#### Graphics Subsystem Tests system/graphics
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Graphics sub-system.
|
||||
#### Memory Subsystem Tests system/memory
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Memory sub-system.
|
||||
#### Network Subsystem Tests system/network
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Network sub-system.
|
||||
#### Other Subsystem Tests system/other
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Other sub-system.
|
||||
#### Utility Tests system/utility
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Utility software test.
|
||||
#### Simulator Tests system/simulator
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Simulator software test.
|
||||
#### Scientific Tests system/scientific
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Scientific software test.
|
||||
#### Benchmark Tests system/benchmark
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Benchmark software test.
|
||||
#### Application Tests system/application
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Application software test.
|
||||
#### Game Tests system/game
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Game software test.
|
||||
#### Opencl Tests system/opencl
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing opencl.
|
||||
#### Cuda Tests system/cuda
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing cuda.
|
||||
#### All SYSTEM Tests system/all
|
||||
This is a collection of all test profiles found within the specified OpenBenchmarking.org repository.
|
||||
#### Installed Tests system/installed
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository that are already installed on the system under test.
|
||||
#### Linux Operating System Tests system/linux
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Linux Operating System.
|
||||
#### Solaris Operating System Tests system/solaris
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Solaris Operating System.
|
||||
#### BSD Operating System Tests system/bsd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the BSD Operating System.
|
||||
#### MacOSX Operating System Tests system/macosx
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the MacOSX Operating System.
|
||||
#### Windows Operating System Tests system/windows
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Windows Operating System.
|
||||
#### Hurd Operating System Tests system/hurd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Hurd Operating System.
|
||||
#### System Subsystem Tests system/system
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the System sub-system.
|
||||
#### Processor Subsystem Tests system/processor
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Processor sub-system.
|
||||
#### Disk Subsystem Tests system/disk
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Disk sub-system.
|
||||
#### Graphics Subsystem Tests system/graphics
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Graphics sub-system.
|
||||
#### Memory Subsystem Tests system/memory
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Memory sub-system.
|
||||
#### Network Subsystem Tests system/network
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Network sub-system.
|
||||
#### Other Subsystem Tests system/other
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Other sub-system.
|
||||
#### Utility Tests system/utility
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Utility software test.
|
||||
#### Simulator Tests system/simulator
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Simulator software test.
|
||||
#### Scientific Tests system/scientific
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Scientific software test.
|
||||
#### Benchmark Tests system/benchmark
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Benchmark software test.
|
||||
#### Application Tests system/application
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Application software test.
|
||||
#### Game Tests system/game
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Game software test.
|
||||
#### Opencl Tests system/opencl
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing opencl.
|
||||
#### Cuda Tests system/cuda
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing cuda.
|
||||
#### All WINDOWS Tests windows/all
|
||||
This is a collection of all test profiles found within the specified OpenBenchmarking.org repository.
|
||||
#### Installed Tests windows/installed
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository that are already installed on the system under test.
|
||||
#### Linux Operating System Tests windows/linux
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Linux Operating System.
|
||||
#### Solaris Operating System Tests windows/solaris
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Solaris Operating System.
|
||||
#### BSD Operating System Tests windows/bsd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the BSD Operating System.
|
||||
#### MacOSX Operating System Tests windows/macosx
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the MacOSX Operating System.
|
||||
#### Windows Operating System Tests windows/windows
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Windows Operating System.
|
||||
#### Hurd Operating System Tests windows/hurd
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the Hurd Operating System.
|
||||
#### System Subsystem Tests windows/system
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the System sub-system.
|
||||
#### Processor Subsystem Tests windows/processor
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Processor sub-system.
|
||||
#### Disk Subsystem Tests windows/disk
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Disk sub-system.
|
||||
#### Graphics Subsystem Tests windows/graphics
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Graphics sub-system.
|
||||
#### Memory Subsystem Tests windows/memory
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Memory sub-system.
|
||||
#### Network Subsystem Tests windows/network
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Network sub-system.
|
||||
#### Other Subsystem Tests windows/other
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the Other sub-system.
|
||||
#### Utility Tests windows/utility
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Utility software test.
|
||||
#### Simulator Tests windows/simulator
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Simulator software test.
|
||||
#### Scientific Tests windows/scientific
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Scientific software test.
|
||||
#### Benchmark Tests windows/benchmark
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Benchmark software test.
|
||||
#### Application Tests windows/application
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Application software test.
|
||||
#### Game Tests windows/game
|
||||
This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a Game software test.
|
||||
|
||||
# Component Testing
|
||||
|
||||
## Compiler Testing & Masking
|
||||
A majority of the test profiles provided by OpenBenchmarking.org to the Phoronix Test Suite are source-based tests. Relying upon the upstream source-code for each program under test allows for the tests to be easily brought to new platforms and architectures, avoids any out-of-tree / non-default packaging differences by different distributions and operating systems, and to allow the Phoronix Test Suite user to easily test new compilers and/or compiler options. For the source-based tests, the Phoronix Test Suite relies upon a compiler (e.g. GCC, LLVM/Clang, Sun Studio, Open64, et al) being present on the system under test. The Phoronix Test Suite does respect *CC/CXX* environment variables and test profiles are expected to honor *CFLAGS/CXXFLAGS* and other compiler settings.
|
||||
As of Phoronix Test Suite 3.8, a compiler masking method is utilized for logging compiler options and other settings with each test profile installation. Prior to installing an open-source test, the Phoronix Test Suite determines the intended compiler to be used based upon the pre-set environment variables or the pre-set compiler(s) within the *PATH* environment variable. The Phoronix Test Suite then masks the compiler to ensure that any options/flags submitted to the compiler are first passed through pts-core so that they can be logged for later use, then is linked to the original, intended compiler. Additionally, other compiler binary names of the same type are blacklisted to prevent their un-intended use (i.e. if a test profile has hard-coded *gcc* in its build script, but *clang* is set as the compiler via *CC* , a sym-link will automatically be created from *gcc* to the masked *clang* for the duration of its test installation).
|
||||
The logged compiler data is then used by the Phoronix Test Suite following the test execution process for automated result analysis. If there is a detected change in compiler settings, the differences are automatically reported to the test result graphs. Additionally, key compiler information (e.g. the compiler optimization level and key libraries that were linked at compile-time) is reported as a footnote on result graphs. The Phoronix Test Suite handles all of this in a fully automated manner; test profiles require no changes to take advantage of these compiler-reporting capabilities.
|
||||
Separately, the Phoronix Test Suite attempts to automatically log the system compiler's build configuration (i.e. GCC's *gcc -v* "Configured with") output. If the Phoronix Test Suite detects there is a compiler build configuration change between test runs in a result file, it will report each compiler's build configuration to the system information table within the results viewer. Reported to the table is a reduced view of the build configuration options, with less relevant items being stripped away from this view to reduce verbosity. Upon clicking the text, the raw compiler information output can be viewed in full.
|
||||
|
||||
## Disk / File-System Testing
|
||||
By default tests are installed to *~/.phoronix-test-suite/installed-tests/* . However, the location can be updated from *~/.phoronix-test-suite/user-config.xml* or dynamically via the *PTS_TEST_INSTALL_ROOT_PATH* environment variable.
|
||||
When any disk tests are executed, the Phoronix Test Suite will attempt to log the mount options and scheduler of the disk/partition being used for testing. This information is subsequently displayed within the system information table. If the scheduler / mount options are maintained the same throughout all test runs, only a single line is displayed otherwise the options for each test run will be automatically displayed. The file-system in use is always captured and shown in the system information table.
|
||||
|
||||
# Phoromatic
|
||||
|
||||
## Overview
|
||||
The Phoronix Test Suite now features its own built-in Phoromatic server and client implementations. See the *phoromatic.pdf* / *phoromatic.html* documentation for more information on this advanced capability.
|
||||
|
||||
# Creating Test Profiles
|
||||
|
||||
## Creating A New Phoronix Test Suite / OpenBenchmarking.org Test Profile
|
||||
A test profile itself consists of a main XML file containing the test's meta-data ( *test-definition.xml* ), an XML file if needed to specify required files, download URLs and their MD5/SHA256 hashes and file sizes ( *downloads.xml* ), and the *install.sh* script for installing the test and generating the run-script for execution by the Phoronix Test Suite at run-time. There are also other potential files like *pre.sh* , *interim.sh* , and *post.sh* for execution at pre-run, interim-run, and post-run stages by the Phoronix Test Suite. With the script files comprising test profiles, there is also the option of post-fixing them with e.g. *_linux* or *_windows* if wishing to supply different script files based upon the operating system being run during testing, if the setup steps may differ greatly based upon MacOS/Windows/Linux/BSD/Solaris platforms.
|
||||
Traditionally the easiest way to learn/understand test profile development has been by looking at looking at a basic test like *c-ray* , *tesseract* or the hundreds of others that are publicly available. Simply run for example *phoronix-test-suite benchmark tesseract* and then look at the test profile's contents either via the default locations in *~/.phoronix-test-suite/test-profiles* or */var/lib/phoronix-test-suite/test-profiles/* if running as root on non-Windows platforms.
|
||||
|
||||
### Versioning Mandate
|
||||
The Phoronix Test Suite / OpenBenchmarking.org philosophy *mandates that with any change, a new version of the test profile be tagged* . This is done for reproducibility and being able to ensure the exact test profile state when a set of tests are conducted. Test profiles are versioned in a **test-X.Y.Z** format where *X* or *Y* are bumped whenever a change is made to the test profile that makes the results incomparable to a previous version of the tests (e.g. updating against a new upstream code-base, adjusting the parameters to what is benchmarked, etc). The Phoronix Test Suite then knows not to attempt any comparisons with an incompatible version difference or to go and fetch that specific version of the package. The *Z* is bumped when just making non-important changes such as just updating the test's meta-data, changing download URLs, etc. This is easy to enforce with the OpenBenchmarking.org infrastructure rather than having to worry about non-human-friendly Git hashes as test profile versions or having to create Git tags after every commit. The test profile version can optionally be specified when running a test, e.g. *phoronix-test-suite benchmark scimark2-1.2.1* instead of *phoronix-test-suite benchmark scimark2* , which would by default choose the latest available test profile version from OpenBenchmarking.org or the latest version on any local Phoromatic Server. The test profile versions are also always written out as part of the Phoronix Test Suite result XML data.
|
||||
|
||||
### Writing A Sample Program
|
||||
Writing a test profile for the Phoronix Test Suite is a relatively quick and easy process for anyone familiar with common Linux commands and the basics of XML. To help you understand the design of the Phoronix Test Suite, this guide covers the steps needed to write a testing profile for a very simple application.
|
||||
The first step in the profile writing process is to, well, have a piece of software you'd like to use with the Phoronix Test Suite. This software can be closed-source or open-source and be virtually anything as long as it is compatible with an operating system that is supported by the Phoronix Test Suite.
|
||||
For this guide, the piece of software being used for demonstration is just a simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. Below is this sample piece of software intended just for demonstration purposes.
|
||||
|
||||
> #include <iostream>
|
||||
> #include <math.h>
|
||||
> int main()
|
||||
> {
|
||||
> double pi = 0;
|
||||
> for(long int i = 1; i <= 87654321; i++)
|
||||
> pi += (double) pow(-1, i + 1) / (2 * i - 1);
|
||||
> pi *= 4;
|
||||
> std::cout << "Done Calculating Pi..." << endl;
|
||||
> return 0;
|
||||
> }
|
||||
|
||||
The first step in the actual profile writing process is to name it. If you're looking to ultimately push this profile to be included in the Phoronix Test Suite, its name must be all lower case and consist of just alpha-numeric characters, but can contain dashes (-). A more advanced test profile capability is operating system prefixes, and if using those there is an underscore separating the prefix from the normal profile name. For this sample profile, we're calling it *sample-program* and the file-name would be *sample-program/test-definition.xml* . Our (very basic) profile is showcased below.
|
||||
|
||||
> <PhoronixTestSuite>
|
||||
> <TestProfile>
|
||||
> <Version>1.1.0</Version>
|
||||
> <TestType>Processor</TestType>
|
||||
> <SoftwareType>Utility</SoftwareType>
|
||||
> <License>FREE</License>
|
||||
> <Status>PRIVATE</Status>
|
||||
> <Maintainer>Phoronix Media</Maintainer>
|
||||
> </TestProfile>
|
||||
> <TestInformation>
|
||||
> <Title>Sample Pi Program</Title>
|
||||
> <TimesToRun>3</TimesToRun>
|
||||
> <ResultScale>Seconds</ResultScale>
|
||||
> <Proportion>LIB</Proportion>
|
||||
> <Description>A simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. This test can be used for showcasing how to write a basic test profile.</Description>
|
||||
> <ExternalDependencies>build-utilities</ExternalDependencies>
|
||||
> </TestInformation>
|
||||
> </PhoronixTestSuite>
|
||||
|
||||
This XML profile is what interfaces with the Phoronix Test Suite and provides all the needed information about the test as well as other attributes. For a complete listing of all the supported profile options, look at the specification files in the documentation folder. In the case of *sample-program* , it lets the Phoronix Test Suite know that it's composed of free software, is designed to test the processor, is intended for private use only, and this profile is maintained by Phoronix Media. In addition, it tells the Phoronix Test Suite to execute this program three times and as no result quantifier is set, the average of the three runs will be taken. This profile also tells the Phoronix Test Suite that the generic *build-utilities* package is needed, which will attempt to ensure that default system C/C++ compiler and the standard development utilities/libraries are installed on your Linux distribution. This is needed as the C++ source-code will need to be built from source.
|
||||
The next step is to write the *install.sh* file, which once called by the Phoronix Test Suite is intended to install the test locally for benchmarking purposes. The *install.sh* file is technically optional, but is generally used by all tests. Note: The first argument supplied to the install script is the directory that the test needs to be installed to. The *install.sh* file (in our instance) is to be placed inside *test-profiles/sample-program* . Below is the *install.sh* for the *sample-program* .
|
||||
|
||||
> #!/bin/sh
|
||||
> tar -xjf sample-pi-program-1.tar.bz2
|
||||
> g++ sample-pi-program.cpp -o sample-pi-program
|
||||
> echo "#!/bin/sh
|
||||
> ./sample-pi-program 2>&1
|
||||
> " > sample-program
|
||||
> chmod +x sample-program
|
||||
|
||||
This install file builds the code with GCC, and then creates a small script that is run by the Phoronix Test Suite. Where does the source-code come into play? Well, it needs to be downloaded now from a web server. The Phoronix Test Suite has built-in support for managing downloads from multiple servers in a random over, fall-back support if one mirror is done, and verification of MD5 check-sums. Below is the *downloads.xml* file for *sample-program* that covers all of this.
|
||||
|
||||
> <PhoronixTestSuite>
|
||||
> <Downloads>
|
||||
> <Package>
|
||||
> <URL>http://www.phoronix-test-suite.com/benchmark-files/sample-pi-program.cpp</URL>
|
||||
> <MD5>e90fb790df8d1544696a1439c9b5bd8d</MD5>
|
||||
> </Package>
|
||||
> </Downloads>
|
||||
> </PhoronixTestSuite>
|
||||
|
||||
The final step in the profile writing process is to write a parser to strip all information but the reported result from the standard output or *$LOG_FILE* . In the case of a test profile just measuring how long it takes to run, it is as simple as a *results-definition.xml* looking like:
|
||||
|
||||
> <?xml version="1.0"?>
|
||||
> <PhoronixTestSuite>
|
||||
> <SystemMonitor>
|
||||
> <Sensor>sys.time</Sensor>
|
||||
> </SystemMonitor>
|
||||
> </PhoronixTestSuite>
|
||||
|
||||
After that, with all the files in their correct locations, just run: *phoronix-test-suite benchmark sample-program* . The Phoronix Test Suite should now handle the rest by installing the test, running the test, and recording the results (if you so choose). There is no additional work that needs to be done for the results to be recorded in the results viewer or even reporting the results to OpenBenchmarking.org. An up-to-date version of this test profile can be run via *phoronix-test-suite benchmark sample-program* and then by looking at the test profile source via *~/.phoronix-test-suite/test-profiles/pts/sample-program** or within */var/lib/phoronix-test-suite/test-profiles/pts/* if running as root.
|
||||
|
||||
# Development Credits
|
||||
The Phoronix Test Suite is based upon the extensive testing and internal tools developed by [Phoronix.com](http://www.phoronix.com/) since 2004 along with support from leading tier-one computer hardware and software vendors. The principal architects of the Phoronix Test Suite are [Michael Larabel](http://www.michaellarabel.com/) 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 [Phoronix Media](http://www.phoronix-media.com/) .
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -5,10 +5,10 @@
|
||||
<body>
|
||||
<h1>Setup Overview</h1>
|
||||
<p>The Phoronix Test Suite supports Linux, Apple Mac OS X, Microsoft Windows, Solaris, Hurd, BSD, and other operating system environments. The only Linux distribution-specific code deals with the external dependencies support feature that are set by individual test profiles. If you are not running one of the supported Linux distributions, Solaris, BSD, or Mac OS X, you may need to install a package manually (as instructed by the Phoronix Test Suite) in order for a test to run. An example of an external dependency would be GCC and the OpenGL Utility Toolkit being needed for test profiles that build an OpenGL benchmark from source-code.</p>
|
||||
<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 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, Alpine Linux, Void Linux, Intel Clear Linux, 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.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>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>php7</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>. PHP 7 is fully supported by the Phoronix Test Suite as well as HHVM.</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>
|
||||
@@ -55,7 +55,6 @@
|
||||
<h2>Windows Installation</h2>
|
||||
<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">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>
|
||||
|
||||
@@ -1 +1 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>External Dependencies</title></head><body><p>The Phoronix Test Suite has a feature known as "External Dependencies" where the Phoronix Test Suite can attempt to automatically install some of the test-specific dependencies on supported distributions. If running on a distribution where there is currently no External Dependencies profile, the needed package name(s) are listed for manual installation.</p><p>Below are a list of the operating systems that currently have external dependencies support within the Phoronix Test Suite for the automatic installation of needed test files.<hr><ul></ul><li>Amazon</li><li>Angstrom</li><li>Arch Linux</li><li>CentOS</li><li>ClearOS</li><li>ClearOS Core Server</li><li>Debian</li><li>DragonFlyBSD</li><li>Fedora</li><li>Fluxbuntu</li><li>FreeBSD</li><li>GNU KFreeBSD</li><li>Gentoo</li><li>Goobuntu</li><li>HP</li><li>Joli Cloud</li><li>Linaro</li><li>Linux Mint</li><li>MEPIS</li><li>Mac OS X</li><li>MacPorts</li><li>Mageia</li><li>Mandriva</li><li>MeeGo</li><li>Moblin</li><li>Mythbuntu</li><li>NetBSD</li><li>Nexenta Core</li><li>OLPC</li><li>OpenIndiana</li><li>OpenMandriva</li><li>OpenSolaris</li><li>OpenSuSE</li><li>Optware</li><li>Oracle Server</li><li>PCLinuxOS</li><li>PTS Desktop Live</li><li>PTS Linux Live</li><li>Palm</li><li>Pardus Linux</li><li>Red Hat Enterprise</li><li>Red Hat Enterprise Server</li><li>SUSE</li><li>SUSE Linux</li><li>Scientific</li><li>ScientificSL</li><li>Ubuntu</li><li>Zenwalk</li><li>gNewSense</li></p></body></html>
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>External Dependencies</title></head><body><p>The Phoronix Test Suite has a feature known as "External Dependencies" where the Phoronix Test Suite can attempt to automatically install some of the test-specific dependencies on supported distributions. If running on a distribution where there is currently no External Dependencies profile, the needed package name(s) are listed for manual installation.</p><p>Below are a list of the operating systems that currently have external dependencies support within the Phoronix Test Suite for the automatic installation of needed test files.<hr><ul></ul><li>Alpine Linux</li><li>Amazon</li><li>Angstrom</li><li>Arch Linux</li><li>CentOS</li><li>ClearOS</li><li>ClearOS Core Server</li><li>Debian</li><li>DragonFlyBSD</li><li>Fedora</li><li>Fluxbuntu</li><li>GNU KFreeBSD</li><li>Gentoo</li><li>Goobuntu</li><li>HP</li><li>Joli Cloud</li><li>Linaro</li><li>Linux Embedded Development Environment</li><li>Linux Mint</li><li>MEPIS</li><li>Mac OS X</li><li>MacPorts</li><li>Mageia</li><li>Mandriva</li><li>MeeGo</li><li>Microsoft Windows</li><li>MidnightBSD</li><li>Moblin</li><li>Mythbuntu</li><li>NetBSD</li><li>Nexenta Core</li><li>OLPC</li><li>OpenIndiana</li><li>OpenMandriva</li><li>OpenSolaris</li><li>OpenSuSE</li><li>Optware</li><li>Oracle Server</li><li>PCLinuxOS</li><li>PTS Desktop Live</li><li>PTS Linux Live</li><li>Palm</li><li>Pardus Linux</li><li>Red Hat Enterprise</li><li>Red Hat Enterprise Server</li><li>SUSE</li><li>SUSE Linux</li><li>Scientific</li><li>ScientificSL</li><li>Solus</li><li>Solus Linux</li><li>Termux</li><li>Ubuntu</li><li>Void Linux</li><li>Zenwalk</li><li>gNewSense</li></p></body></html>
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
<p>For setting any test option(s) from an environment variable rather than being prompted for the options when running a test. Example: <em>PRESET_OPTIONS="stream.run-type=Add" ./phoronix-test-suite benchmark stream</em>. Multiple options can be passed to this environment variable when delimited by a semicolon.</p>
|
||||
<p><strong>SKIP_TESTS</strong></p>
|
||||
<p>If there are any test(s) to exempt from the testing process, specify them in this variable. Multiple tests can be waived by delimiting each test identifier by a comma. A test hardware type (i.e. Graphics) can also be supplied for skipping a range of tests.</p>
|
||||
<p><strong>SKIP_TESTS_HAVING_ARGS</strong></p>
|
||||
<p>If any of the test(s) have an argument matching any strings contained in this environment variable, the test execution will be skipped. Multiple strings can be set when delimiting by a comma.</p>
|
||||
<p><strong>RUN_TESTS_IN_RANDOM_ORDER</strong></p>
|
||||
<p>Setting this environment variable will cause the tests to be run in a random order.</p>
|
||||
<p><strong>SKIP_TESTING_SUBSYSTEMS</strong></p>
|
||||
@@ -62,7 +64,9 @@
|
||||
<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>
|
||||
<p>If this variable is set with a valid test identifer from a result file whether you are using the <em>refresh-graphs</em> command or any other related to the rendering of test results on a bar graph, the specified test identifier's result will be highlighted in a different color than the other rendered test results. Multiple identifiers can be specified when delimited by a comma.</p>
|
||||
<p>If this variable is set with a valid test identifer from a result file whether you are using the <em>refresh-graphs</em> command or any other related to the rendering of test results on a bar graph, the specified test identifier's result will be rendered in a different color than the other test results. Multiple identifiers can be specified when delimited by a comma. Additionally, for each key it is possible to provide the actual color value, or an index in the color palette. Example: "will_be_different,group1a=1,group1b=1,blue=#0000ff"</p>
|
||||
<p><strong>TEST_EXEC_PREPEND</strong></p>
|
||||
<p>Set this variable to any command/environment variable that you may be passed prepended to the test execution string at runtime.</p>
|
||||
<p><strong>VIDEO_MEMORY</strong></p>
|
||||
<p>If Phodevi fails to detect the system's video memory capacity or is incorrectly detected, the video memory capacity (in MB) can be specified by this variable.</p>
|
||||
<p><strong>OVERRIDE_VIDEO_MODES</strong></p>
|
||||
|
||||
File diff suppressed because one or more lines are too long
72
documentation/stubs/69_creating_tests.html
Normal file
72
documentation/stubs/69_creating_tests.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<html>
|
||||
<head>
|
||||
<Title>Creating Test Profiles</Title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Creating A New Phoronix Test Suite / OpenBenchmarking.org Test Profile</h1>
|
||||
<p>A test profile itself consists of a main XML file containing the test's meta-data (<em>test-definition.xml</em>), an XML file if needed to specify required files, download URLs and their MD5/SHA256 hashes and file sizes (<em>downloads.xml</em>), and the <em>install.sh</em> script for installing the test and generating the run-script for execution by the Phoronix Test Suite at run-time. There are also other potential files like <em>pre.sh</em>, <em>interim.sh</em>, and <em>post.sh</em> for execution at pre-run, interim-run, and post-run stages by the Phoronix Test Suite. With the script files comprising test profiles, there is also the option of post-fixing them with e.g. <em>_linux</em> or <em>_windows</em> if wishing to supply different script files based upon the operating system being run during testing, if the setup steps may differ greatly based upon MacOS/Windows/Linux/BSD/Solaris platforms.</p>
|
||||
<p>Traditionally the easiest way to learn/understand test profile development has been by looking at looking at a basic test like <em>c-ray</em>, <em>tesseract</em> or the hundreds of others that are publicly available. Simply run for example <em>phoronix-test-suite benchmark tesseract</em> and then look at the test profile's contents either via the default locations in <em>~/.phoronix-test-suite/test-profiles</em> or <em>/var/lib/phoronix-test-suite/test-profiles/</em> if running as root on non-Windows platforms.</p>
|
||||
<h2>Versioning Mandate</h2>
|
||||
<p>The Phoronix Test Suite / OpenBenchmarking.org philosophy <em>mandates that with any change, a new version of the test profile be tagged</em>. This is done for reproducibility and being able to ensure the exact test profile state when a set of tests are conducted. Test profiles are versioned in a <strong>test-X.Y.Z</strong> format where <em>X</em> or <em>Y</em> are bumped whenever a change is made to the test profile that makes the results incomparable to a previous version of the tests (e.g. updating against a new upstream code-base, adjusting the parameters to what is benchmarked, etc). The Phoronix Test Suite then knows not to attempt any comparisons with an incompatible version difference or to go and fetch that specific version of the package. The <em>Z</em> is bumped when just making non-important changes such as just updating the test's meta-data, changing download URLs, etc. This is easy to enforce with the OpenBenchmarking.org infrastructure rather than having to worry about non-human-friendly Git hashes as test profile versions or having to create Git tags after every commit. The test profile version can optionally be specified when running a test, e.g. <em>phoronix-test-suite benchmark scimark2-1.2.1</em> instead of <em>phoronix-test-suite benchmark scimark2</em>, which would by default choose the latest available test profile version from OpenBenchmarking.org or the latest version on any local Phoromatic Server. The test profile versions are also always written out as part of the Phoronix Test Suite result XML data.</p>
|
||||
<h2>Writing A Sample Program</h2>
|
||||
<p>Writing a test profile for the Phoronix Test Suite is a relatively quick and easy process for anyone familiar with common Linux commands and the basics of XML. To help you understand the design of the Phoronix Test Suite, this guide covers the steps needed to write a testing profile for a very simple application.</p>
|
||||
<p>The first step in the profile writing process is to, well, have a piece of software you'd like to use with the Phoronix Test Suite. This software can be closed-source or open-source and be virtually anything as long as it is compatible with an operating system that is supported by the Phoronix Test Suite.</p>
|
||||
<p>For this guide, the piece of software being used for demonstration is just a simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. Below is this sample piece of software intended just for demonstration purposes.</p>
|
||||
<blockquote>#include <iostream><br>
|
||||
#include <math.h></p>
|
||||
<p>int main()<br>
|
||||
{<br>
|
||||
double pi = 0;</p>
|
||||
<p> for(long int i = 1; i <= 87654321; i++)<br>
|
||||
pi += (double) pow(-1, i + 1) / (2 * i - 1);</p>
|
||||
<p> pi *= 4;<br>
|
||||
std::cout << "Done Calculating Pi..." << endl;<br>
|
||||
return 0;<br>
|
||||
}</blockquote>
|
||||
<p>The first step in the actual profile writing process is to name it. If you're looking to ultimately push this profile to be included in the Phoronix Test Suite, its name must be all lower case and consist of just alpha-numeric characters, but can contain dashes (-). A more advanced test profile capability is operating system prefixes, and if using those there is an underscore separating the prefix from the normal profile name. For this sample profile, we're calling it <em>sample-program</em> and the file-name would be <em>sample-program/test-definition.xml</em>. Our (very basic) profile is showcased below.</p>
|
||||
<blockquote><PhoronixTestSuite><br>
|
||||
<TestProfile><br>
|
||||
<Version>1.1.0</Version><br>
|
||||
<TestType>Processor</TestType><br>
|
||||
<SoftwareType>Utility</SoftwareType><br>
|
||||
<License>FREE</License><br>
|
||||
<Status>PRIVATE</Status><br>
|
||||
<Maintainer>Phoronix Media</Maintainer><br>
|
||||
</TestProfile><br>
|
||||
<TestInformation><br>
|
||||
<Title>Sample Pi Program</Title><br>
|
||||
<TimesToRun>3</TimesToRun><br>
|
||||
<ResultScale>Seconds</ResultScale><br>
|
||||
<Proportion>LIB</Proportion><br>
|
||||
<Description>A simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. This test can be used for showcasing how to write a basic test profile.</Description><br>
|
||||
<ExternalDependencies>build-utilities</ExternalDependencies><br>
|
||||
</TestInformation><br>
|
||||
</PhoronixTestSuite></blockquote>
|
||||
<p>This XML profile is what interfaces with the Phoronix Test Suite and provides all the needed information about the test as well as other attributes. For a complete listing of all the supported profile options, look at the specification files in the documentation folder. In the case of <em>sample-program</em>, it lets the Phoronix Test Suite know that it's composed of free software, is designed to test the processor, is intended for private use only, and this profile is maintained by Phoronix Media. In addition, it tells the Phoronix Test Suite to execute this program three times and as no result quantifier is set, the average of the three runs will be taken. This profile also tells the Phoronix Test Suite that the generic <em>build-utilities</em> package is needed, which will attempt to ensure that default system C/C++ compiler and the standard development utilities/libraries are installed on your Linux distribution. This is needed as the C++ source-code will need to be built from source.</p>
|
||||
<p>The next step is to write the <em>install.sh</em> file, which once called by the Phoronix Test Suite is intended to install the test locally for benchmarking purposes. The <em>install.sh</em> file is technically optional, but is generally used by all tests. Note: The first argument supplied to the install script is the directory that the test needs to be installed to. The <em>install.sh</em> file (in our instance) is to be placed inside <em>test-profiles/sample-program</em>. Below is the <em>install.sh</em> for the <em>sample-program</em>.</p>
|
||||
<blockquote>#!/bin/sh<br /><br />
|
||||
tar -xjf sample-pi-program-1.tar.bz2<br />
|
||||
g++ sample-pi-program.cpp -o sample-pi-program<br />
|
||||
echo "#!/bin/sh<br />
|
||||
./sample-pi-program 2>&1<br />
|
||||
" > sample-program<br>
|
||||
chmod +x sample-program</blockquote>
|
||||
<p>This install file builds the code with GCC, and then creates a small script that is run by the Phoronix Test Suite. Where does the source-code come into play? Well, it needs to be downloaded now from a web server. The Phoronix Test Suite has built-in support for managing downloads from multiple servers in a random over, fall-back support if one mirror is done, and verification of MD5 check-sums. Below is the <em>downloads.xml</em> file for <em>sample-program</em> that covers all of this.</p>
|
||||
<blockquote><PhoronixTestSuite><br>
|
||||
<Downloads><br>
|
||||
<Package><br>
|
||||
<URL>http://www.phoronix-test-suite.com/benchmark-files/sample-pi-program.cpp</URL><br>
|
||||
<MD5>e90fb790df8d1544696a1439c9b5bd8d</MD5><br>
|
||||
</Package><br>
|
||||
</Downloads><br>
|
||||
</PhoronixTestSuite></blockquote>
|
||||
<p>The final step in the profile writing process is to write a parser to strip all information but the reported result from the standard output or <em>$LOG_FILE</em>. In the case of a test profile just measuring how long it takes to run, it is as simple as a <em>results-definition.xml</em> looking like:</p>
|
||||
<blockquote><?xml version="1.0"?><br>
|
||||
<PhoronixTestSuite><br>
|
||||
<SystemMonitor><br>
|
||||
<Sensor>sys.time</Sensor><br>
|
||||
</SystemMonitor><br>
|
||||
</PhoronixTestSuite></blockquote>
|
||||
<p>After that, with all the files in their correct locations, just run: <em>phoronix-test-suite benchmark sample-program</em>. The Phoronix Test Suite should now handle the rest by installing the test, running the test, and recording the results (if you so choose). There is no additional work that needs to be done for the results to be recorded in the results viewer or even reporting the results to OpenBenchmarking.org. An up-to-date version of this test profile can be run via <em>phoronix-test-suite benchmark sample-program</em> and then by looking at the test profile source via <em>~/.phoronix-test-suite/test-profiles/pts/sample-program*</em> or within <em>/var/lib/phoronix-test-suite/test-profiles/pts/</em> if running as root.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,20 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<Title>PTS Desktop Live</Title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>PTS Desktop Live 2010.1 "Anzhofen"</h1>
|
||||
<p>PTS Desktop Live and PTS Netbook Live are Linux-based operating systems designed to provide a free software platform for carrying out system tests and hardware benchmarks in an automated, reproducible, and effective manner. The Phoronix Test Suite operating systems are designed around the <a href="http://www.phoronix-test-suite.com/">Phoronix Test Suite</a> with the operating system itself consisting of a stripped down Linux environment, then built upon that is the Phoronix Test Suite with its test profiles and suites. This is not a standard Linux desktop with the normal throng of packages.</p>
|
||||
<p>Testing with PTS Desktop Live is intended to be via a Live DVD or Live USB (i.e. flash drive or memory card) environment. PTS Netbook Live is similar to PTS Desktop Live but designed for testing on lightweight x86 systems and netbooks. Both PTS Desktop Live and PTS Netbook Live make it very easy to deploy the Phoronix Test Suite across an array of systems, isolates any software differences when seeking to perform hardware comparisons, and is designed to be very easy to carry out these Linux benchmarks even for a first-time Linux user.</p>
|
||||
<p>The inaugural release of this operating system was PTS Desktop Live 2009.3 (codenamed "Gernlinden") and was based upon the Phoronix Test Suite 2.0 release. The Gernlinden release shipped with more than 50 open-source test profiles and all needed files being located on the disc image. PTS Desktop Live uses the GTK2 GUI dialog for the Phoronix Test Suite by default, but the CLI options are also accessible. PTS Desktop Live also features optimizations to the Linux kernel and related components for use on the latest high-end hardware and other performance related tweaking. PTS Netbook Live features optimizations for the Intel Atom processor.</p>
|
||||
<p>The mission of the Phoronix Test Suite and related products will not be achieved until it has made Linux benchmarking incredibly robust and innovative, drop dead easy to perform nearly any kind of benchmark, and when it out-paces other leading operating systems for its benchmarking abilities. These operating systems are being updated quarterly in conjunction with new Phoronix Test Suite releases. The Phoronix Test Suite will continue to be supported under all other Linux distributions, OpenSolaris, Mac OS X, Windows, and *BSD operating systems, but this is just another addition on top of that.</p>
|
||||
<p>PTS Desktop Live is designed to run on x86_64 compatible systems with 2GB or more of system memory (ideally 4GB+ if you wish to run many of the tests in a live environment) being highly recommended along with a modern CPU and graphics processor. No proprietary graphics drivers are shipped with PTS Desktop Live at this time, so depending upon the hardware you may not have OpenGL acceleration to run the few graphics-related tests that are included with this release. Only graphics drivers are provided for ATI/AMD, NVIDIA, and Intel hardware. An Internet connection is not required but is needed for communication with OpenBenchmarking.org and for utilizing some of the other Phoronix Test Suite features.</p>
|
||||
<p>PTS Netbook Live is designed for netbooks and nettop computers with an Intel Atom processor.</p>
|
||||
<h2>Quick Start Guide</h2>
|
||||
<p>When the operating system has fully booted, the end-user agreement for the Phoronix Test Suite will be displayed, followed by initializing the main GTK user interface for the Phoronix Test Suite. The Phoronix Test Suite has more than 100 test profiles while there are about 50 test profiles featured within live environment, which are free software, do not pose significant install size problems, and are suitable for benchmarking from a live environment. By default, PTS Desktop Live and PTS Netbook Live will only show the test profiles and suites where all of the needed test files and dependencies ship with this open-source operating system. However, to access any of the test profiles that may require downloading additional files or external dependencies, use the <em>View</em> menu to toggle the different options. The system's hardware and software information can also be viewed in a graphical window from this menu.</p>
|
||||
<p>From the <em>Available Tests</em> tab, any test/suite can be selected to view more information. If you wish to install the test, simply click on the install button while waiting shortly for it to install. Afterwards, the test can be run by selecting it again and clicking on the run/benchmark button. If you have a <a href="http://www.openbenchmarking.org/">OpenBenchmarking.org</a> account, you can login from the <em>File</em> menu while Phoronix Test Suite settings are adjustable from the <em>Edit</em> menu.</p>
|
||||
<p>When the testing has completed, the graphical user interface will reappear. Via the buttons that appear at the top of the interface, the test results can then be opened within the web browser. Depending upon the test profile, it may also be possible to immediately compare the test result(s) against a set of reference systems. If the completed test(s) do have reference results available, a list of the comparable systems are shown, so that you can click on one or more of these reference systems to see how the given system performs in comparison. Results from OpenBenchmarking.org can also be compared with any of the test results.</p>
|
||||
<p>Assuming you did not launch any commands from the terminal to alter the disk(s) or its contents or carry out any other changes; PTS Desktop Live will have not touched your data or the installed operating system(s). If you wish to archive any of your test results, upload the results to OpenBenchmarking.org. Alternatively, when going to the <em>Test Results</em> tab and selecting a test, the <em>File</em> menu presents options for exporting results to text, CSV, and PDF files. The contents of the <em>~/.phoronix-test-suite/test-results/</em> folder can also be backed up for preserving the test results.</p>
|
||||
<p>If you wish to use the Phoronix Test Suite from the command-line, open a terminal and run <em>phoronix-test-suite</em>.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,25 +1,25 @@
|
||||
The Phoronix Test Suite itself is an open-source framework for conducting automated tests along with reporting of test results, detection of installed system software/hardware, and other features. Modules for the Phoronix Test Suite also allow for integration with git-bisect and other revision control systems for per-commit regression testing, system sensor monitoring, and other extras.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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.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`.
|
||||
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`.
|
||||
|
||||
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`.
|
||||
|
||||
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 or via <http://www.phoronix-test-suite.com/documentation/>. A man page is also bundled with the phoronix-test-suite software.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# Phoronix Test Suite
|
||||
# URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
# Copyright (C) 2008 - 2015, Phoronix Media
|
||||
# Copyright (C) 2008 - 2018, 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
|
||||
|
||||
33
install.bat
Normal file
33
install.bat
Normal file
@@ -0,0 +1,33 @@
|
||||
@echo off
|
||||
|
||||
:: Phoronix Test Suite
|
||||
:: URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
:: Copyright (C) 2018, 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
|
||||
:: 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/>.
|
||||
|
||||
:: Generic Phoronix Test Suite installer for Windows
|
||||
|
||||
:: Ensure the user is in the correct directory
|
||||
If Not Exist "pts-core\phoronix-test-suite.php" (
|
||||
echo "To install the Phoronix Test Suite you must first change directories to phoronix-test-suite. For support visit: http://www.phoronix-test-suite.com/"
|
||||
exit
|
||||
)
|
||||
set destination="C:\phoronix-test-suite"
|
||||
md %destination%
|
||||
:: cd /d %destination%
|
||||
:: for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
|
||||
|
||||
xcopy %cd% %destination% /E
|
||||
echo Phoronix Test Suite installed to %destination%
|
||||
@@ -3,8 +3,8 @@
|
||||
#
|
||||
# Phoronix Test Suite
|
||||
# URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
# Copyright (C) 2008 - 2015, Phoronix Media
|
||||
# Copyright (C) 2008 - 2015, Michael Larabel
|
||||
# Copyright (C) 2008 - 2018, Phoronix Media
|
||||
# Copyright (C) 2008 - 2018, 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,6 +25,12 @@
|
||||
# export PTS_DIR=$(readlink -f `dirname $0`)
|
||||
export PTS_DIR=`pwd`
|
||||
export PTS_MODE="CLIENT"
|
||||
if which realpath >/dev/null 2>&1 ;
|
||||
then
|
||||
export PTS_LAUNCHER=`realpath $0`
|
||||
else
|
||||
export PTS_LAUNCHER="$PTS_DIR/phoronix-test-suite"
|
||||
fi
|
||||
|
||||
if [ $PTS_DIR != "`pwd`" ]
|
||||
then
|
||||
@@ -44,18 +50,36 @@ fi
|
||||
if [ ! "X$PHP_BIN" = "X" ] && [ -x $PHP_BIN ]
|
||||
then
|
||||
export PHP_BIN=$PHP_BIN
|
||||
elif [ -x /usr/bin/php7 ] || [ -x /usr/local/bin/php7 ] || [ -x /usr/pkg/bin/php7 ]
|
||||
then
|
||||
export PHP_BIN="php7"
|
||||
elif [ -x /usr/bin/php5 ] || [ -x /usr/local/bin/php5 ] || [ -x /usr/pkg/bin/php5 ]
|
||||
then
|
||||
export PHP_BIN="php5"
|
||||
elif [ -x /usr/bin/php ] || [ -x /usr/local/bin/php ] || [ -x /usr/pkg/bin/php ]
|
||||
elif [ -x /usr/bin/php ] || [ -x /usr/pkg/bin/php ]
|
||||
then
|
||||
export PHP_BIN="php"
|
||||
elif [ -x /usr/php7/bin/php ]
|
||||
then
|
||||
export PHP_BIN="/usr/php7/bin/php"
|
||||
elif [ -x /usr/php5/bin/php ]
|
||||
then
|
||||
export PHP_BIN="/usr/php5/bin/php"
|
||||
elif [ -x /usr/php/bin/php ]
|
||||
then
|
||||
export PHP_BIN="/usr/php/bin/php"
|
||||
elif [ -x /usr/local/bin/php ]
|
||||
then
|
||||
export PHP_BIN="/usr/local/bin/php"
|
||||
elif [ -x /usr/local/bin/php-7.0 ]
|
||||
then
|
||||
export PHP_BIN="/usr/local/bin/php-7.0"
|
||||
elif [ -x /usr/local/bin/php-7.1 ]
|
||||
then
|
||||
export PHP_BIN="/usr/local/bin/php-7.1"
|
||||
elif [ -x /usr/local/bin/php-7.2 ]
|
||||
then
|
||||
export PHP_BIN="/usr/local/bin/php-7.2"
|
||||
elif [ -x /opt/bin/php ]
|
||||
then
|
||||
export PHP_BIN="/opt/bin/php"
|
||||
@@ -65,9 +89,15 @@ then
|
||||
elif which php >/dev/null 2>&1 ;
|
||||
then
|
||||
export PHP_BIN="php"
|
||||
elif which php7 >/dev/null 2>&1 ;
|
||||
then
|
||||
export PHP_BIN="php7"
|
||||
elif which php5 >/dev/null 2>&1 ;
|
||||
then
|
||||
export PHP_BIN="php5"
|
||||
elif which php-cli >/dev/null 2>&1 ;
|
||||
then
|
||||
export PHP_BIN="php-cli"
|
||||
elif [ -x /usr/bin/hhvm ]
|
||||
then
|
||||
export PHP_BIN="/usr/bin/hhvm"
|
||||
@@ -83,7 +113,7 @@ if [ "X$PHP_BIN" = "X" ]
|
||||
then
|
||||
cat <<'EOT'
|
||||
|
||||
PHP 5.3 or newer must be installed for the Phoronix Test Suite
|
||||
PHP 5.3 or newer or PHP 7 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/
|
||||
|
||||
@@ -91,38 +121,117 @@ EOT
|
||||
|
||||
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 "# zypper install php7 php7-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 "# apt-get install php-cli php-xml"
|
||||
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 "# yum install php-cli php-xml php-json"
|
||||
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 "# pkg install php72 php72-dom php72-zip php72-json php72-simplexml php72-openssl"
|
||||
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 " "
|
||||
elif [ -x /usr/sbin/equo ]
|
||||
then
|
||||
# Sabayon
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# equo install dev-lang/php"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/xbps-install ] || [ -x /usr/sbin/xbps-install ]
|
||||
then
|
||||
# Void Linux
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# xbps-install -Sy php unzip"
|
||||
echo " "
|
||||
elif [ -x /usr/sbin/netpkg ]
|
||||
then
|
||||
# Zenwalk / Slackware
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# netpkg php"
|
||||
echo " "
|
||||
elif [ -x /sbin/apk ]
|
||||
then
|
||||
# Alpine Linux
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# apk add php5 php5-dom php5-zip php5-json"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/urpmi ]
|
||||
then
|
||||
# OpenMandriva Linux
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# urpmi php-cli"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/eopkg ]
|
||||
then
|
||||
# Solus Linux
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# eopkg install php"
|
||||
echo " "
|
||||
elif [ -x /usr/sbin/mport ]
|
||||
then
|
||||
# MidnightBSD
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# mport install php70 php70-dom php70-zip php70-json php70-simplexml"
|
||||
echo " "
|
||||
elif [ -x /bin/opkg ]
|
||||
then
|
||||
# Linux Embedded Development Environment
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# opkg install php7-cli php7-mod-dom php7-mod-zip php7-mod-json php7-mod-simplexml"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/equo ]
|
||||
then
|
||||
# Sabayon
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# equo install php"
|
||||
echo " "
|
||||
elif [ -x /usr/bin/emerge ]
|
||||
then
|
||||
# Gentoo
|
||||
echo "The command to likely run for your operating system is: "
|
||||
echo "# emerge dev-lang/php"
|
||||
echo " "
|
||||
fi
|
||||
|
||||
@@ -151,6 +260,10 @@ case "$1" in
|
||||
"test-module" | "debug-module" | "webui")
|
||||
export PTS_IGNORE_MODULES=1
|
||||
;;
|
||||
"debug-self-test")
|
||||
export PTS_IGNORE_MODULES=1
|
||||
export PTS_SILENT_MODE=1
|
||||
;;
|
||||
"enterprise-setup")
|
||||
export PTS_SILENT_MODE=1
|
||||
;;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:: Phoronix Test Suite
|
||||
:: URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
:: Copyright (C) 2008 - 2015, Phoronix Media
|
||||
:: Copyright (C) 2008 - 2015, Michael Larabel
|
||||
:: Copyright (C) 2008 - 2018, Phoronix Media
|
||||
:: Copyright (C) 2008 - 2018, 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
|
||||
@@ -20,24 +20,29 @@
|
||||
|
||||
:: Full path to root directory of the actual Phoronix Test Suite code
|
||||
@echo off
|
||||
set PTS_DIR=%cd%
|
||||
set PTS_DIR=%~dp0
|
||||
set PTS_MODE=CLIENT
|
||||
set PTS_LAUNCHER=%0
|
||||
|
||||
:: 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."
|
||||
|
||||
:: 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
|
||||
:: Download PHP for Windows and then extract it
|
||||
If not exist C:\PHP\php.exe (
|
||||
echo Attempting to download and setup Windows PHP release.
|
||||
If not exist php.zip (
|
||||
powershell -command "& { iwr http://phoronix-test-suite.com/benchmark-files/php-7.2.3-Win32-VC15-x64.zip -OutFile php.zip }"
|
||||
)
|
||||
powershell -command "& { Expand-Archive php.zip -DestinationPath C:\PHP }"
|
||||
If not exist VC_redist.x64.exe (
|
||||
echo Attempting to download and run Visual C++ Redistributable for Visual Studio 2017 support.
|
||||
powershell -command "& { iwr https://go.microsoft.com/fwlink/?LinkId=746572 -OutFile VC_redist.x64.exe }"
|
||||
VC_redist.x64.exe
|
||||
)
|
||||
)
|
||||
:: Use the newly downloaded PHP location
|
||||
set PHP_BIN=C:\PHP\php.exe
|
||||
|
||||
:SkipBinSearch
|
||||
cls
|
||||
|
||||
%PHP_BIN% pts-core\phoronix-test-suite.php %*
|
||||
%PHP_BIN% %PTS_DIR%\pts-core\phoronix-test-suite.php %*
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
class analyze_all_runs implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Result Analytics';
|
||||
const doc_section = 'Result Management';
|
||||
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()
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2012 - 2015, Phoronix Media
|
||||
Copyright (C) 2012 - 2015, Michael Larabel
|
||||
Copyright (C) 2012 - 2018, Phoronix Media
|
||||
Copyright (C) 2012 - 2018, 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
|
||||
@@ -25,10 +25,6 @@ class auto_compare implements pts_option_interface
|
||||
const doc_section = 'Testing';
|
||||
const doc_description = 'This option will autonomously determine the most relevant test(s) to run for any selected sub-system(s). The tests to run are determined via OpenBenchmarking.org integration with the global results pool. Related test results from OpenBenchmarking.org are also merged to provide a straight-forward and effective means of carrying out a system comparison. If wishing to find comparable results for any particular test profile(s), simply pass the test profile names as additional arguments to this command.';
|
||||
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::invalid_command_helper($passed_args);
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
$compare_tests = array();
|
||||
@@ -39,7 +35,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()]))
|
||||
{
|
||||
@@ -140,7 +136,7 @@ class auto_compare implements pts_option_interface
|
||||
}
|
||||
$result_file->override_result_objects($result_objects);
|
||||
pts_client::save_test_result($result_file->get_file_location(), $result_file->get_xml());
|
||||
array_push($compare_results, $public_id);
|
||||
$compare_results[] = $public_id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,10 +193,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
68
pts-core/commands/auto_load_module.php
Normal file
68
pts-core/commands/auto_load_module.php
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2017, Phoronix Media
|
||||
Copyright (C) 2017, 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_load_module implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Modules';
|
||||
const doc_description = 'This option can be used for easily adding a module to the LoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
$loaded_modules = pts_strings::comma_explode(pts_config::read_user_config('PhoronixTestSuite/Options/Modules/LoadModules', null));
|
||||
$available_modules = pts_module_manager::list_available_modules();
|
||||
echo PHP_EOL . 'Currently Loaded Modules: ' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($loaded_modules);
|
||||
echo PHP_EOL . 'Available Modules: ' . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($available_modules);
|
||||
|
||||
|
||||
if(count($r) == 0)
|
||||
{
|
||||
echo PHP_EOL . 'You must specify a valid module from the list to load.' . PHP_EOL;
|
||||
echo 'Example: phoronix-test-suite auto-load-module update_checker' . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach($r as $module_to_load)
|
||||
{
|
||||
if(!in_array($module_to_load, $available_modules))
|
||||
{
|
||||
echo PHP_EOL . 'Module Not Available: ' . $module_to_load . PHP_EOL;
|
||||
}
|
||||
else if(in_array($module_to_load, $loaded_modules))
|
||||
{
|
||||
echo PHP_EOL . 'Module Already Loaded: ' . $module_to_load . PHP_EOL;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo PHP_EOL . 'Module To Load: ' . $module_to_load . PHP_EOL;
|
||||
array_push($loaded_modules, $module_to_load);
|
||||
}
|
||||
}
|
||||
|
||||
$new_options = array('PhoronixTestSuite/Options/Modules/LoadModules' => implode(', ', $loaded_modules));
|
||||
pts_config::user_config_generate($new_options);
|
||||
echo PHP_EOL . 'New user configuration file written.' . PHP_EOL . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
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
|
||||
Copyright (C) 2014 - 2018, Phoronix Media
|
||||
Copyright (C) 2014 - 2018, 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
|
||||
@@ -50,10 +50,6 @@ class auto_sort_result_file implements pts_option_interface
|
||||
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 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
Copyright (C) 2009 - 2018, Phoronix Media
|
||||
Copyright (C) 2009 - 2018, 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
|
||||
@@ -36,10 +36,6 @@ class batch_run implements pts_option_interface
|
||||
$test_run_manager = new pts_test_run_manager(true);
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::invalid_command_helper($passed_args);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -29,10 +29,6 @@ class benchmark implements pts_option_interface
|
||||
{
|
||||
return array('test');
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::invalid_command_helper($passed_args);
|
||||
}
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
Copyright (C) 2008 - 2017, Phoronix Media
|
||||
Copyright (C) 2008 - 2017, 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
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
class build_suite implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Other';
|
||||
const doc_section = 'Asset Creation';
|
||||
const doc_description = '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.';
|
||||
|
||||
public static function run($r)
|
||||
@@ -37,8 +37,12 @@ class build_suite implements pts_option_interface
|
||||
$possible_suites = pts_openbenchmarking::available_suites();
|
||||
$possible_tests = pts_openbenchmarking::available_tests();
|
||||
|
||||
$suite_writer = new pts_test_suite_writer();
|
||||
$suite_writer->add_suite_information($suite_name, '1.0.0', $suite_maintainer, $suite_test_type, $suite_description);
|
||||
$new_suite = new pts_test_suite();
|
||||
$new_suite->set_title($suite_name);
|
||||
$new_suite->set_version('1.0.0');
|
||||
$new_suite->set_maintainer($suite_maintainer);
|
||||
$new_suite->set_suite_type($suite_test_type);
|
||||
$new_suite->set_description($suite_description);
|
||||
|
||||
foreach($r as $test_object)
|
||||
{
|
||||
@@ -51,12 +55,12 @@ class build_suite implements pts_option_interface
|
||||
for($i = 0; $i < count($args); $i++)
|
||||
{
|
||||
// Not binding the test profile version to this suite, otherwise change false to true
|
||||
$suite_writer->add_to_suite($test_object->get_identifier(false), $args[$i], $description[$i]);
|
||||
$new_suite->add_to_suite($test_object, $args[$i], $description[$i]);
|
||||
}
|
||||
}
|
||||
else if($test_object instanceof pts_test_suite)
|
||||
{
|
||||
$suite_writer->add_to_suite($test_object->get_identifier(), null, null);
|
||||
$new_suite->add_suite_tests_to_suite($test_object);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,12 +78,13 @@ class build_suite implements pts_option_interface
|
||||
|
||||
for($i = 0; $i < count($args); $i++)
|
||||
{
|
||||
$suite_writer->add_to_suite($test_to_add, $args[$i], $description[$i]);
|
||||
$new_suite->add_to_suite($test_profile, $args[$i], $description[$i]);
|
||||
}
|
||||
break;
|
||||
case 'Add Sub-Suite':
|
||||
$suite_to_add = pts_user_io::prompt_text_menu('Enter test suite', $possible_suites);
|
||||
$suite_writer->add_to_suite($suite_to_add, null, null);
|
||||
$test_suite = new pts_test_suite($suite_to_add);
|
||||
$new_suite->add_suite_tests_to_suite($test_suite);
|
||||
break;
|
||||
}
|
||||
echo PHP_EOL . 'Available Options:' . PHP_EOL;
|
||||
@@ -87,13 +92,9 @@ class build_suite implements pts_option_interface
|
||||
}
|
||||
while($input_option != 'Save & Exit');
|
||||
|
||||
$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));
|
||||
|
||||
if($suite_writer->save_xml($save_to) != false)
|
||||
if($new_suite->save_xml($suite_name) != false)
|
||||
{
|
||||
echo PHP_EOL . PHP_EOL . 'Saved To: ' . $save_to . PHP_EOL . 'To run this suite, type: phoronix-test-suite benchmark ' . $suite_identifier . PHP_EOL . PHP_EOL;
|
||||
echo PHP_EOL . PHP_EOL . 'Saved -- to run this suite, type: phoronix-test-suite benchmark ' . $new_suite->get_identifier() . PHP_EOL . 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) 2018, Phoronix Media
|
||||
Copyright (C) 2018, 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,15 +20,29 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class pts_parse_results_nye_XmlReader extends nye_XmlReader
|
||||
class commands implements pts_option_interface
|
||||
{
|
||||
public function __construct($read_xml)
|
||||
const doc_section = 'Other';
|
||||
const doc_description = 'This option will display a short list of possible Phoronix Test Suite commands.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
parent::__construct($read_xml);
|
||||
}
|
||||
public function validate()
|
||||
{
|
||||
return $this->dom->schemaValidate(PTS_OPENBENCHMARKING_PATH . 'schemas/results-parser.xsd');
|
||||
$options = pts_documentation::client_commands_array();
|
||||
$commands = array();
|
||||
foreach($options as $section => &$contents)
|
||||
{
|
||||
if(empty($contents))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
foreach($contents as &$option)
|
||||
{
|
||||
$commands[] = $option[0];
|
||||
}
|
||||
}
|
||||
echo pts_user_io::display_packed_list($commands);
|
||||
echo PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
91
pts-core/commands/create_test_profile.php
Normal file
91
pts-core/commands/create_test_profile.php
Normal file
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2018, Phoronix Media
|
||||
Copyright (C) 2018, 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 create_test_profile implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Asset Creation';
|
||||
const doc_description = 'This option can be used for creating a Phoronix Test Suite test profile by answering questions about the test for constructing the test profile XML meta-data and handling other boiler-plate basics for getting started in developing new tests.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
echo 'The create-test-profile helper will attempt to walk you through creating the basics of creating a new test profile for execution by the Phoronix Test Suite. Follow the prompts to begin filling out the XML meta-data that defines a test profile.' . PHP_EOL;
|
||||
|
||||
do
|
||||
{
|
||||
$is_valid = true;
|
||||
$input = pts_user_io::prompt_user_input('Enter an identifier/name for the test profile', false, false);
|
||||
$input = pts_validation::string_to_sanitized_test_profile_base($input);
|
||||
|
||||
if(pts_test_profile::is_test_profile($input))
|
||||
{
|
||||
$is_valid = false;
|
||||
echo 'There is already a ' . $input . ' test profile.' . PHP_EOL;
|
||||
}
|
||||
else if(pts_test_suite::is_suite($input))
|
||||
{
|
||||
$is_valid = false;
|
||||
echo 'There is already a test suite named ' . $input . '.' . PHP_EOL;
|
||||
}
|
||||
else if(pts_result_file::is_test_result_file($input))
|
||||
{
|
||||
$is_valid = false;
|
||||
echo 'There is already a result file named ' . $input . '.' . PHP_EOL;
|
||||
}
|
||||
}
|
||||
while(!$is_valid);
|
||||
|
||||
$tp_identifier = 'local/'. $input;
|
||||
$tp_path = PTS_TEST_PROFILE_PATH . $tp_identifier;
|
||||
echo 'Creating test profile: ' . $tp_identifier . ' @ ' . $tp_path . PHP_EOL;
|
||||
pts_file_io::mkdir($tp_path);
|
||||
|
||||
$types = pts_validation::process_xsd_types();
|
||||
|
||||
pts_client::$display->generic_heading('test-definition.xml Creation');
|
||||
$writer = new nye_XmlWriter();
|
||||
pts_validation::xsd_to_cli_creator(pts_openbenchmarking::openbenchmarking_standards_path() . 'schemas/test-profile.xsd', $writer, $types);
|
||||
$writer->saveXMLFile($tp_path . '/test-definition.xml');
|
||||
echo 'Generated: ' . $tp_path . '/test-definition.xml' . PHP_EOL;
|
||||
|
||||
pts_client::$display->generic_heading('downloads.xml Creation');
|
||||
$writer = new nye_XmlWriter();
|
||||
do
|
||||
{
|
||||
pts_validation::xsd_to_cli_creator(pts_openbenchmarking::openbenchmarking_standards_path() . 'schemas/test-profile-downloads.xsd', $writer, $types);
|
||||
}
|
||||
while(pts_user_io::prompt_bool_input('Add another file/download?', -1));
|
||||
$writer->saveXMLFile($tp_path . '/downloads.xml');
|
||||
echo 'Generated: ' . $tp_path . '/downloads.xml' . PHP_EOL;
|
||||
|
||||
/*
|
||||
pts_client::$display->generic_heading('results-definition.xml Creation');
|
||||
$writer = new nye_XmlWriter();
|
||||
pts_validation::xsd_to_cli_creator(pts_openbenchmarking::openbenchmarking_standards_path() . 'schemas/results-parser.xsd', $writer, $types);
|
||||
$writer->saveXMLFile($tp_path . '/results-definition.xml');
|
||||
echo 'Generated: ' . $tp_path . '/results-definition.xml' . PHP_EOL;
|
||||
*/
|
||||
|
||||
pts_validation::generate_test_profile_file_templates($tp_identifier, $tp_path);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
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) 2015, Phoronix Media
|
||||
Copyright (C) 2015, Michael Larabel
|
||||
Copyright (C) 2015 - 2017, Phoronix Media
|
||||
Copyright (C) 2015 - 2017, 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,14 +27,18 @@ class debug_render_test implements pts_option_interface
|
||||
|
||||
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'))
|
||||
$render_dir = pts_client::temporary_directory() . '/pts-render-test-20171112/';
|
||||
if(!is_file($render_dir . 'mega-render-test-20171112.tar.xz'))
|
||||
{
|
||||
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');
|
||||
pts_network::download_file('http://linuxbenchmarking.com/misc/mega-render-test-20171112.tar.xz', $render_dir . 'mega-render-test-20171112.tar.xz');
|
||||
}
|
||||
pts_compression::archive_extract($render_dir . 'mega-render-test-20171112.tar.xz');
|
||||
|
||||
if(!defined('PATH_TO_EXPORTED_PHOROMATIC_DATA'))
|
||||
{
|
||||
define('PATH_TO_EXPORTED_PHOROMATIC_DATA', $render_dir . 'mega-render-test-20171112/');
|
||||
}
|
||||
define('PATH_TO_EXPORTED_PHOROMATIC_DATA', $render_dir . 'mega-render-test-310815/');
|
||||
|
||||
error_reporting(E_ALL);
|
||||
ini_set('memory_limit','2048M');
|
||||
@@ -63,7 +67,7 @@ class debug_render_test implements pts_option_interface
|
||||
{
|
||||
// Add to result file
|
||||
$system_name = basename(dirname($composite_xml)) . ': ' . $trigger;
|
||||
array_push($result_files, new pts_result_merge_select($composite_xml, null, $system_name));
|
||||
$result_files[] = new pts_result_merge_select($composite_xml, null, $system_name);
|
||||
}
|
||||
}
|
||||
echo 'STARTING MERGE; ';
|
||||
@@ -97,6 +101,19 @@ class debug_render_test implements pts_option_interface
|
||||
$dump_size += strlen($html_dump);
|
||||
file_put_contents(PATH_TO_EXPORTED_PHOROMATIC_DATA . $REQUESTED . '.html', $html_dump . '</body></html>');
|
||||
}
|
||||
|
||||
if(getenv('DEBUG_RENDER_TEST_LOCAL_TOO') != false)
|
||||
{
|
||||
echo PHP_EOL . 'LOCAL RENDER TEST TIME' . PHP_EOL;
|
||||
$extra_graph_attributes = null;
|
||||
foreach(pts_client::saved_test_results() as $saved_result)
|
||||
{
|
||||
$save_to_dir = pts_client::setup_test_result_directory($saved_result);
|
||||
$generated_graphs = pts_client::generate_result_file_graphs($saved_result, $save_to_dir, $extra_graph_attributes);
|
||||
echo $saved_result . ': ' . count($generated_graphs) . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
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';
|
||||
|
||||
48
pts-core/commands/debug_result_parser.php
Normal file
48
pts-core/commands/debug_result_parser.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2017, Phoronix Media
|
||||
Copyright (C) 2017, 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_result_parser implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Asset Creation';
|
||||
const doc_description = 'This option is intended for use by test profile writers and is used for debugging a result parser. No test execution is done, but there must already be PTS-generated .log files present within the test\'s installation directory.';
|
||||
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check('VARIABLE_LENGTH', array('pts_types', 'identifier_to_object'), null)
|
||||
);
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
// 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->DEBUG_no_test_execution_just_result_parse = true;
|
||||
$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) 2013 - 2015, Phoronix Media
|
||||
Copyright (C) 2013 - 2015, Michael Larabel
|
||||
Copyright (C) 2013 - 2018, Phoronix Media
|
||||
Copyright (C) 2013 - 2018, 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,14 +29,14 @@ class debug_self_test implements pts_option_interface
|
||||
{
|
||||
define('PHOROMATIC_PROCESS', true);
|
||||
$commands = array(
|
||||
'detailed_system_info' => null,
|
||||
'system_info' => null,
|
||||
'list_available_tests' => null,
|
||||
'list_available_suites' => null,
|
||||
'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'),
|
||||
'refresh_graphs' => array('1107247-LI-MESACOMMI48', '1711094-AL-ZOTACGEFO61', '1711073-AL-GTX770TIL45', '1710268-AL-CPUTESTS119'),
|
||||
'result_file_to_text' => array('1107247-LI-MESACOMMI48'),
|
||||
'merge_results' => array('1107247-LI-MESACOMMI48', '1509040-HA-GCCINTELS17', '1508201-HA-GTX95073337', '1508233-HA-INTELSKYL16'),
|
||||
'merge_results' => array('1107247-LI-MESACOMMI48', '1509040-HA-GCCINTELS17', '1508201-HA-GTX95073337', '1508233-HA-INTELSKYL16', '1711094-AL-ZOTACGEFO61', '1711073-AL-GTX770TIL45', '1710268-AL-CPUTESTS119'),
|
||||
'diagnostics' => null,
|
||||
'dump_possible_options' => null,
|
||||
'debug_render_test' => null,
|
||||
@@ -57,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);
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2010 - 2015, Phoronix Media
|
||||
Copyright (C) 2010 - 2015, Michael Larabel
|
||||
Copyright (C) 2010 - 2018, Phoronix Media
|
||||
Copyright (C) 2010 - 2018, 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
|
||||
@@ -37,7 +37,7 @@ class debug_test_download_links implements pts_option_interface
|
||||
{
|
||||
echo 'Checking: ' . $test_profile . PHP_EOL;
|
||||
|
||||
foreach(pts_test_install_request::read_download_object_list($test_profile) as $test_file_download)
|
||||
foreach($test_profile->get_downloads() as $test_file_download)
|
||||
{
|
||||
foreach($test_file_download->get_download_url_array() as $url)
|
||||
{
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
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
|
||||
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 detailed_system_info implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'System';
|
||||
const doc_description = 'Display detailed information about the installed system hardware and software information as detected by the Phoronix Test Suite Phodevi Library.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
pts_client::$display->generic_heading('System Information');
|
||||
echo 'Hardware:' . PHP_EOL . phodevi::system_hardware(true) . PHP_EOL . PHP_EOL;
|
||||
echo 'Software:' . PHP_EOL . phodevi::system_software(true) . PHP_EOL . PHP_EOL;
|
||||
|
||||
//
|
||||
// Processor Information
|
||||
//
|
||||
|
||||
$cpu_flags = phodevi_cpu::get_cpu_flags();
|
||||
echo PHP_EOL . 'PROCESSOR:' . PHP_EOL . PHP_EOL;
|
||||
echo 'Core Count: ' . phodevi_cpu::cpuinfo_core_count() . PHP_EOL;
|
||||
echo 'Thread Count: ' . phodevi_cpu::cpuinfo_thread_count() . PHP_EOL;
|
||||
echo 'Cache Size: ' . phodevi_cpu::cpuinfo_cache_size() . ' KB' . PHP_EOL;
|
||||
|
||||
echo 'Instruction Set Extensions: ' . phodevi_cpu::instruction_set_extensions() . PHP_EOL;
|
||||
echo 'AES Encryption: ' . ($cpu_flags & phodevi_cpu::get_cpu_feature_constant('aes') ? 'YES' : 'NO') . PHP_EOL;
|
||||
echo 'Energy Performance Bias: ' . ($cpu_flags & phodevi_cpu::get_cpu_feature_constant('epb') ? 'YES' : 'NO') . PHP_EOL;
|
||||
echo 'Virtualization: ' . (phodevi_cpu::virtualization_technology() ? phodevi_cpu::virtualization_technology() : 'NO') . PHP_EOL;
|
||||
|
||||
// Other info
|
||||
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) 2010 - 2015, Phoronix Media
|
||||
Copyright (C) 2010 - 2015, Michael Larabel
|
||||
Copyright (C) 2010 - 2018, Phoronix Media
|
||||
Copyright (C) 2010 - 2018, 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
|
||||
@@ -40,6 +40,7 @@ class dump_documentation implements pts_option_interface
|
||||
|
||||
// Write the test options HTML
|
||||
$dom = new DOMDocument();
|
||||
$dom->formatOutput = true;
|
||||
$html = $dom->createElement('html');
|
||||
$dom->appendChild($html);
|
||||
$head = $dom->createElement('head');
|
||||
@@ -93,7 +94,7 @@ class dump_documentation implements pts_option_interface
|
||||
$body = $dom->createElement('body');
|
||||
$html->appendChild($body);
|
||||
|
||||
$p = $dom->createElement('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 ');
|
||||
$p = $dom->createElement('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 environment variable. A list of available modules is also available by running ');
|
||||
$em = $dom->createElement('em', 'phoronix-test-suite list-modules.');
|
||||
$p->appendChild($em);
|
||||
$phr = $dom->createElement('hr');
|
||||
@@ -205,10 +206,12 @@ class dump_documentation implements pts_option_interface
|
||||
$dom->saveHTMLFile(PTS_PATH . 'documentation/stubs/55_virtual_suites.html');
|
||||
|
||||
// Load the HTML documentation
|
||||
$md = new pts_md_template();
|
||||
foreach(pts_file_io::glob(PTS_PATH . 'documentation/stubs/*_*.html') as $html_file)
|
||||
{
|
||||
$pdf->html_to_pdf($html_file);
|
||||
$html_doc->html_to_html($html_file);
|
||||
$md->html_to_md($html_file);
|
||||
}
|
||||
|
||||
if(!is_writable(PTS_PATH . 'documentation/'))
|
||||
@@ -222,6 +225,8 @@ class dump_documentation implements pts_option_interface
|
||||
$html_doc->Output(PTS_PATH . 'documentation/phoronix-test-suite.html');
|
||||
echo PHP_EOL . 'Saved To: ' . $pdf_file . PHP_EOL . PHP_EOL;
|
||||
|
||||
$md->Output(PTS_PATH . 'documentation/phoronix-test-suite.md');
|
||||
|
||||
// Also re-generate the man page
|
||||
$man_page = '.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "' . PTS_VERSION . '"' . PHP_EOL . '.SH NAME' . PHP_EOL;
|
||||
$man_page .= 'phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source platform for performing testing and performance evaluation.' . PHP_EOL;
|
||||
@@ -275,8 +280,17 @@ class dump_documentation implements pts_option_interface
|
||||
$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;
|
||||
|
||||
$md = new pts_md_template();
|
||||
$md->html_to_md(PTS_PATH . 'documentation/phoromatic.html');
|
||||
$md->Output(PTS_PATH . 'documentation/phoromatic.md');
|
||||
|
||||
$md = new pts_md_template();
|
||||
$md->html_to_md(PTS_PATH . 'documentation/phoronix-test-suite-windows.html');
|
||||
$md->Output(PTS_PATH . 'documentation/phoronix-test-suite-window.md');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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) 2017, Phoronix Media
|
||||
Copyright (C) 2017, 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,15 +20,31 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
class pts_test_downloads_nye_XmlReader extends nye_XmlReader
|
||||
class dump_file_info implements pts_option_interface
|
||||
{
|
||||
public function __construct($read_xml)
|
||||
public static function run($r)
|
||||
{
|
||||
parent::__construct($read_xml);
|
||||
}
|
||||
public function validate()
|
||||
{
|
||||
return $this->dom->schemaValidate(PTS_OPENBENCHMARKING_PATH . 'schemas/test-profile-downloads.xsd');
|
||||
pts_client::$display->generic_heading('File Information');
|
||||
if(empty($r))
|
||||
{
|
||||
echo PHP_EOL . 'No files passed.' . PHP_EOL;
|
||||
}
|
||||
foreach($r as $f)
|
||||
{
|
||||
if(!is_file($f))
|
||||
{
|
||||
echo PHP_EOL . 'Not a file: ' . $f . PHP_EOL;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo PHP_EOL . 'FILE: ' . basename($f) . PHP_EOL;
|
||||
echo 'MD5: ' . md5_file($f) . PHP_EOL;
|
||||
echo 'SHA256: ' . hash_file('sha256', $f) . PHP_EOL;
|
||||
echo 'SIZE: ' . filesize($f) . PHP_EOL;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
53
pts-core/commands/dump_phodevi_properties.php
Normal file
53
pts-core/commands/dump_phodevi_properties.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2018, Phoronix Media
|
||||
Copyright (C) 2018, 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 dump_phodevi_properties implements pts_option_interface
|
||||
{
|
||||
public static function run($r)
|
||||
{
|
||||
$properties = phodevi::read_all_properties();
|
||||
|
||||
foreach($properties as $component => $component_properties)
|
||||
{
|
||||
echo strtoupper($component) . PHP_EOL;
|
||||
foreach($component_properties as $property => $value)
|
||||
{
|
||||
echo ' ' . $property . ' = ';
|
||||
|
||||
if(is_array($value))
|
||||
{
|
||||
var_dump($value);
|
||||
/* echo PHP_EOL;
|
||||
foreach($value as $i => $j)
|
||||
echo ' ' . $i . ' = ' . $j . PHP_EOL; */
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $value . 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) 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
80
pts-core/commands/dump_suites_to_git.php
Normal file
80
pts-core/commands/dump_suites_to_git.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2017, Phoronix Media
|
||||
Copyright (C) 2017, 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 dump_suites_to_git implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'OpenBenchmarking.org';
|
||||
const doc_description = 'This option will create a Git repository of OpenBenchmarking.org test suites.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
pts_client::$display->generic_heading('OpenBenchmarking.org Tests To Suites');
|
||||
$path_to_git = getenv('TEST_SUITES_GIT_PATH') . '/';
|
||||
if(!pts_client::executable_in_path('git'))
|
||||
{
|
||||
echo PHP_EOL . 'git was not found on the system.' . PHP_EOL . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
if(empty($path_to_git) || !is_dir($path_to_git) || !is_writable($path_to_git))
|
||||
{
|
||||
echo PHP_EOL . 'TEST_SUITES_GIT_PATH must be set or the set directory is not writable/present.' . PHP_EOL . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
|
||||
shell_exec('cd ' . $path_to_git . ' && git pull');
|
||||
|
||||
foreach(pts_openbenchmarking::linked_repositories() as $repo)
|
||||
{
|
||||
if($repo == 'local')
|
||||
{
|
||||
// Skip local since it's a fake repository
|
||||
continue;
|
||||
}
|
||||
if(!is_dir($path_to_git . $repo))
|
||||
{
|
||||
pts_file_io::mkdir($path_to_git . $repo);
|
||||
}
|
||||
$repo_index = pts_openbenchmarking::read_repository_index($repo);
|
||||
$changes = pts_openbenchmarking_client::fetch_repository_changelog_full($repo);
|
||||
|
||||
foreach($changes['suites'] as $suite_identifier => $d)
|
||||
{
|
||||
foreach($d['changes'] as $suite_version => $dd)
|
||||
{
|
||||
$suite = $repo . '/' . $suite_identifier . '-' . $suite_version; // . ' ' . $dd['commit_description'] . ' ' . date('d F Y', $dd['last_updated']) . PHP_EOL;
|
||||
if(is_dir($path_to_git . $suite))
|
||||
continue;
|
||||
|
||||
pts_openbenchmarking::download_test_suite($suite, $path_to_git);
|
||||
if(is_dir($path_to_git . $suite))
|
||||
{
|
||||
$test_suite = new pts_test_suite($suite);
|
||||
echo 'git commit -m "' . $suite . ': ' . $dd['commit_description'] . '" --author="' . $test_suite->get_maintainer() . ' <no-reply@openbenchmarking.org>" --date="' . date(DATE_RFC2822, $dd['last_updated']) . '" ' . $suite . PHP_EOL;
|
||||
shell_exec('cd ' . $path_to_git . ' && git add ' . $suite . ' && git commit -m "' . $suite . ': ' . $dd['commit_description'] . '" --author="' . $test_suite->get_maintainer() . ' <no-reply@openbenchmarking.org>" --date="' . date(DATE_RFC2822, $dd['last_updated']) . '" ' . $suite);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
81
pts-core/commands/dump_tests_to_git.php
Normal file
81
pts-core/commands/dump_tests_to_git.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2017, Phoronix Media
|
||||
Copyright (C) 2017, 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 dump_tests_to_git implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'OpenBenchmarking.org';
|
||||
const doc_description = 'This option will create a Git repository of OpenBenchmarking.org test profiles.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
pts_client::$display->generic_heading('OpenBenchmarking.org Tests To Git');
|
||||
$path_to_git = getenv('TEST_PROFILES_GIT_PATH') . '/';
|
||||
if(!pts_client::executable_in_path('git'))
|
||||
{
|
||||
echo PHP_EOL . 'git was not found on the system.' . PHP_EOL . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
if(empty($path_to_git) || !is_dir($path_to_git) || !is_writable($path_to_git))
|
||||
{
|
||||
echo PHP_EOL . 'TEST_PROFILES_GIT_PATH must be set or the set directory is not writable/present.' . PHP_EOL . PHP_EOL;
|
||||
return false;
|
||||
}
|
||||
|
||||
shell_exec('cd ' . $path_to_git . ' && git pull');
|
||||
|
||||
foreach(pts_openbenchmarking::linked_repositories() as $repo)
|
||||
{
|
||||
if($repo == 'local')
|
||||
{
|
||||
// Skip local since it's a fake repository
|
||||
continue;
|
||||
}
|
||||
if(!is_dir($path_to_git . $repo))
|
||||
{
|
||||
pts_file_io::mkdir($path_to_git . $repo);
|
||||
}
|
||||
$repo_index = pts_openbenchmarking::read_repository_index($repo);
|
||||
$changes = pts_openbenchmarking_client::fetch_repository_changelog_full($repo);
|
||||
|
||||
foreach($changes['tests'] as $test_identifier => $d)
|
||||
{
|
||||
foreach($d['changes'] as $test_version => $dd)
|
||||
{
|
||||
$test = $repo . '/' . $test_identifier . '-' . $test_version; // . ' ' . $dd['commit_description'] . ' ' . date('d F Y', $dd['last_updated']) . PHP_EOL;
|
||||
if(is_dir($path_to_git . $test))
|
||||
continue;
|
||||
|
||||
pts_openbenchmarking::download_test_profile($test, $path_to_git);
|
||||
if(is_dir($path_to_git . $test))
|
||||
{
|
||||
$test_profile = new pts_test_profile($test);
|
||||
$maintainer = $test_profile->get_maintainer() != null ? $test_profile->get_maintainer() : 'Phoronix Test Suite';
|
||||
echo 'git commit -m "' . $test . ': ' . $dd['commit_description'] . '" --author="' . $maintainer . ' <no-reply@openbenchmarking.org>" --date="' . date(DATE_RFC2822, $dd['last_updated']) . '" ' . $test . PHP_EOL;
|
||||
shell_exec('cd ' . $path_to_git . ' && git add ' . $test . ' && git commit -m "' . $test . ': ' . $dd['commit_description'] . '" --author="' . $maintainer . ' <no-reply@openbenchmarking.org>" --date="' . date(DATE_RFC2822, $dd['last_updated']) . '" ' . $test);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
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
|
||||
Copyright (C) 2014 - 2018, Phoronix Media
|
||||
Copyright (C) 2014 - 2018, 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,10 +31,6 @@ class edit_result_file implements pts_option_interface
|
||||
new pts_argument_check(0, array('pts_types', 'is_result_file'), null)
|
||||
);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::recently_saved_results();
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
$result_file = new pts_result_file($r[0]);
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
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
|
||||
Copyright (C) 2014 - 2017, Phoronix Media
|
||||
Copyright (C) 2014 - 2017, 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
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
class enterprise_setup implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Other';
|
||||
const doc_section = 'User Configuration';
|
||||
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)
|
||||
|
||||
63
pts-core/commands/estimate_run_time.php
Normal file
63
pts-core/commands/estimate_run_time.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2017, Phoronix Media
|
||||
Copyright (C) 2017, 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 estimate_run_time implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Testing';
|
||||
const doc_description = 'This option will provide estimates for test run-time / length.';
|
||||
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_types', 'identifier_to_object'))
|
||||
);
|
||||
}
|
||||
public static function run($args)
|
||||
{
|
||||
echo PHP_EOL;
|
||||
|
||||
if($args[0] == 'pts/all' || empty($args))
|
||||
{
|
||||
$args = pts_openbenchmarking::available_tests(false);
|
||||
}
|
||||
|
||||
$tests = array();
|
||||
$total_time = 0;
|
||||
$test_count = 0;
|
||||
foreach($args as $arg)
|
||||
{
|
||||
foreach(pts_types::identifiers_to_test_profile_objects($arg) as $t)
|
||||
{
|
||||
$tests[] = array($t->get_identifier(), pts_strings::format_time($t->get_estimated_run_time()));
|
||||
$total_time += $t->get_estimated_run_time();
|
||||
$test_count++;
|
||||
}
|
||||
}
|
||||
if($test_count > 1 && $total_time > 0)
|
||||
{
|
||||
echo pts_user_io::display_text_table($tests);
|
||||
echo PHP_EOL . PHP_EOL . 'TOTAL TIME ESTIMATE: ' . pts_strings::format_time($total_time) . 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 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
Copyright (C) 2009 - 2018, Phoronix Media
|
||||
Copyright (C) 2009 - 2018, 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,10 +31,6 @@ 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];
|
||||
@@ -45,6 +41,12 @@ class finish_run implements pts_option_interface
|
||||
|
||||
foreach($result_file->get_result_objects() as $pos => $result_object)
|
||||
{
|
||||
// Don't load null test profile identifier tests into the run queue
|
||||
if($result_object->test_profile->get_identifier() == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$this_result_object_identifiers = $result_object->test_result_buffer->get_identifiers();
|
||||
|
||||
foreach($system_identifiers as $system_identifier)
|
||||
@@ -56,7 +58,7 @@ class finish_run implements pts_option_interface
|
||||
$test_positions[$system_identifier] = array();
|
||||
}
|
||||
|
||||
array_push($test_positions[$system_identifier], $pos);
|
||||
$test_positions[$system_identifier][] = $pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2009 - 2015, Phoronix Media
|
||||
Copyright (C) 2009 - 2015, Michael Larabel
|
||||
Copyright (C) 2009 - 2018, Phoronix Media
|
||||
Copyright (C) 2009 - 2018, 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
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
class force_install implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Asset Creation';
|
||||
const doc_section = 'Test Installation';
|
||||
const doc_description = 'This option will force the installation (or re-installation) of a test or suite. The arguments and process is similar to the install option but even if the test is installed, the entire installation process will automatically be executed. This option is generally used when debugging a test installation problem.';
|
||||
|
||||
public static function argument_checks()
|
||||
@@ -35,10 +35,6 @@ class force_install implements pts_option_interface
|
||||
{
|
||||
pts_test_installer::standard_install($r, true);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::invalid_command_helper($passed_args);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
class gui implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Web / GUI Support';
|
||||
const doc_description = '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.';
|
||||
const doc_description = '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. THIS FEATURE IS CURRENTLY EXPERIMENTAL AND NO LONGER ACTIVE DEVELOPMENT. See Phoronix Test Suite Phoromatic as an alternative web UI approach.';
|
||||
|
||||
public static function command_aliases()
|
||||
{
|
||||
@@ -39,6 +39,9 @@ class gui implements pts_option_interface
|
||||
return false;
|
||||
}
|
||||
|
||||
echo pts_client::cli_just_bold(PHP_EOL . 'THE PHORONIX TEST SUITE WEB GUI IS CURRENTLY DEPRECATED AND UNMAINTAINED. NO FUTURE IMPROVEMENTS TO THIS GUI ARE PLANNED AT THIS TIME.' . PHP_EOL . PHP_EOL . 'THOSE WANTING TO MAKE USE OF A PHORONIX TEST SUITE USER-INTERFACE ARE ENCOURAGED TO USE THE PHOROMATIC COMPONENT OF THE PHORONIX TEST SUITE. THERE IS ALSO `phoronix-test-suite interactive` FOR A SELF-GUIDED PHORONIX TEST SUITE EXPERIENCE.' . PHP_EOL . PHP_EOL);
|
||||
sleep(5);
|
||||
|
||||
$web_port = 0;
|
||||
$blocked_ports = array(2049, 3659, 4045, 6000);
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2010 - 2015, Phoronix Media
|
||||
Copyright (C) 2010 - 2015, Michael Larabel
|
||||
Copyright (C) 2010 - 2017, Phoronix Media
|
||||
Copyright (C) 2010 - 2017, 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,11 +23,11 @@
|
||||
class help implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Other';
|
||||
const doc_description = 'This option will display the list of available Phoronix Test Suite commands.';
|
||||
const doc_description = 'This option will display a list of available Phoronix Test Suite commands and possible parameter types.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
echo PHP_EOL . pts_core::program_title(true) . PHP_EOL . PHP_EOL;
|
||||
echo PHP_EOL . pts_client::cli_colored_text(pts_core::program_title(true), 'green', 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();
|
||||
|
||||
@@ -38,13 +38,15 @@ class help implements pts_option_interface
|
||||
continue;
|
||||
}
|
||||
|
||||
echo PHP_EOL . strtoupper($section) . PHP_EOL . PHP_EOL;
|
||||
echo PHP_EOL . pts_client::cli_just_bold(strtoupper($section)) . PHP_EOL . PHP_EOL;
|
||||
|
||||
sort($contents);
|
||||
$tabled = array();
|
||||
foreach($contents as &$option)
|
||||
{
|
||||
echo ' ' . trim($option[0] . ' ' . implode(' ', $option[1])) . PHP_EOL;
|
||||
$tabled[] = array($option[0], pts_client::cli_colored_text(implode(' ', $option[1]), 'gray'));
|
||||
}
|
||||
echo pts_user_io::display_text_table($tabled, ' ') . 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 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
Copyright (C) 2008 - 2018, Phoronix Media
|
||||
Copyright (C) 2008 - 2018, 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,15 +47,19 @@ class info implements pts_option_interface
|
||||
if($o instanceof pts_test_suite)
|
||||
{
|
||||
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;
|
||||
echo pts_client::cli_just_bold('Suite Description: ') . ' ' . $o->get_description() . PHP_EOL . PHP_EOL;
|
||||
$table = array();
|
||||
$table[] = array(pts_client::cli_just_bold('Run Identifier: '), $o->get_identifier());
|
||||
$table[] = array(pts_client::cli_just_bold('Suite Version: '), $o->get_version());
|
||||
$table[] = array(pts_client::cli_just_bold('Maintainer: '), $o->get_maintainer());
|
||||
$table[] = array(pts_client::cli_just_bold('Suite Type: '), $o->get_suite_type());
|
||||
$table[] = array(pts_client::cli_just_bold('Unique Tests: '), $o->get_unique_test_count());
|
||||
$table[] = array(pts_client::cli_just_bold('Contained Tests: '));
|
||||
foreach($o->get_contained_test_result_objects() as $result_obj)
|
||||
{
|
||||
$table[] = array(pts_client::cli_just_bold(null), $result_obj->test_profile->get_title() . ' ', $result_obj->get_arguments_description());
|
||||
}
|
||||
echo pts_user_io::display_text_table($table) . PHP_EOL;
|
||||
}
|
||||
else if($o instanceof pts_test_profile)
|
||||
{
|
||||
@@ -67,32 +71,60 @@ class info implements pts_option_interface
|
||||
}
|
||||
|
||||
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_license() == 'Retail' || $o->get_license() == 'Restricted')
|
||||
{
|
||||
echo pts_client::cli_just_bold(strtoupper('NOTE: This test profile is marked \'' . $o->get_license() . '\' and may have issues running without third-party/commercial dependencies.')) . PHP_EOL . PHP_EOL;
|
||||
}
|
||||
if($o->get_status() != 'Verified')
|
||||
{
|
||||
echo pts_client::cli_just_bold(strtoupper('NOTE: This test profile is marked \'' . $o->get_status() . '\' and may have known issues with test installation or execution.')) . PHP_EOL . PHP_EOL;
|
||||
}
|
||||
|
||||
$table = array();
|
||||
$table[] = array(pts_client::cli_just_bold('Run Identifier: '), $o->get_identifier());
|
||||
$table[] = array(pts_client::cli_just_bold('Profile Version: '), $o->get_test_profile_version());
|
||||
$table[] = array(pts_client::cli_just_bold('Maintainer: '), $o->get_maintainer());
|
||||
$table[] = array(pts_client::cli_just_bold('Test Type: '), $o->get_test_hardware_type());
|
||||
$table[] = array(pts_client::cli_just_bold('Software Type: '), $o->get_test_software_type());
|
||||
$table[] = array(pts_client::cli_just_bold('License Type: '), $o->get_license());
|
||||
$table[] = array(pts_client::cli_just_bold('Test Status: '), $o->get_status());
|
||||
$table[] = array(pts_client::cli_just_bold('Supported Platforms: '), implode(', ', $o->get_supported_platforms()));
|
||||
$table[] = array(pts_client::cli_just_bold('Project Web-Site: '), $o->get_project_url());
|
||||
|
||||
if($o->get_estimated_run_time() > 1)
|
||||
{
|
||||
echo 'Estimated Run-Time: ' . $o->get_estimated_run_time() . ' Seconds' . PHP_EOL;
|
||||
$table[] = array(pts_client::cli_just_bold('Estimated Run-Time: '), $o->get_estimated_run_time() . ' Seconds');
|
||||
}
|
||||
|
||||
$download_size = $o->get_download_size();
|
||||
if(!empty($download_size))
|
||||
{
|
||||
echo 'Download Size: ' . $download_size . ' MB' . PHP_EOL;
|
||||
$table[] = array(pts_client::cli_just_bold('Download Size: '), $download_size . ' MB');
|
||||
}
|
||||
|
||||
$environment_size = $o->get_environment_size();
|
||||
if(!empty($environment_size))
|
||||
{
|
||||
echo 'Environment Size: ' . $environment_size . ' MB' . PHP_EOL;
|
||||
$table[] = array(pts_client::cli_just_bold('Environment Size: '), $environment_size . ' MB');
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'Description: ' . $o->get_description() . PHP_EOL;
|
||||
echo pts_user_io::display_text_table($table);
|
||||
|
||||
echo PHP_EOL . PHP_EOL . pts_client::cli_just_bold('Description: ') . $o->get_description() . PHP_EOL;
|
||||
|
||||
if(stripos($o->get_identifier(0), 'local/') === false)
|
||||
{
|
||||
echo PHP_EOL . PHP_EOL . pts_client::cli_just_bold('OpenBenchmarking.org Test Profile: ') . 'https://openbenchmarking.org/test/' . $o->get_identifier() . PHP_EOL . PHP_EOL;
|
||||
}
|
||||
|
||||
foreach(array('Pre-Install Message' => $o->get_pre_install_message(), 'Post-Install Message' => $o->get_post_install_message(), 'Pre-Run Message' => $o->get_pre_run_message(), 'Post-Run Message' => $o->get_post_run_message()) as $msg_type => $msg)
|
||||
{
|
||||
if($msg != null)
|
||||
{
|
||||
echo PHP_EOL . pts_client::cli_just_bold($msg_type . ': ') . $msg . PHP_EOL. PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
if($o->test_installation != false)
|
||||
{
|
||||
@@ -103,38 +135,88 @@ class info implements pts_option_interface
|
||||
$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';
|
||||
$install_time = ceil($o->test_installation->get_latest_install_time());
|
||||
$install_time = !empty($install_time) ? pts_strings::format_time($install_time, 'SECONDS') : 'N/A';
|
||||
|
||||
echo PHP_EOL . 'Test Installed: Yes' . PHP_EOL;
|
||||
echo 'Last Run: ' . $last_run . PHP_EOL;
|
||||
$table = array();
|
||||
$table[] = array(pts_client::cli_just_bold('Test Installed: '), 'Yes');
|
||||
$table[] = array(pts_client::cli_just_bold('Last Run: '), $last_run);
|
||||
$table[] = array(pts_client::cli_just_bold('Install Time: '), $install_time);
|
||||
if($o->test_installation->get_install_size() > 0)
|
||||
{
|
||||
$table[] = array(pts_client::cli_just_bold('Install Size: '), $o->test_installation->get_install_size() . ' Bytes');
|
||||
}
|
||||
|
||||
if($last_run != 'Never')
|
||||
{
|
||||
if($o->test_installation->get_run_count() > 1)
|
||||
{
|
||||
echo 'Average Run-Time: ' . $avg_time . PHP_EOL;
|
||||
$table[] = array(pts_client::cli_just_bold('Average Run-Time: '), $avg_time);
|
||||
}
|
||||
|
||||
echo 'Latest Run-Time: ' . $latest_time . PHP_EOL;
|
||||
echo 'Times Run: ' . $o->test_installation->get_run_count() . PHP_EOL;
|
||||
$table[] = array(pts_client::cli_just_bold('Latest Run-Time: '), $latest_time);
|
||||
$table[] = array(pts_client::cli_just_bold('Times Run: '), $o->test_installation->get_run_count());
|
||||
}
|
||||
echo pts_user_io::display_text_table($table) . PHP_EOL;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo PHP_EOL . 'Test Installed: No' . PHP_EOL;
|
||||
echo PHP_EOL . pts_client::cli_just_bold('Test Installed: ') . 'No' . PHP_EOL;
|
||||
}
|
||||
|
||||
$dependencies = $o->get_dependencies();
|
||||
$dependencies = $o->get_external_dependencies();
|
||||
if(!empty($dependencies) && !empty($dependencies[0]))
|
||||
{
|
||||
echo PHP_EOL . 'Software Dependencies:' . PHP_EOL;
|
||||
echo PHP_EOL . pts_client::cli_just_bold('Software Dependencies:') . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($o->get_dependency_names());
|
||||
}
|
||||
echo PHP_EOL;
|
||||
|
||||
|
||||
|
||||
// OpenBenchmarking.org Change-Log
|
||||
if(stripos($o->get_identifier(), 'local/') === false)
|
||||
{
|
||||
|
||||
$change_log = pts_openbenchmarking_client::fetch_repository_test_profile_changelog($o->get_identifier(false));
|
||||
|
||||
if(is_array($change_log) && isset($change_log['tests'][$o->get_identifier_base_name()]['changes']))
|
||||
{
|
||||
echo pts_client::cli_just_bold('OpenBenchmarking.org Change History') . PHP_EOL;
|
||||
$change_log = $change_log['tests'][$o->get_identifier_base_name()]['changes'];
|
||||
foreach($change_log as $version => $data)
|
||||
{
|
||||
echo pts_client::cli_colored_text('v' . $version . ' - ' . date('j F Y', $data['last_updated']), 'green', true) . PHP_EOL;
|
||||
echo $data['commit_description'] . PHP_EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Recent Test Results With This Test
|
||||
$o_identifier = $o->get_identifier(false);
|
||||
$table = array();
|
||||
foreach(pts_client::saved_test_results() as $saved_results_identifier)
|
||||
{
|
||||
$result_file = new pts_result_file($saved_results_identifier);
|
||||
foreach($result_file->get_result_objects() as $result_object)
|
||||
{
|
||||
if($result_object->test_profile->get_identifier(false) == $o_identifier)
|
||||
{
|
||||
$table[] = array(pts_client::cli_just_bold($result_file->get_identifier()), $result_file->get_title());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!empty($table))
|
||||
{
|
||||
echo PHP_EOL . pts_client::cli_just_bold('Results Containing This Test') . PHP_EOL;
|
||||
echo pts_user_io::display_text_table($table);
|
||||
}
|
||||
}
|
||||
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_client::cli_just_bold('Title: ') . $o->get_title() . PHP_EOL . pts_client::cli_just_bold('Identifier: ') . $o->get_identifier() . PHP_EOL;
|
||||
echo PHP_EOL . pts_client::cli_just_bold('Test Result Identifiers:') . PHP_EOL;
|
||||
echo pts_user_io::display_text_list($o->get_system_identifiers());
|
||||
|
||||
$test_titles = array();
|
||||
@@ -142,13 +224,13 @@ class info implements pts_option_interface
|
||||
{
|
||||
if($result_object->test_profile->get_display_format() == 'BAR_GRAPH')
|
||||
{
|
||||
array_push($test_titles, $result_object->test_profile->get_title());
|
||||
$test_titles[] = $result_object->test_profile->get_title();
|
||||
}
|
||||
}
|
||||
|
||||
if(count($test_titles) > 0)
|
||||
{
|
||||
echo PHP_EOL . 'Contained Tests:' . PHP_EOL;
|
||||
echo PHP_EOL . pts_client::cli_just_bold('Contained Tests:') . PHP_EOL;
|
||||
echo pts_user_io::display_text_list(array_unique($test_titles));
|
||||
}
|
||||
echo PHP_EOL;
|
||||
@@ -156,7 +238,7 @@ class info implements pts_option_interface
|
||||
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;
|
||||
echo pts_client::cli_just_bold('Virtual Suite Description: ') . $o->get_description() . PHP_EOL . PHP_EOL;
|
||||
|
||||
foreach($o->get_contained_test_profiles() as $test_profile)
|
||||
{
|
||||
|
||||
49
pts-core/commands/inspect_test_profile.php
Normal file
49
pts-core/commands/inspect_test_profile.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2018, Phoronix Media
|
||||
Copyright (C) 2018, 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 inspect_test_profile implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Asset Creation';
|
||||
const doc_description = 'This option can be used for inspecting a Phoronix Test Suite test profile with providing inside details on test profiles for debugging / evaluation / learning purposes.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
$types = pts_validation::process_xsd_types();
|
||||
foreach(pts_types::identifiers_to_test_profile_objects($r, true, true) as $test_profile)
|
||||
{
|
||||
pts_client::$display->generic_heading($test_profile . ' - test-definition.xml');
|
||||
pts_validation::process_xsd_display_chart(pts_openbenchmarking::openbenchmarking_standards_path() . 'schemas/test-profile.xsd', $test_profile, $types);
|
||||
pts_client::$display->generic_heading($test_profile . ' - downloads.xml');
|
||||
pts_validation::process_xsd_display_chart(pts_openbenchmarking::openbenchmarking_standards_path() . 'schemas/test-profile-downloads.xsd', $test_profile, $types);
|
||||
pts_client::$display->generic_heading($test_profile . ' - results-definition.xml');
|
||||
pts_validation::process_xsd_display_chart(pts_openbenchmarking::openbenchmarking_standards_path() . 'schemas/results-parser.xsd', $test_profile, $types);
|
||||
}
|
||||
}
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
new pts_argument_check(0, array('pts_test_profile', 'is_test_profile'), 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 - 2018, Phoronix Media
|
||||
Copyright (C) 2008 - 2018, 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
|
||||
@@ -30,10 +30,6 @@ class install_test implements pts_option_interface
|
||||
{
|
||||
return array('install');
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::invalid_command_helper($passed_args);
|
||||
}
|
||||
public static function argument_checks()
|
||||
{
|
||||
return array(
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2011 - 2015, Phoronix Media
|
||||
Copyright (C) 2011 - 2015, Michael Larabel
|
||||
Copyright (C) 2011 - 2018, Phoronix Media
|
||||
Copyright (C) 2011 - 2018, 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,7 +29,8 @@ class interactive implements pts_option_interface
|
||||
{
|
||||
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;
|
||||
echo phodevi::system_centralized_view();
|
||||
echo PHP_EOL . (phodevi::read_property('motherboard', 'serial-number') != null ? PHP_EOL . 'System Serial Number: ' . phodevi::read_property('motherboard', 'serial-number') : null) . PHP_EOL . PHP_EOL;
|
||||
$reboot_on_exit = false;
|
||||
|
||||
do
|
||||
@@ -39,8 +40,11 @@ class interactive implements pts_option_interface
|
||||
'RUN_SUITE' => 'Run A Suite [A Collection Of Tests]',
|
||||
'RUN_SYSTEM_TEST' => 'Run Complex System Test',
|
||||
'SHOW_INFO' => 'Show System Hardware / Software Information',
|
||||
'SHOW_SENSORS' => 'Show Auto-Detected System Sensors',
|
||||
'SET_RUN_COUNT' => 'Set Test Run Repetition'
|
||||
'SHOW_SENSORS' => 'Show Available System Sensors',
|
||||
'LIST_TESTS' => 'List Available Tests',
|
||||
'LIST_RECOMMENDED_TESTS' => 'List Recommended Tests',
|
||||
'SET_RUN_COUNT' => 'Set Test Run Repetition',
|
||||
'SEARCH' => 'Search Tests / Suites / Results'
|
||||
);
|
||||
|
||||
if(count(pts_client::saved_test_results()) > 0)
|
||||
@@ -95,7 +99,7 @@ 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);
|
||||
@@ -109,6 +113,9 @@ class interactive implements pts_option_interface
|
||||
case 'SELECT_DRIVE_MOUNT':
|
||||
self::select_drive_mount();
|
||||
break;
|
||||
case 'SEARCH':
|
||||
pts_client::execute_command('search');
|
||||
break;
|
||||
case 'RUN_SYSTEM_TEST':
|
||||
pts_client::$display->generic_heading('System Test');
|
||||
$system_tests = array('apache', 'c-ray', 'ramspeed', 'postmark');
|
||||
@@ -121,32 +128,37 @@ class interactive implements pts_option_interface
|
||||
}
|
||||
break;
|
||||
case 'SHOW_INFO':
|
||||
pts_client::$display->generic_heading('System Software / Hardware Information');
|
||||
echo 'Hardware:' . PHP_EOL . phodevi::system_hardware(true) . PHP_EOL . PHP_EOL;
|
||||
echo 'Software:' . PHP_EOL . phodevi::system_software(true) . PHP_EOL . PHP_EOL;
|
||||
pts_client::execute_command('system_info');
|
||||
break;
|
||||
case 'SHOW_SENSORS':
|
||||
pts_client::execute_command('system_sensors');
|
||||
break;
|
||||
case 'LIST_TESTS':
|
||||
pts_client::execute_command('list_available_tests');
|
||||
break;
|
||||
case 'LIST_RECOMMENDED_TESTS':
|
||||
pts_client::execute_command('list_recommended_tests');
|
||||
break;
|
||||
case 'SET_RUN_COUNT':
|
||||
$run_count = pts_user_io::prompt_user_input('Set the minimum number of times each test should repeat', false);
|
||||
putenv('FORCE_TIMES_TO_RUN=' . trim($run_count));
|
||||
break;
|
||||
case 'BACKUP_RESULTS_TO_USB':
|
||||
pts_client::$display->generic_heading('Backing Up Test Results');
|
||||
|
||||
foreach(pts_file_io::glob('/media/*') as $media_dir)
|
||||
$writable_backup_locations = array();
|
||||
foreach(array_merge(pts_file_io::glob('/media/*'), pts_file_io::glob('/run/media/*/*')) as $media_dir)
|
||||
{
|
||||
if(!is_writable($media_dir))
|
||||
if(is_writable($media_dir))
|
||||
{
|
||||
echo PHP_EOL . $media_dir . ' is not writable.' . PHP_EOL;
|
||||
continue;
|
||||
$writable_backup_locations[] = $media_dir;
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'Writing Test Results To: ' . $media_dir . PHP_EOL;
|
||||
pts_file_io::copy(PTS_SAVE_RESULTS_PATH, $media_dir . '/');
|
||||
break;
|
||||
}
|
||||
|
||||
$backup_location = pts_user_io::prompt_text_menu('Select Backup Location', $writable_backup_locations);
|
||||
$backup_location .= '/phoronix-test-suite-test-results/';
|
||||
pts_file_io::mkdir($backup_location);
|
||||
echo PHP_EOL . pts_client::cli_just_bold('Writing Test Results To: ') . $backup_location . PHP_EOL;
|
||||
pts_file_io::copy(PTS_SAVE_RESULTS_PATH, $backup_location . '/');
|
||||
break;
|
||||
}
|
||||
echo PHP_EOL . PHP_EOL;
|
||||
@@ -161,7 +173,7 @@ class interactive implements pts_option_interface
|
||||
exec('umount /media/pts-auto-mount 2>&1');
|
||||
}
|
||||
|
||||
exec('reboot');
|
||||
phodevi::reboot();
|
||||
}
|
||||
}
|
||||
private static function select_drive_mount()
|
||||
@@ -174,7 +186,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 - 2015, Phoronix Media
|
||||
Copyright (C) 2013 - 2015, Michael Larabel
|
||||
Copyright (C) 2013 - 2018, Phoronix Media
|
||||
Copyright (C) 2013 - 2018, 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
|
||||
@@ -45,10 +45,6 @@ class internal_run implements pts_option_interface
|
||||
|
||||
$test_run_manager->standard_run($r);
|
||||
}
|
||||
public static function invalid_command($passed_args = null)
|
||||
{
|
||||
pts_tests::invalid_command_helper($passed_args);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -31,7 +31,7 @@ class list_available_suites implements pts_option_interface
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
$available_suites = pts_openbenchmarking::available_suites(false);
|
||||
$available_suites = array_merge(pts_openbenchmarking::available_suites(false), pts_tests::local_suites());
|
||||
pts_client::$display->generic_heading('Available Suites');
|
||||
|
||||
if(count($available_suites) > 0)
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
Copyright (C) 2008 - 2018, Phoronix Media
|
||||
Copyright (C) 2008 - 2018, 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,7 +23,7 @@
|
||||
class list_available_tests implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Information';
|
||||
const doc_description = 'This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories.';
|
||||
const doc_description = 'This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories where supported on the system and are of a verified state.';
|
||||
|
||||
public static function command_aliases()
|
||||
{
|
||||
@@ -39,7 +39,12 @@ 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;
|
||||
}
|
||||
if(!empty($repo_index['tests'][$id]['status']) && $repo_index['tests'][$id]['status'] != 'Verified')
|
||||
{
|
||||
// Don't show unsupported tests
|
||||
continue;
|
||||
@@ -49,9 +54,9 @@ class list_available_tests implements pts_option_interface
|
||||
$test_count++;
|
||||
}
|
||||
|
||||
foreach(pts_file_io::glob(PTS_TEST_PROFILE_PATH . 'local/*/test-definition.xml') as $path)
|
||||
foreach(pts_tests::local_tests() as $identifier)
|
||||
{
|
||||
$test_profile = new pts_test_profile('local/' . basename(dirname($path)));
|
||||
$test_profile = new pts_test_profile($identifier);
|
||||
|
||||
if($test_profile->get_title() != null && $test_profile->is_supported(false))
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
82
pts-core/commands/list_not_installed_tests.php
Normal file
82
pts-core/commands/list_not_installed_tests.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2016, Phoronix Media
|
||||
Copyright (C) 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 list_not_installed_tests implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Information';
|
||||
const doc_description = 'This option will list all test profiles that are supported and available but presently NOT installed on the system.';
|
||||
|
||||
public static function command_aliases()
|
||||
{
|
||||
return array('list_uninstalled_tests');
|
||||
}
|
||||
public static function run($r)
|
||||
{
|
||||
pts_client::$display->generic_heading('Available Tests Not Installed');
|
||||
$test_count = 0;
|
||||
foreach(pts_openbenchmarking::available_tests(false) as $identifier)
|
||||
{
|
||||
$repo = substr($identifier, 0, strpos($identifier, '/'));
|
||||
$id = substr($identifier, strlen($repo) + 1);
|
||||
$repo_index = pts_openbenchmarking::read_repository_index($repo);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
$test_profile = new pts_test_profile($identifier);
|
||||
if($test_profile->is_test_installed())
|
||||
{
|
||||
// Only show uninstalled tests
|
||||
continue;
|
||||
}
|
||||
|
||||
echo sprintf('%-30ls - %-35ls %-9ls', $identifier, $repo_index['tests'][$id]['title'], $repo_index['tests'][$id]['test_type']) . PHP_EOL;
|
||||
$test_count++;
|
||||
}
|
||||
|
||||
foreach(pts_tests::local_tests() as $identifier)
|
||||
{
|
||||
$test_profile = new pts_test_profile($identifier);
|
||||
if($test_profile->is_test_installed())
|
||||
{
|
||||
// Only show uninstalled tests
|
||||
continue;
|
||||
}
|
||||
|
||||
if($test_profile->get_title() != null && $test_profile->is_supported(false))
|
||||
{
|
||||
echo sprintf('%-30ls - %-35ls %-9ls', $test_profile->get_identifier(), $test_profile->get_title(), $test_profile->get_test_hardware_type()) . PHP_EOL;
|
||||
$test_count++;
|
||||
}
|
||||
}
|
||||
|
||||
if($test_count == 0)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -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 - 2018, Phoronix Media
|
||||
Copyright (C) 2012 - 2018, 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 - 2012, Phoronix Media
|
||||
Copyright (C) 2008 - 2012, Michael Larabel
|
||||
Copyright (C) 2008 - 2017, Phoronix Media
|
||||
Copyright (C) 2008 - 2017, 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,8 @@ class list_test_usage implements pts_option_interface
|
||||
|
||||
if(count($installed_tests) > 0)
|
||||
{
|
||||
echo sprintf('%-18ls %-8ls %-13ls %-11ls %-13ls %-10ls', 'TEST', 'VERSION', 'INSTALL DATE', 'LAST RUN', 'AVG RUN-TIME', 'TIMES RUN') . PHP_EOL;
|
||||
echo sprintf('%-32ls %-12ls %-11ls %-8ls %-6ls', 'TEST', 'INSTALL', 'LAST RUN', 'AVERAGE', 'TIMES') . PHP_EOL;
|
||||
echo sprintf('%-32ls %-12ls %-11ls %-8ls %-6ls', '', 'DATE', 'DATE', 'RUNTIME', 'RUN') . PHP_EOL;
|
||||
foreach($installed_tests as $identifier)
|
||||
{
|
||||
$test_profile = new pts_test_profile($identifier);
|
||||
@@ -45,7 +46,7 @@ class list_test_usage implements pts_option_interface
|
||||
$last_run = $test_profile->test_installation->get_last_run_date();
|
||||
$last_run = $last_run == '0000-00-00' ? 'NEVER' : $last_run;
|
||||
|
||||
echo sprintf('%-18ls - %-8ls %-13ls %-11ls %-13ls %-10ls', $identifier, $test_profile->test_installation->get_installed_version(), $test_profile->test_installation->get_install_date(), $last_run, $avg_time, $test_profile->test_installation->get_run_count()) . PHP_EOL;
|
||||
echo sprintf('%-32ls %-12ls %-11ls %-8ls %-6ls', $identifier, $test_profile->test_installation->get_install_date(), $last_run, $avg_time, $test_profile->test_installation->get_run_count()) . PHP_EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
Copyright (C) 2008 - 2018, Phoronix Media
|
||||
Copyright (C) 2008 - 2018, 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,7 +31,8 @@ class make_download_cache implements pts_option_interface
|
||||
pts_openbenchmarking::refresh_repository_lists(null, true);
|
||||
|
||||
// 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)));
|
||||
$dc_write_directory = pts_client::download_cache_path();
|
||||
pts_file_io::mkdir($dc_write_directory);
|
||||
echo PHP_EOL . 'Download Cache Directory: ' . $dc_write_directory . PHP_EOL;
|
||||
|
||||
if($dc_write_directory == null || !is_writable($dc_write_directory))
|
||||
@@ -59,21 +60,21 @@ class make_download_cache implements pts_option_interface
|
||||
foreach(pts_tests::partially_installed_tests() as $test)
|
||||
{
|
||||
$test_profile = new pts_test_profile($test);
|
||||
echo PHP_EOL . 'Checking Downloads For: ' . $test . PHP_EOL;
|
||||
echo PHP_EOL . pts_client::cli_just_bold('Checking Downloads For: ') . $test . PHP_EOL;
|
||||
|
||||
foreach(pts_test_install_request::read_download_object_list($test_profile, false) as $file)
|
||||
foreach($test_profile->get_downloads() 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;
|
||||
echo pts_client::cli_just_bold(' Previously Cached: ') . $file->get_filename() . PHP_EOL;
|
||||
$cached_valid = true;
|
||||
}
|
||||
else 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()))
|
||||
{
|
||||
echo ' Caching: ' . $file->get_filename() . PHP_EOL;
|
||||
echo pts_client::cli_just_bold(' Caching: ') . $file->get_filename() . PHP_EOL;
|
||||
if(copy($test_profile->get_install_dir() . $file->get_filename(), $dc_write_directory . $file->get_filename()))
|
||||
{
|
||||
$cached_valid = true;
|
||||
@@ -95,7 +96,7 @@ class make_download_cache implements pts_option_interface
|
||||
}
|
||||
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'])
|
||||
{
|
||||
array_push($json_download_cache['phoronix-test-suite']['download-cache'][$file->get_filename()]['associated_tests'], $test_profile->get_identifier());
|
||||
$json_download_cache['phoronix-test-suite']['download-cache'][$file->get_filename()]['associated_tests'][] = $test_profile->get_identifier();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -120,11 +121,11 @@ class make_download_cache implements pts_option_interface
|
||||
$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)
|
||||
if(pts_test_install_request::test_files_in_install_dir($test) == false)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
array_push($cached_tests, $test);
|
||||
$cached_tests[] = $test;
|
||||
}
|
||||
$json_download_cache['phoronix-test-suite']['cached-tests'] = $cached_tests;
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
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
|
||||
Copyright (C) 2014 - 2018, Phoronix Media
|
||||
Copyright (C) 2014 - 2018, 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,6 +42,8 @@ class make_openbenchmarking_cache implements pts_option_interface
|
||||
return false;
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'CACHE LOCATION: ' . PTS_OPENBENCHMARKING_SCRATCH_PATH . PHP_EOL;
|
||||
|
||||
$terminal_width = pts_client::terminal_width();
|
||||
|
||||
// Cache test profiles
|
||||
@@ -56,9 +58,9 @@ class make_openbenchmarking_cache implements pts_option_interface
|
||||
{
|
||||
$qualified_identifier = $repo . '/' . $test . '-' . $version;
|
||||
echo $qualified_identifier;
|
||||
$success = pts_openbenchmarking::download_test_profile($repo . '/' . $test . '-' . $version);
|
||||
$success = pts_openbenchmarking::download_test_profile($repo . '/' . $test . '-' . $version, null, true);
|
||||
|
||||
if($success && is_file(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip'))
|
||||
if(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');
|
||||
@@ -70,6 +72,10 @@ class make_openbenchmarking_cache implements pts_option_interface
|
||||
$total_cache_count++;
|
||||
$total_cache_size += $file_size;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Failed Downloading: ' . $qualified_identifier . '.zip';
|
||||
}
|
||||
}
|
||||
echo PHP_EOL;
|
||||
}
|
||||
@@ -86,9 +92,9 @@ class make_openbenchmarking_cache implements pts_option_interface
|
||||
{
|
||||
$qualified_identifier = $repo . '/' . $test . '-' . $version;
|
||||
echo $qualified_identifier;
|
||||
$success = pts_openbenchmarking::download_test_suite($repo . '/' . $test . '-' . $version);
|
||||
$success = pts_openbenchmarking::download_test_suite($repo . '/' . $test . '-' . $version, null, true);
|
||||
|
||||
if($success && is_file(PTS_OPENBENCHMARKING_SCRATCH_PATH . $qualified_identifier . '.zip'))
|
||||
if(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');
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2008 - 2015, Phoronix Media
|
||||
Copyright (C) 2008 - 2015, Michael Larabel
|
||||
Copyright (C) 2008 - 2018, Phoronix Media
|
||||
Copyright (C) 2008 - 2018, 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, PTS_SAVE_RESULTS_PATH . $result_file . '/composite.xml');
|
||||
$result_files_to_merge[] = PTS_SAVE_RESULTS_PATH . $result_file . '/composite.xml';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,10 +64,6 @@ class merge_results implements pts_option_interface
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
52
pts-core/commands/network_info.php
Normal file
52
pts-core/commands/network_info.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Phoronix Test Suite
|
||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||
Copyright (C) 2016 - 2018, Phoronix Media
|
||||
Copyright (C) 2016 - 2018, 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 network_info implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'User Configuration';
|
||||
const doc_description = 'This option will print information detected by the Phoronix Test Suite around the system\'s network configuration.';
|
||||
|
||||
public static function run($r)
|
||||
{
|
||||
$table = array();
|
||||
$table[] = array('Local IP:', pts_network::get_local_ip());
|
||||
$table[] = array('Interface:', pts_network::get_active_network_interface());
|
||||
$table[] = array('Network MAC: ', pts_network::get_network_mac());
|
||||
$table[] = array('Wake On LAN: ', implode(' ', pts_network::get_network_wol()));
|
||||
|
||||
if(pts_network::get_network_proxy() != false)
|
||||
{
|
||||
foreach(pts_network::get_network_proxy() as $item => $val)
|
||||
$table[] = array('Proxy ' . $item, $val);
|
||||
}
|
||||
$table[] = array('Can Reach Phoronix-Test-Suite.com:', pts_network::can_reach_phoronix_test_suite_com() ? 'YES' : 'NO');
|
||||
$table[] = array('Can Reach OpenBenchmarking.org:', pts_network::can_reach_openbenchmarking_org() ? 'YES' : 'NO');
|
||||
$table[] = array('Can Reach Phoronix.net:', pts_network::can_reach_phoronix_net() ? 'YES' : 'NO');
|
||||
foreach($table as &$row)
|
||||
{
|
||||
$row[0] = pts_client::cli_just_bold($row[0]);
|
||||
}
|
||||
echo PHP_EOL . pts_user_io::display_text_table($table, null, 0) . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -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 - 2017, Phoronix Media
|
||||
Copyright (C) 2009 - 2017, 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
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
class network_setup implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'Other';
|
||||
const doc_section = 'User Configuration';
|
||||
const doc_description = '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.';
|
||||
|
||||
public static function run($r)
|
||||
@@ -36,15 +36,26 @@ class network_setup implements pts_option_interface
|
||||
|
||||
$proxy_address = pts_user_io::prompt_user_input('Enter IP address / server name of proxy');
|
||||
$proxy_port = pts_user_io::prompt_user_input('Enter TCP port for proxy server');
|
||||
$proxy_user = pts_user_io::prompt_user_input('Enter user-name for proxy (leave blank if irrelevant)', true);
|
||||
if(!empty($proxy_user))
|
||||
{
|
||||
$proxy_password = pts_strings::str_to_hex(pts_user_io::prompt_user_input('Enter password for proxy', true, true));
|
||||
}
|
||||
else
|
||||
{
|
||||
$proxy_password = null;
|
||||
}
|
||||
|
||||
echo PHP_EOL . 'Testing Proxy Server (' . $proxy_address . ':' . $proxy_port . ')' . PHP_EOL;
|
||||
|
||||
if(pts_network::http_get_contents('http://www.phoronix-test-suite.com/PTS', $proxy_address, $proxy_port) == 'PTS')
|
||||
if(pts_network::http_get_contents('http://www.phoronix-test-suite.com/PTS', $proxy_address, $proxy_port, $proxy_user, $proxy_password) == 'PTS')
|
||||
{
|
||||
echo PHP_EOL . 'Proxy Setup Completed; Storing Network Settings.' . PHP_EOL;
|
||||
pts_config::user_config_generate(array(
|
||||
'PhoronixTestSuite/Options/Networking/ProxyAddress' => $proxy_address,
|
||||
'PhoronixTestSuite/Options/Networking/ProxyPort' => $proxy_port
|
||||
'PhoronixTestSuite/Options/Networking/ProxyPort' => $proxy_port,
|
||||
'PhoronixTestSuite/Options/Networking/ProxyUser' => $proxy_user,
|
||||
'PhoronixTestSuite/Options/Networking/ProxyPassword' => $proxy_password
|
||||
));
|
||||
}
|
||||
else
|
||||
|
||||
@@ -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
|
||||
@@ -195,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]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,7 +363,7 @@ var_dump($server_response);
|
||||
{
|
||||
$gl_usage[$line]++;
|
||||
}
|
||||
else if(ctype_alnum($line))
|
||||
else if(pts_strings::is_alnum($line))
|
||||
{
|
||||
$gl_usage[$line] = 1;
|
||||
}
|
||||
|
||||
@@ -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 - 2018, Phoronix Media
|
||||
Copyright (C) 2011 - 2018, 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
|
||||
@@ -65,14 +65,14 @@ class openbenchmarking_changes implements pts_option_interface
|
||||
|
||||
foreach($recently_updated as $test_profile => $repo_data)
|
||||
{
|
||||
echo sprintf('%-' . $longest_identifier_length . 'ls - %-35ls', $test_profile, $repo_data['title']) . PHP_EOL;
|
||||
echo sprintf('%-' . $longest_identifier_length . 'ls - %-35ls', $test_profile, pts_client::cli_just_bold($repo_data['title'])) . PHP_EOL;
|
||||
$br = explode('/', $test_profile);
|
||||
|
||||
if(isset($changes[$br[0]]['tests'][$br[1]]['changes']))
|
||||
{
|
||||
foreach($changes[$br[0]]['tests'][$br[1]]['changes'] as $test_profile_version => $data)
|
||||
{
|
||||
echo 'v' . $test_profile_version . ' [' . date('d M Y', $data['last_updated']) . ']' . PHP_EOL;
|
||||
echo pts_client::cli_colored_text('v' . $test_profile_version, 'green', true) . ' [' . date('d M Y', $data['last_updated']) . ']' . PHP_EOL;
|
||||
echo ' - ' . $data['commit_description'] . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
class openbenchmarking_launcher implements pts_option_interface
|
||||
{
|
||||
const doc_section = 'OpenBenchmarking.org';
|
||||
const doc_skip = true;
|
||||
const doc_description = 'This option is called automatically with the .openbenchmarking MIME file extension support for launching OpenBenchmarking.org operations.';
|
||||
|
||||
public static function run($r)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user