1 : <?php
2 :
3 : /*
4 : * XSLT Benchmarking
5 : * @link https://github.com/masicek/XSLT-Benchmarking
6 : * @author Viktor Mašíček <viktor@masicek.net>
7 : * @license "New" BSD License
8 : */
9 :
10 : namespace XSLTBenchmarking\TestsRunner;
11 :
12 : // @codeCoverageIgnoreStart
13 : require_once __DIR__ . '/AProcessorDriver.php';
14 : // @codeCoverageIgnoreEnd
15 :
16 : /**
17 : * Driver for "XT 20051206"
18 : *
19 : * @author Viktor Mašíček <viktor@masicek.net>
20 : */
21 : class XT20051206ProcessorDriver extends AProcessorDriver
22 : {
23 :
24 :
25 : /**
26 : * Return flag, if the driver is available.
27 : *
28 : * @return bool
29 : */
30 : public function isAvailable()
31 : {
32 4 : switch (PHP_OS)
33 : {
34 4 : case self::OS_WIN:
35 4 : return TRUE;
36 : break;
37 :
38 0 : case self::OS_LINUX:
39 : // java is needed
40 0 : exec('java -version 2>&1 | grep \'java version\' | wc -l', $output);
41 0 : if ($output[0] == '0')
42 0 : {
43 0 : return FALSE;
44 : }
45 : else
46 : {
47 0 : return TRUE;
48 : }
49 : break;
50 :
51 0 : default:
52 0 : return FALSE;
53 : break;
54 0 : }
55 : }
56 :
57 :
58 : /**
59 : * Return template of command
60 : *
61 : * Templates substitutions:
62 : * [XSLT] = path of XSLT template for transformation
63 : * [INPUT] = path of input XML file
64 : * [OUTPUT] = path of generated output XML file
65 : * [ERROR] = path of file for eventual generated error message
66 : * [LIBS] = path of directory containing XSLT processors (libraries, command-line program etc.)
67 : *
68 : * @return string
69 : */
70 : public function getCommandTemplate()
71 : {
72 2 : switch (PHP_OS)
73 : {
74 2 : case self::OS_WIN:
75 2 : $commandTemplate = '"[LIBS]\Java\1.6.0_29\java.exe" -cp "[PROCESSORS]\XT\20051206\xt20051206.jar";"[PROCESSORS]\XT\20051206\xp.jar";"[PROCESSORS]\XT\20051206\sax2r2.jar" com.jclark.xsl.sax.Driver "[INPUT]" "[XSLT]" "[OUTPUT]" 2> "[ERROR]"';
76 2 : break;
77 :
78 0 : case self::OS_LINUX:
79 : // we assume installing java
80 0 : $commandTemplate = 'java -cp [PROCESSORS]/XT/20051206/xt20051206.jar:[PROCESSORS]/XT/20051206/xp.jar:[PROCESSORS]/XT/20051206/sax2r2.jar com.jclark.xsl.sax.Driver [INPUT] [XSLT] [OUTPUT] 2> [ERROR]';
81 0 : break;
82 0 : }
83 :
84 2 : return $commandTemplate;
85 : }
86 :
87 :
88 : /**
89 : * Full name of processor (with version)
90 : *
91 : * @return string
92 : */
93 : public function getFullName()
94 : {
95 3 : return 'XT 20051206';
96 : }
97 :
98 :
99 : /**
100 : * Return name of processor kernel.
101 : * Available kernels are const of this class with prefix "KERNEL_"
102 : *
103 : * Examples:
104 : * Saxon 6.5.5 -> Saxon
105 : * xsltproc -> libxslt
106 : *
107 : * @return string
108 : */
109 : public function getKernel()
110 : {
111 1 : return self::KERNEL_XT;
112 : }
113 :
114 :
115 : }
|