Page MenuHomePhabricator

D10621.diff
No OneTemporary

D10621.diff

diff --git a/src/__tests__/PhabricatorInfrastructureTestCase.php b/src/__tests__/PhabricatorInfrastructureTestCase.php
--- a/src/__tests__/PhabricatorInfrastructureTestCase.php
+++ b/src/__tests__/PhabricatorInfrastructureTestCase.php
@@ -50,69 +50,20 @@
'In test cases, all applications should default to installed.');
}
- public function testMySQLAgreesWithUsAboutBMP() {
- // Build a string with every BMP character in it, then insert it into MySQL
- // and read it back. We expect to get the same string out that we put in,
- // demonstrating that strings which pass our BMP checks are also valid in
- // MySQL and no silent data truncation will occur.
-
- $buf = '';
-
- for ($ii = 0x01; $ii <= 0x7F; $ii++) {
- $buf .= chr($ii);
- }
-
- for ($ii = 0xC2; $ii <= 0xDF; $ii++) {
- for ($jj = 0x80; $jj <= 0xBF; $jj++) {
- $buf .= chr($ii).chr($jj);
- }
- }
-
- // NOTE: This is \xE0\xA0\xZZ.
- for ($ii = 0xE0; $ii <= 0xE0; $ii++) {
- for ($jj = 0xA0; $jj <= 0xBF; $jj++) {
- for ($kk = 0x80; $kk <= 0xBF; $kk++) {
- $buf .= chr($ii).chr($jj).chr($kk);
- }
- }
- }
-
- // NOTE: This is \xE1\xZZ\xZZ through \xEF\xZZ\xZZ.
- for ($ii = 0xE1; $ii <= 0xEF; $ii++) {
- for ($jj = 0x80; $jj <= 0xBF; $jj++) {
- for ($kk = 0x80; $kk <= 0xBF; $kk++) {
- $buf .= chr($ii).chr($jj).chr($kk);
- }
- }
- }
-
- $this->assertEqual(194431, strlen($buf));
- $this->assertTrue(phutil_is_utf8_with_only_bmp_characters($buf));
-
- $write = id(new HarbormasterScratchTable())
- ->setData('all.utf8.bmp')
- ->setBigData($buf)
- ->save();
-
- $read = id(new HarbormasterScratchTable())->load($write->getID());
-
- $this->assertEqual($buf, $read->getBigData());
- }
-
- public function testRejectMySQLBMPQueries() {
+ public function testRejectMySQLNonUTF8Queries() {
$table = new HarbormasterScratchTable();
$conn_r = $table->establishConnection('w');
$snowman = "\xE2\x98\x83";
- $gclef = "\xF0\x9D\x84\x9E";
+ $invalid = "\xE6\x9D";
qsprintf($conn_r, 'SELECT %B', $snowman);
qsprintf($conn_r, 'SELECT %s', $snowman);
- qsprintf($conn_r, 'SELECT %B', $gclef);
+ qsprintf($conn_r, 'SELECT %B', $invalid);
$caught = null;
try {
- qsprintf($conn_r, 'SELECT %s', $gclef);
+ qsprintf($conn_r, 'SELECT %s', $invalid);
} catch (AphrontCharacterSetQueryException $ex) {
$caught = $ex;
}

File Metadata

Mime Type
text/plain
Expires
Mar 14 2025, 3:45 AM (4 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7644089
Default Alt Text
D10621.diff (2 KB)

Event Timeline