Skip to content

Commit 1d88c21

Browse files
committed
Fix tests for concurrent connection wrapper
1 parent baa9723 commit 1d88c21

File tree

3 files changed

+29
-20
lines changed

3 files changed

+29
-20
lines changed

SQLiter/src/commonMain/kotlin/co/touchlab/sqliter/concurrency/ConcurrentDatabaseConnection.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class ConcurrentDatabaseConnection(private val delegateConnection:DatabaseConnec
6666

6767
}
6868

69-
inner class ConcurrentStatement(private val delegateStatement:Statement):Statement{
69+
inner class ConcurrentStatement(internal val delegateStatement:Statement):Statement{
7070
override fun execute() = accessLock.withLock { delegateStatement.execute() }
7171

7272
override fun executeInsert(): Long = accessLock.withLock { delegateStatement.executeInsert() }

SQLiter/src/nativeCommonTest/kotlin/co/touchlab/sqliter/DatabaseConnectionTest.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package co.touchlab.sqliter
1818

1919
import co.touchlab.sqliter.NativeFileContext.deleteDatabase
20+
import co.touchlab.sqliter.concurrency.ConcurrentDatabaseConnection
2021
import kotlin.test.*
2122

2223
class DatabaseConnectionTest {
@@ -70,16 +71,23 @@ class DatabaseConnectionTest {
7071
fun sameStatementSqlDifferentInstances() {
7172
basicTestDb(TWO_COL) {
7273
it.withConnection {
74+
println("a 1")
7375
val s1 = it.createStatement("INSERT INTO test(num, str)values(?,?)")
76+
println("a 2")
7477
val s2 = it.createStatement("INSERT INTO test(num, str)values(?,?)")
78+
println("a 3")
7579
assertNotSame(s1, s2)
80+
println("a 4")
7681
assertNotEquals(
77-
(s1 as NativeStatement).nativePointer,
78-
(s2 as NativeStatement).nativePointer
82+
((s1 as ConcurrentDatabaseConnection.ConcurrentStatement).delegateStatement as NativeStatement).nativePointer,
83+
((s2 as ConcurrentDatabaseConnection.ConcurrentStatement).delegateStatement as NativeStatement).nativePointer
7984
)
85+
println("a 5")
8086

8187
s1.finalizeStatement()
88+
println("a 6")
8289
s2.finalizeStatement()
90+
println("a 7")
8391
}
8492
}
8593
}

SQLiter/src/nativeCommonTest/kotlin/co/touchlab/sqliter/DatabaseManagerTest.kt

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package co.touchlab.sqliter
1818

19+
import kotlin.native.concurrent.AtomicInt
1920
import kotlin.test.*
2021

2122
class DatabaseManagerTest : BaseDatabaseTest(){
@@ -36,21 +37,21 @@ class DatabaseManagerTest : BaseDatabaseTest(){
3637

3738
@Test
3839
fun createUpdateCalled(){
39-
var createCalled = 0
40-
var updateCalled = 0
40+
val createCalled = AtomicInt(0)
41+
var updateCalled = AtomicInt(0)
4142

4243
val config1 = DatabaseConfiguration(
4344
name = TEST_DB_NAME,
4445
version = 1,
4546
create = { db ->
4647
db.withStatement(TWO_COL) {
47-
createCalled++
48+
createCalled.increment()
4849
println("createCalled $createCalled")
4950
execute()
5051
}
5152
},
5253
upgrade = { _, _, _ ->
53-
updateCalled++
54+
updateCalled.increment()
5455
println("updateCalled $updateCalled")
5556
}
5657
)
@@ -59,30 +60,30 @@ class DatabaseManagerTest : BaseDatabaseTest(){
5960

6061
val db1 = createDatabaseManager(config1)
6162

62-
assertEquals(0, createCalled)
63+
assertEquals(0, createCalled.value)
6364
db1.withConnection { }
64-
assertEquals(1, createCalled)
65-
assertEquals(0, updateCalled)
65+
assertEquals(1, createCalled.value)
66+
assertEquals(0, updateCalled.value)
6667
db1.withConnection { }
67-
assertEquals(1, createCalled)
68+
assertEquals(1, createCalled.value)
6869

6970
val db2 = createDatabaseManager(config2)
7071

71-
assertEquals(0, updateCalled)
72+
assertEquals(0, updateCalled.value)
7273
db2.withConnection { }
73-
assertEquals(1, createCalled)
74-
assertEquals(1, updateCalled)
74+
assertEquals(1, createCalled.value)
75+
assertEquals(1, updateCalled.value)
7576

7677
val db3 = createDatabaseManager(config2)
7778

7879
db3.withConnection { }
79-
assertEquals(1, createCalled)
80-
assertEquals(1, updateCalled)
80+
assertEquals(1, createCalled.value)
81+
assertEquals(1, updateCalled.value)
8182
}
8283

8384
@Test
8485
fun downgradeNotAllowed(){
85-
var upgradeCalled = 0
86+
val upgradeCalled = AtomicInt(0)
8687
val config1 = DatabaseConfiguration(
8788
name = TEST_DB_NAME,
8889
version = 1,
@@ -92,14 +93,14 @@ class DatabaseManagerTest : BaseDatabaseTest(){
9293
}
9394
},
9495
upgrade = { _, _, _ ->
95-
upgradeCalled++
96+
upgradeCalled.increment()
9697
}
9798
)
9899

99100
createDatabaseManager(config1).withConnection { }
100-
assertEquals(0, upgradeCalled)
101+
assertEquals(0, upgradeCalled.value)
101102
createDatabaseManager(config1.copy(version = 2)).withConnection { }
102-
assertEquals(1, upgradeCalled)
103+
assertEquals(1, upgradeCalled.value)
103104
assertFails {
104105
createDatabaseManager(config1.copy(version = 1)).withConnection { }
105106
}

0 commit comments

Comments
 (0)