Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2020-11-10 17:15:03 +0300
committerGitHub <noreply@github.com>2020-11-10 17:15:03 +0300
commitf23c2162ad2d2883f08cc88c600a7d2ed4bd8a93 (patch)
treed8bcdf4ad04525f62f8ad5a43d5b9ba6cc698a08 /tests/lib/DB
parent10aa22dd45c10b7d7729f648dc8e65efb0d937ec (diff)
parent8027dcbc6f6b1653f5ebcf04b1862ac1e1f51d32 (diff)
Merge pull request #23993 from nextcloud/bugfix/noid/close-cursors
Don't leave cursors open
Diffstat (limited to 'tests/lib/DB')
-rw-r--r--tests/lib/DB/ConnectionTest.php4
-rw-r--r--tests/lib/DB/LegacyDBTest.php28
-rw-r--r--tests/lib/DB/QueryBuilder/ExpressionBuilderDBTest.php10
-rw-r--r--tests/lib/DB/QueryBuilder/FunctionBuilderTest.php70
4 files changed, 92 insertions, 20 deletions
diff --git a/tests/lib/DB/ConnectionTest.php b/tests/lib/DB/ConnectionTest.php
index c8b2b7ee13e..be84cb81cb3 100644
--- a/tests/lib/DB/ConnectionTest.php
+++ b/tests/lib/DB/ConnectionTest.php
@@ -157,7 +157,7 @@ class ConnectionTest extends \Test\TestCase {
$this->assertEquals('bar', $this->getTextValueByIntergerField(1));
}
-
+
public function testSetValuesOverWritePreconditionFailed() {
$this->expectException(\OCP\PreConditionNotMetException::class);
@@ -335,7 +335,7 @@ class ConnectionTest extends \Test\TestCase {
$this->assertEquals(0, $result);
}
-
+
public function testUniqueConstraintViolating() {
$this->expectException(\Doctrine\DBAL\Exception\UniqueConstraintViolationException::class);
diff --git a/tests/lib/DB/LegacyDBTest.php b/tests/lib/DB/LegacyDBTest.php
index cf4c746a4dd..d4913cbe6f5 100644
--- a/tests/lib/DB/LegacyDBTest.php
+++ b/tests/lib/DB/LegacyDBTest.php
@@ -89,6 +89,8 @@ class LegacyDBTest extends \Test\TestCase {
$this->assertTrue((bool)$result);
$row = $result->fetchRow();
$this->assertFalse($row);
+ $result->closeCursor();
+
$query = OC_DB::prepare('INSERT INTO `*PREFIX*'.$this->table2.'` (`fullname`,`uri`) VALUES (?,?)');
$result = $query->execute(['fullname test', 'uri_1']);
$this->assertEquals(1, $result);
@@ -100,6 +102,7 @@ class LegacyDBTest extends \Test\TestCase {
$this->assertEquals($row['fullname'], 'fullname test');
$row = $result->fetchRow();
$this->assertFalse((bool)$row); //PDO returns false, MDB2 returns null
+ $result->closeCursor();
}
/**
@@ -112,6 +115,7 @@ class LegacyDBTest extends \Test\TestCase {
$query = OC_DB::prepare('SELECT `fullname`,`uri` FROM `*PREFIX*'.$this->table2.'` WHERE `uri` = ?');
$result = $query->execute(['uri_2']);
$this->assertTrue((bool)$result);
+ $result->closeCursor();
}
public function testUNIX_TIMESTAMP() {
@@ -121,6 +125,7 @@ class LegacyDBTest extends \Test\TestCase {
$query = OC_DB::prepare('SELECT `fullname`,`uri` FROM `*PREFIX*'.$this->table2.'` WHERE `uri` = ?');
$result = $query->execute(['uri_3']);
$this->assertTrue((bool)$result);
+ $result->closeCursor();
}
public function testLastInsertId() {
@@ -143,7 +148,12 @@ class LegacyDBTest extends \Test\TestCase {
$result = $query->execute([$expected, 'uri_1', 'This is a vCard']);
$this->assertEquals(1, $result);
- $actual = OC_DB::prepare("SELECT `fullname` FROM `$table`")->execute()->fetchOne();
+ $query = OC_DB::prepare("SELECT `fullname` FROM `$table`");
+
+ $result = $query->execute();
+ $actual = $result->fetchOne();
+ $result->closeCursor();
+
$this->assertSame($expected, $actual);
}
@@ -162,6 +172,7 @@ class LegacyDBTest extends \Test\TestCase {
$result = $query->execute();
$this->assertTrue((bool)$result);
$row = $result->fetchRow();
+ $result->closeCursor();
$this->assertArrayHasKey($rowname, $row);
$this->assertEquals($expect, $row[$rowname]);
$query = OC_DB::prepare('DELETE FROM `' . $table . '`');
@@ -227,14 +238,17 @@ class LegacyDBTest extends \Test\TestCase {
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` LIKE ?");
$result = $query->execute(['foobar']);
$this->assertCount(0, $result->fetchAll());
+ $result->closeCursor();
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` ILIKE ?");
$result = $query->execute(['foobar']);
$this->assertCount(1, $result->fetchAll());
+ $result->closeCursor();
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` ILIKE ?");
$result = $query->execute(['foo']);
$this->assertCount(0, $result->fetchAll());
+ $result->closeCursor();
}
public function testILIKEWildcard() {
@@ -246,26 +260,32 @@ class LegacyDBTest extends \Test\TestCase {
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` LIKE ?");
$result = $query->execute(['%bar']);
$this->assertCount(0, $result->fetchAll());
+ $result->closeCursor();
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` LIKE ?");
$result = $query->execute(['foo%']);
$this->assertCount(0, $result->fetchAll());
+ $result->closeCursor();
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` LIKE ?");
$result = $query->execute(['%ba%']);
$this->assertCount(0, $result->fetchAll());
+ $result->closeCursor();
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` ILIKE ?");
$result = $query->execute(['%bar']);
$this->assertCount(1, $result->fetchAll());
+ $result->closeCursor();
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` ILIKE ?");
$result = $query->execute(['foo%']);
$this->assertCount(1, $result->fetchAll());
+ $result->closeCursor();
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `fullname` ILIKE ?");
$result = $query->execute(['%ba%']);
$this->assertCount(1, $result->fetchAll());
+ $result->closeCursor();
}
/**
@@ -282,7 +302,11 @@ class LegacyDBTest extends \Test\TestCase {
$result = $query->execute([$expected]);
$this->assertEquals(1, $result);
- $actual = OC_DB::prepare("SELECT `textfield` FROM `$table`")->execute()->fetchOne();
+ $query = OC_DB::prepare("SELECT `textfield` FROM `$table`");
+
+ $result = $query->execute();
+ $actual = $result->fetchOne();
+ $result->closeCursor();
$this->assertSame($expected, $actual);
}
diff --git a/tests/lib/DB/QueryBuilder/ExpressionBuilderDBTest.php b/tests/lib/DB/QueryBuilder/ExpressionBuilderDBTest.php
index 8e0ce2fe934..8fd86a638fe 100644
--- a/tests/lib/DB/QueryBuilder/ExpressionBuilderDBTest.php
+++ b/tests/lib/DB/QueryBuilder/ExpressionBuilderDBTest.php
@@ -67,7 +67,10 @@ class ExpressionBuilderDBTest extends TestCase {
->from('users')
->where($query->expr()->like($query->createNamedParameter($param1), $query->createNamedParameter($param2)));
- $this->assertEquals($match, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals($match, $column);
}
public function ilikeProvider() {
@@ -101,6 +104,9 @@ class ExpressionBuilderDBTest extends TestCase {
->from('users')
->where($query->expr()->iLike($query->createNamedParameter($param1), $query->createNamedParameter($param2)));
- $this->assertEquals($match, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals($match, $column);
}
}
diff --git a/tests/lib/DB/QueryBuilder/FunctionBuilderTest.php b/tests/lib/DB/QueryBuilder/FunctionBuilderTest.php
index 3d9baf35b1c..fad991bfa90 100644
--- a/tests/lib/DB/QueryBuilder/FunctionBuilderTest.php
+++ b/tests/lib/DB/QueryBuilder/FunctionBuilderTest.php
@@ -48,7 +48,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals('foobar', $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals('foobar', $column);
}
public function testMd5() {
@@ -58,7 +61,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals(md5('foobar'), $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(md5('foobar'), $column);
}
public function testSubstring() {
@@ -68,7 +74,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals('oo', $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals('oo', $column);
}
public function testSubstringNoLength() {
@@ -78,7 +87,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals('oobar', $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals('oobar', $column);
}
public function testLower() {
@@ -88,7 +100,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals('foobar', $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals('foobar', $column);
}
public function testAdd() {
@@ -98,7 +113,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals(3, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(3, $column);
}
public function testSubtract() {
@@ -108,7 +126,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals(1, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(1, $column);
}
public function testCount() {
@@ -118,7 +139,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertGreaterThan(1, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $column = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertGreaterThan(1, $column);
}
private function setUpMinMax($value) {
@@ -151,7 +175,10 @@ class FunctionBuilderTest extends TestCase {
->where($query->expr()->eq('appid', $query->createNamedParameter('minmax')))
->setMaxResults(1);
- $this->assertEquals(null, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $row = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(null, $row);
}
public function testMinEmpty() {
@@ -164,7 +191,10 @@ class FunctionBuilderTest extends TestCase {
->where($query->expr()->eq('appid', $query->createNamedParameter('minmax')))
->setMaxResults(1);
- $this->assertEquals(null, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $row = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(null, $row);
}
public function testMax() {
@@ -180,7 +210,10 @@ class FunctionBuilderTest extends TestCase {
->where($query->expr()->eq('appid', $query->createNamedParameter('minmax')))
->setMaxResults(1);
- $this->assertEquals(20, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $row = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(20, $row);
}
public function testMin() {
@@ -196,7 +229,10 @@ class FunctionBuilderTest extends TestCase {
->where($query->expr()->eq('appid', $query->createNamedParameter('minmax')))
->setMaxResults(1);
- $this->assertEquals(10, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $row = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(10, $row);
}
public function testGreatest() {
@@ -206,7 +242,10 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals(2, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $row = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(2, $row);
}
public function testLeast() {
@@ -216,6 +255,9 @@ class FunctionBuilderTest extends TestCase {
$query->from('appconfig')
->setMaxResults(1);
- $this->assertEquals(1, $query->execute()->fetchColumn());
+ $result = $query->execute();
+ $row = $result->fetchColumn();
+ $result->closeCursor();
+ $this->assertEquals(1, $row);
}
}