[wp-trac] [WordPress Trac] #35249: Unit tests should pass
WordPress Trac
noreply at wordpress.org
Wed Dec 30 14:02:30 UTC 2015
#35249: Unit tests should pass
------------------------------+------------------------------
Reporter: jrf | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Build/Test Tools | Version:
Severity: normal | Resolution:
Keywords: | Focuses:
------------------------------+------------------------------
Comment (by jrf):
@dossy
> I suppose the question is whether or not it's a good idea to have the
default character set on a database set to utf8mb4 - do all of the text
columns really need to use that character set? Or, if we're going to say
"it's 2015, we should be able to shove utf8mb4 in any text column" then we
probably should be defining our database schema to use more conservative
prefix indexes on text columns that aren't FULLTEXT indexes.
I think the *real* question is: does WP want to be compatible with all
possible configurations out there ? So far in my experience, the answer to
this has always been "Yes".
If so, IMHO, it's not an issue of the test failing, but of WP failing to
deal correctly with the possibility that there are databases with
utf8mb4-like collations out there.
> I'm curious, how did your test database get its default character set
changed to utf8mb4 anyway? That's definitely unusual, otherwise these
tests would have failed for more people ...
I'm not sure.
> It would be dirty, but we could force the column's character set in
tests/phpunit/tests/dbdelta.php for the sake of the test:
> Maybe just adding a check to the setUpBeforeClass() that checks the
character_set_database (using `SHOW CHARACTER SET LIKE 'name'`'s Maxlen
value ...
I don't think fixing the test is the way to go.
What about this: if the `DB_CHARSET` constant is set to `utf-8`, in the
WP_INSTALL routine - before adding any tables -, check the DB charset
with:
{{{
USE `database_name`
SELECT @@character_set_database, @@collation_database
}}}
If the charset is not `utf8`, run:
{{{
ALTER DATABASE `database_name` CHARACTER SET `utf8` COLLATE
`utf8_general_ci`
}}}
That would prevent the issue altogether without causing issues for people
who have the DB_CHARSET set to something other than `utf8`.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/35249#comment:20>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list