diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5bcaf3c7..6afb73b67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,5 +14,3 @@ jobs: with: # Turn phpcoverage off because it causes a segfault phpcoverage_force_off: true - # There is a strange behat.yml file in framework that runs behat tests in the admin module - endtoend: false diff --git a/behat.yml b/behat.yml deleted file mode 100644 index f74288345..000000000 --- a/behat.yml +++ /dev/null @@ -1,34 +0,0 @@ -# Run framework behat tests with this command (installed with silverstripe/installer) -# Note that framework behat tests require CMS module -# ========================================================================= # -# vendor/bin/selenium-server-standalone -Dwebdriver.firefox.bin="/Applications/Firefox31.app/Contents/MacOS/firefox-bin" -# vendor/bin/serve --bootstrap-file vendor/silverstripe/framework/tests/behat/serve-bootstrap.php -# vendor/bin/behat @framework -# ========================================================================= # -default: - suites: - framework: - paths: - - "%paths.modules.admin%/tests/behat/features" - contexts: - - SilverStripe\Framework\Tests\Behaviour\FeatureContext - - SilverStripe\Framework\Tests\Behaviour\CmsFormsContext - - SilverStripe\Framework\Tests\Behaviour\CmsUiContext - - SilverStripe\BehatExtension\Context\BasicContext - - SilverStripe\BehatExtension\Context\EmailContext - - SilverStripe\BehatExtension\Context\LoginContext - - - SilverStripe\BehatExtension\Context\FixtureContext: - - "%paths.modules.admin%/tests/behat/features/files/" - - extensions: - SilverStripe\BehatExtension\MinkExtension: - default_session: facebook_web_driver - javascript_session: facebook_web_driver - facebook_web_driver: - browser: chrome - wd_host: "http://127.0.0.1:9515" #chromedriver port - - SilverStripe\BehatExtension\Extension: - screenshot_path: "%paths.base%/artifacts/screenshots" - bootstrap_file: "tests/behat/serve-bootstrap.php" diff --git a/src/Core/CustomMethods.php b/src/Core/CustomMethods.php index 6c25ab214..ee6ea63ef 100644 --- a/src/Core/CustomMethods.php +++ b/src/Core/CustomMethods.php @@ -156,6 +156,9 @@ trait CustomMethods */ protected function getExtraMethodConfig($method) { + if (empty($method)) { + return null; + } // Lazy define methods if (!isset(self::$extra_methods[static::class])) { $this->defineMethods(); diff --git a/tests/php/ORM/DataObjectSchemaGenerationTest.php b/tests/php/ORM/DataObjectSchemaGenerationTest.php index 5822f0c76..ec40ca059 100644 --- a/tests/php/ORM/DataObjectSchemaGenerationTest.php +++ b/tests/php/ORM/DataObjectSchemaGenerationTest.php @@ -8,6 +8,7 @@ use SilverStripe\ORM\DB; use SilverStripe\ORM\FieldType\DBEnum; use SilverStripe\ORM\DataObject; use SilverStripe\Dev\SapphireTest; +use SilverStripe\ORM\Connect\MySQLiConnector; use SilverStripe\ORM\Tests\DataObjectSchemaGenerationTest\SortedObject; use SilverStripe\ORM\Tests\DataObjectSchemaGenerationTest\TestIndexObject; use SilverStripe\ORM\Tests\DataObjectSchemaGenerationTest\TestObject; @@ -67,11 +68,26 @@ class DataObjectSchemaGenerationTest extends SapphireTest ); } + private function isMySQL8(): bool + { + $connector = DB::get_conn()->getConnector(); + if ($connector instanceof MySQLiConnector && + preg_match('#^8\.#', $connector->getVersion()) + ) { + return true; + } + return false; + } + /** * Check that once a schema has been generated, then it doesn't need any more updating */ public function testFieldsDontRerequestChanges() { + // TODO: remove the MySQL8 skip when `int(11)` is no longer the default field type for integers and has been replaced with `int` + if ($this->isMySQL8()) { + $this->markTestSkipped(); + } $schema = DB::get_schema(); $test = $this; DB::quiet(); @@ -126,6 +142,10 @@ class DataObjectSchemaGenerationTest extends SapphireTest */ public function testIndexesDontRerequestChanges() { + // TODO: remove the MySQL8 skip when `int(11)` is no longer the default field type for integers and has been replaced with `int` + if ($this->isMySQL8()) { + $this->markTestSkipped(); + } $schema = DB::get_schema(); $test = $this; DB::quiet(); diff --git a/tests/php/ORM/Utf8/Utf8TestHelper.php b/tests/php/ORM/Utf8/Utf8TestHelper.php index 90716be58..57379b0e8 100644 --- a/tests/php/ORM/Utf8/Utf8TestHelper.php +++ b/tests/php/ORM/Utf8/Utf8TestHelper.php @@ -7,7 +7,10 @@ use SilverStripe\ORM\DB; class Utf8TestHelper implements TestOnly { - private ?string $dbVersion = null; + /** + * @var string|null + */ + private $dbVersion = null; public function getUpdatedUtfCharsetForCurrentDB(string $charset): string {