Commit: 535244fe2ee2ea476a09c203a9b6b626c2e15397
Author: Matt Ficken <v-maf...@microsoft.com> Fri, 2 Aug 2013
13:09:08 -0700
Parents: 51143a2b59a519be36d3c514ee24f95731a4ace8
Branches: master
Link:
http://git.php.net/?p=pftt2.git;a=commitdiff;h=535244fe2ee2ea476a09c203a9b6b626c2e15397
Log:
upgrading wincache
Changed paths:
D cache/dep/wincache/php_wincache-1.3-5.5-nts-vc11-x86/php_wincache.dll
A cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.dll
A cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.pdb
A cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.dll
A cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.pdb
A cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll
A cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb
D conf/wincacheu.groovy
A conf/wincacheu_file_and_user.groovy
A conf/wincacheu_only_file.groovy
A conf/wincacheu_only_user.groovy
M src/com/mostc/pftt/scenario/WinCacheUScenario.java
A src/com/mostc/pftt/scenario/WinCacheU_FileAndUserCacheScenario.java
A src/com/mostc/pftt/scenario/WinCacheU_OnlyFileCacheScenario.java
A src/com/mostc/pftt/scenario/WinCacheU_OnlyUserCacheScenario.java
diff --git
a/cache/dep/wincache/php_wincache-1.3-5.5-nts-vc11-x86/php_wincache.dll
b/cache/dep/wincache/php_wincache-1.3-5.5-nts-vc11-x86/php_wincache.dll
deleted file mode 100644
index fca436b..0000000
Binary files
a/cache/dep/wincache/php_wincache-1.3-5.5-nts-vc11-x86/php_wincache.dll and
/dev/null differ
diff --git a/cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.dll
b/cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.dll
new file mode 100644
index 0000000..19b3260
Binary files /dev/null and
b/cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.dll differ
diff --git a/cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.pdb
b/cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.pdb
new file mode 100644
index 0000000..45ccb72
Binary files /dev/null and
b/cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.pdb differ
diff --git a/cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.dll
b/cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.dll
new file mode 100644
index 0000000..fdac56e
Binary files /dev/null and
b/cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.dll differ
diff --git a/cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.pdb
b/cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.pdb
new file mode 100644
index 0000000..d81b998
Binary files /dev/null and
b/cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.pdb differ
diff --git
a/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll
b/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll
new file mode 100644
index 0000000..93c6788
Binary files /dev/null and
b/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll
differ
diff --git
a/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb
b/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb
new file mode 100644
index 0000000..32fbed1
Binary files /dev/null and
b/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.pdb
differ
diff --git a/conf/wincacheu.groovy b/conf/wincacheu.groovy
deleted file mode 100644
index 733f427..0000000
--- a/conf/wincacheu.groovy
+++ /dev/null
@@ -1,8 +0,0 @@
-
-def describe() {
- "Enables Wincache User Cache (can use this with Opcache) to cache files
and objects to accelerate PHP applications"
-}
-
-def scenarios() {
- new WinCacheUScenario()
-}
diff --git a/conf/wincacheu_file_and_user.groovy
b/conf/wincacheu_file_and_user.groovy
new file mode 100644
index 0000000..e9336c7
--- /dev/null
+++ b/conf/wincacheu_file_and_user.groovy
@@ -0,0 +1,8 @@
+
+def describe() {
+ "Enables Wincache User Cache (can use this with Opcache) to cache files
and user objects to accelerate PHP applications"
+}
+
+def scenarios() {
+ new WinCacheU_FileAndUserCacheScenario()
+}
diff --git a/conf/wincacheu_only_file.groovy b/conf/wincacheu_only_file.groovy
new file mode 100644
index 0000000..efe9ad3
--- /dev/null
+++ b/conf/wincacheu_only_file.groovy
@@ -0,0 +1,8 @@
+
+def describe() {
+ "Enables Wincache User Cache (can use this with Opcache) to cache only
files (not user objects)"
+}
+
+def scenarios() {
+ new WinCacheU_OnlyFileCacheScenario()
+}
diff --git a/conf/wincacheu_only_user.groovy b/conf/wincacheu_only_user.groovy
new file mode 100644
index 0000000..ee3a7a9
--- /dev/null
+++ b/conf/wincacheu_only_user.groovy
@@ -0,0 +1,8 @@
+
+def describe() {
+ "Enables Wincache User Cache (can use this with Opcache) to cache User
Objects only (not files)"
+}
+
+def scenarios() {
+ new WinCacheU_OnlyUserCacheScenario()
+}
diff --git a/src/com/mostc/pftt/scenario/WinCacheUScenario.java
b/src/com/mostc/pftt/scenario/WinCacheUScenario.java
index 86338e0..d84ef48 100644
--- a/src/com/mostc/pftt/scenario/WinCacheUScenario.java
+++ b/src/com/mostc/pftt/scenario/WinCacheUScenario.java
@@ -1,6 +1,8 @@
package com.mostc.pftt.scenario;
+import com.github.mattficken.Overridable;
import com.mostc.pftt.host.Host;
+import com.mostc.pftt.model.core.EBuildBranch;
import com.mostc.pftt.model.core.PhpBuild;
import com.mostc.pftt.model.core.PhpIni;
import com.mostc.pftt.results.ConsoleManager;
@@ -14,27 +16,66 @@ import com.mostc.pftt.results.ConsoleManager;
// TODO http://us.php.net/manual/en/wincache.stats.php
// TODO mediawiki support
-public class WinCacheUScenario extends UserCacheScenario {
+// TODO windebug integration - wincache includes the .PDB symbol file
+public abstract class WinCacheUScenario extends UserCacheScenario {
+ @Overridable
+ protected String getDllPath55Plus(Host host) {
+ return
host.getPfttDir()+"/cache/dep/wincache/wincache-1.3.4.1-dev-5.5-nts-vc11-x86/php_wincache.dll";
+ }
+ @Overridable
+ protected String getDllPath54(Host host) {
+ return
host.getPfttDir()+"/cache/dep/wincache/wincache-1.3.4-5.4-nts-vc9-x86/php_wincache.dll";
+ }
+ @Overridable
+ protected String getDllPath53(Host host) {
+ return
host.getPfttDir()+"/cache/dep/wincache/wincache-1.3.4-5.3-nts-vc9-x86/php_wincache.dll";
+ }
+
// @see http://us.php.net/manual/en/wincache.configuration.php
+ boolean first = true;
@Override
public IScenarioSetup setup(ConsoleManager cm, Host host, PhpBuild
build, PhpIni ini) {
- // TODO temp
- try {
-
host.copy("C:/php-sdk/PFTT/current/cache/dep/wincache/php_wincache-1.3-5.5-nts-vc11-x86/php_wincache.dll",
build.getDefaultExtensionDir()+"/php_wincache.dll");
- } catch ( Exception ex ) {
- ex.printStackTrace();
+ if (!host.isWindows() || !build.isNTS(host))
return SETUP_FAILED;
+
+ // TODO temp
+ if (first) {
+ String dll_path;
+ EBuildBranch branch;
+ try {
+ branch = build.getVersionBranch(cm, host);
+ } catch ( Exception ex ) {
+ ex.printStackTrace();
+ return SETUP_FAILED;
+ }
+ switch(branch) {
+ case PHP_5_3:
+ dll_path = getDllPath53(host);
+ break;
+ case PHP_5_4:
+ dll_path = getDllPath54(host);
+ break;
+ default:
+ dll_path = getDllPath55Plus(host);
+ break;
+ }
+ // install wincache
+ try {
+ host.copy(dll_path,
build.getDefaultExtensionDir()+"/php_wincache.dll");
+ } catch ( Exception ex ) {
+ ex.printStackTrace();
+ return SETUP_FAILED;
+ }
+ first = false;
}
+ // enable wincache
ini.putMulti(PhpIni.EXTENSION, "php_wincache.dll");
- //
ini.putSingle("wincache.enablecli", "1");
- // enable file caching
- ini.putSingle("wincache.fcenabled", "1");
- // enable user caching
- ini.putSingle("wincache.ucenabled", "1");
+
+ configure(ini);
// DISABLE opcode caching (required to use wincacheu with
opcache scenarios)
ini.putSingle("wincache.ocenabled", "0");
@@ -42,17 +83,14 @@ public class WinCacheUScenario extends UserCacheScenario {
return SETUP_SUCCESS;
}
+ protected abstract void configure(PhpIni ini);
+
@Override
public boolean isSupported(ConsoleManager cm, Host host, PhpBuild
build, ScenarioSet scenario_set) {
// don't run WinCache on Apache-ModPHP (Apache CGI probably ok)
//
- // not sure if its supported on scenarios other than CLI or IIS
(so allow it)
- return !scenario_set.contains(ApacheModPHPScenario.class);
- }
-
- @Override
- public String getName() {
- return "WinCacheU";
+ // not sure if its supported on scenarios other than CLI or IIS
(or builtin-web?)
+ return host.isWindows() && build.isNTS(host) &&
!scenario_set.contains(ApacheModPHPScenario.class);
}
@Override
diff --git
a/src/com/mostc/pftt/scenario/WinCacheU_FileAndUserCacheScenario.java
b/src/com/mostc/pftt/scenario/WinCacheU_FileAndUserCacheScenario.java
new file mode 100644
index 0000000..72718a8
--- /dev/null
+++ b/src/com/mostc/pftt/scenario/WinCacheU_FileAndUserCacheScenario.java
@@ -0,0 +1,20 @@
+package com.mostc.pftt.scenario;
+
+import com.mostc.pftt.model.core.PhpIni;
+
+public class WinCacheU_FileAndUserCacheScenario extends WinCacheUScenario {
+
+ @Override
+ protected void configure(PhpIni ini) {
+ // enable file caching
+ ini.putSingle("wincache.fcenabled", "1");
+ // enable user caching
+ ini.putSingle("wincache.ucenabled", "1");
+ }
+
+ @Override
+ public String getName() {
+ return "WinCacheU-File-And-User";
+ }
+
+}
diff --git a/src/com/mostc/pftt/scenario/WinCacheU_OnlyFileCacheScenario.java
b/src/com/mostc/pftt/scenario/WinCacheU_OnlyFileCacheScenario.java
new file mode 100644
index 0000000..09439bf
--- /dev/null
+++ b/src/com/mostc/pftt/scenario/WinCacheU_OnlyFileCacheScenario.java
@@ -0,0 +1,20 @@
+package com.mostc.pftt.scenario;
+
+import com.mostc.pftt.model.core.PhpIni;
+
+public class WinCacheU_OnlyFileCacheScenario extends WinCacheUScenario {
+
+ @Override
+ protected void configure(PhpIni ini) {
+ // enable file caching
+ ini.putSingle("wincache.fcenabled", "1");
+ // disable user caching
+ ini.putSingle("wincache.ucenabled", "0");
+ }
+
+ @Override
+ public String getName() {
+ return "WinCacheU-Only-File";
+ }
+
+}
diff --git a/src/com/mostc/pftt/scenario/WinCacheU_OnlyUserCacheScenario.java
b/src/com/mostc/pftt/scenario/WinCacheU_OnlyUserCacheScenario.java
new file mode 100644
index 0000000..11e0caa
--- /dev/null
+++ b/src/com/mostc/pftt/scenario/WinCacheU_OnlyUserCacheScenario.java
@@ -0,0 +1,20 @@
+package com.mostc.pftt.scenario;
+
+import com.mostc.pftt.model.core.PhpIni;
+
+public class WinCacheU_OnlyUserCacheScenario extends WinCacheUScenario {
+
+ @Override
+ protected void configure(PhpIni ini) {
+ // disable file caching
+ ini.putSingle("wincache.fcenabled", "0");
+ // enable user caching
+ ini.putSingle("wincache.ucenabled", "1");
+ }
+
+ @Override
+ public String getName() {
+ return "WinCacheU-Only-User";
+ }
+
+}
--
PHP Quality Assurance Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php