Commit: 76a90f042e1269952e16c95ff2049af2b226aa95 Author: Matt Ficken <v-maf...@microsoft.com> Wed, 19 Jun 2013 14:35:28 -0700 Parents: 3da8c38e0a6c93d4b79beefb94856fb38c7d23d6 Branches: master
Link: http://git.php.net/?p=pftt2.git;a=commitdiff;h=76a90f042e1269952e16c95ff2049af2b226aa95 Log: fix fatal_error_webphar and `cn` name with slash bugs Former-commit-id: 62a8d37e1522a18aed43dcd9deffc7ccaa3347f7 Changed paths: M src/com/mostc/pftt/model/core/PhptSourceTestPack.java Diff: diff --git a/src/com/mostc/pftt/model/core/PhptSourceTestPack.java b/src/com/mostc/pftt/model/core/PhptSourceTestPack.java index d0443d4..17d9936 100644 --- a/src/com/mostc/pftt/model/core/PhptSourceTestPack.java +++ b/src/com/mostc/pftt/model/core/PhptSourceTestPack.java @@ -71,6 +71,12 @@ public class PhptSourceTestPack implements SourceTestPack<PhptActiveTestPack, Ph } /** cleans up this test-pack from previous runs of PFTT or run-test.php that were interrupted + * or that otherwise failed to cleanup after themselves (deleting temporary directories, etc...) + * + * This is important. Otherwise tests that create temporary directories, etc... but fail to delete + * them (can happen because of several reasons), can cause future test runs to fail if the + * test pack is run in place (its faster to cleanup than to copy the test pack, which is only really + * needed for remote file system scenarios). * */ @Override @@ -103,11 +109,89 @@ public class PhptSourceTestPack implements SourceTestPack<PhptActiveTestPack, Ph host.deleteIfExists(test_pack+"/tests/security/globtest2"); host.deleteIfExists(test_pack+"/ext/zip/tests/51353_unpack"); + // clean out these files from the test-pack so they don't have to be stored or copied (to other hosts), etc... + // (when installing test-pack on another host, it should just copy all files so its identical, less variability. + // also this improves performance for the installation process) host.deleteFileExtension(test_pack, ".skip.php"); host.deleteFileExtension(test_pack, ".cmd"); host.deleteFileExtension(test_pack, ".sh"); // don't delete .php (specifically run-test.php) in root of test-pack (user may want it later) - host.deleteFileExtension(test_pack+"/ext", ".php"); + host.deleteFileExtension(test_pack+"/ext/bcmath", ".php"); + host.deleteFileExtension(test_pack+"/ext/bz2", ".php"); + host.deleteFileExtension(test_pack+"/ext/calendar", ".php"); + host.deleteFileExtension(test_pack+"/ext/com_dotnet", ".php"); + host.deleteFileExtension(test_pack+"/ext/ctype", ".php"); + host.deleteFileExtension(test_pack+"/ext/curl", ".php"); + host.deleteFileExtension(test_pack+"/ext/date", ".php"); + host.deleteFileExtension(test_pack+"/ext/dba", ".php"); + host.deleteFileExtension(test_pack+"/ext/dom", ".php"); + host.deleteFileExtension(test_pack+"/ext/enchant", ".php"); + host.deleteFileExtension(test_pack+"/ext/ereg", ".php"); + host.deleteFileExtension(test_pack+"/ext/exif", ".php"); + host.deleteFileExtension(test_pack+"/ext/fileinfo", ".php"); + host.deleteFileExtension(test_pack+"/ext/filter", ".php"); + host.deleteFileExtension(test_pack+"/ext/ftp", ".php"); + host.deleteFileExtension(test_pack+"/ext/gd", ".php"); + host.deleteFileExtension(test_pack+"/ext/gettext", ".php"); + host.deleteFileExtension(test_pack+"/ext/gmp", ".php"); + host.deleteFileExtension(test_pack+"/ext/hash", ".php"); + host.deleteFileExtension(test_pack+"/ext/iconv", ".php"); + host.deleteFileExtension(test_pack+"/ext/imap", ".php"); + host.deleteFileExtension(test_pack+"/ext/interbase", ".php"); + host.deleteFileExtension(test_pack+"/ext/intl", ".php"); + host.deleteFileExtension(test_pack+"/ext/json", ".php"); + host.deleteFileExtension(test_pack+"/ext/ldap", ".php"); + host.deleteFileExtension(test_pack+"/ext/libxml", ".php"); + host.deleteFileExtension(test_pack+"/ext/mbstring", ".php"); + host.deleteFileExtension(test_pack+"/ext/mcrypt", ".php"); + host.deleteFileExtension(test_pack+"/ext/mysql", ".php"); + host.deleteFileExtension(test_pack+"/ext/mysqli", ".php"); + host.deleteFileExtension(test_pack+"/ext/oci8", ".php"); + host.deleteFileExtension(test_pack+"/ext/odbc", ".php"); + host.deleteFileExtension(test_pack+"/ext/opcache", ".php"); + host.deleteFileExtension(test_pack+"/ext/openssl", ".php"); + host.deleteFileExtension(test_pack+"/ext/pcntl", ".php"); + host.deleteFileExtension(test_pack+"/ext/pcre", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo_dblib", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo_firebird", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo_mysql", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo_oci", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo_odbc", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo_pgsql", ".php"); + host.deleteFileExtension(test_pack+"/ext/pdo_sqlite", ".php"); + host.deleteFileExtension(test_pack+"/ext/pgsql", ".php"); + // CRITICAL: don't delete .php inside phar. it uses those files for tests (especially in ext/phar/tests/files/) + // @see ext/phar/tests/fatal_error_web_phar + //host.deleteFileExtension(test_pack+"/ext/phar", ".php"); + host.deleteFileExtension(test_pack+"/ext/posix", ".php"); + host.deleteFileExtension(test_pack+"/ext/pspell", ".php"); + host.deleteFileExtension(test_pack+"/ext/readline", ".php"); + host.deleteFileExtension(test_pack+"/ext/reflection", ".php"); + host.deleteFileExtension(test_pack+"/ext/session", ".php"); + host.deleteFileExtension(test_pack+"/ext/shmop", ".php"); + host.deleteFileExtension(test_pack+"/ext/simplexml", ".php"); + host.deleteFileExtension(test_pack+"/ext/skeleton", ".php"); + host.deleteFileExtension(test_pack+"/ext/snmp", ".php"); + host.deleteFileExtension(test_pack+"/ext/soap", ".php"); + host.deleteFileExtension(test_pack+"/ext/sockets", ".php"); + host.deleteFileExtension(test_pack+"/ext/spl", ".php"); + host.deleteFileExtension(test_pack+"/ext/sqlite3", ".php"); + host.deleteFileExtension(test_pack+"/ext/standard", ".php"); + host.deleteFileExtension(test_pack+"/ext/sybase_ct", ".php"); + host.deleteFileExtension(test_pack+"/ext/sysvmsg", ".php"); + host.deleteFileExtension(test_pack+"/ext/sysvsem", ".php"); + host.deleteFileExtension(test_pack+"/ext/sysvshm", ".php"); + host.deleteFileExtension(test_pack+"/ext/tidy", ".php"); + host.deleteFileExtension(test_pack+"/ext/tokenizer", ".php"); + host.deleteFileExtension(test_pack+"/ext/wddx", ".php"); + host.deleteFileExtension(test_pack+"/ext/xml", ".php"); + host.deleteFileExtension(test_pack+"/ext/xmlreader", ".php"); + host.deleteFileExtension(test_pack+"/ext/xmlrpc", ".php"); + host.deleteFileExtension(test_pack+"/ext/xmlwriter", ".php"); + host.deleteFileExtension(test_pack+"/ext/xsl", ".php"); + host.deleteFileExtension(test_pack+"/ext/zip", ".php"); + host.deleteFileExtension(test_pack+"/ext/zlib", ".php"); host.deleteFileExtension(test_pack+"/tests", ".php"); host.deleteFileExtension(test_pack+"/zend", ".php"); host.deleteFileExtension(test_pack+"/sapi", ".php"); @@ -130,6 +214,14 @@ public class PhptSourceTestPack implements SourceTestPack<PhptActiveTestPack, Ph } // + // normalize name fragments + if (names.size()>0){ + ArrayList<String> normal_names = new ArrayList<String>(names.size()); + for ( String name : names ) + normal_names.add(PhptTestCase.normalizeTestCaseName(name)); + names = normal_names; + } + // TODO should only return test cases matching names, but load and cache all of them // (if no names, return all test cases) LinkedList<PhptTestCase> redirect_targets = new LinkedList<PhptTestCase>(); @@ -221,7 +313,7 @@ public class PhptSourceTestPack implements SourceTestPack<PhptActiveTestPack, Ph if (names!=null) { boolean match = false; for(String name: names) { - if (f.getPath().toLowerCase().contains(name)) { + if (PhptTestCase.normalizeTestCaseName(f.getPath()).contains(name)) { match = true; break; }