-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathevent_after_closing_test.dart
92 lines (76 loc) · 2.39 KB
/
event_after_closing_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import 'dart:async';
import 'package:postgres/postgres.dart';
import 'package:test/test.dart';
import 'docker.dart';
void _print(x) {
// uncomment to debug locally
// print(x);
}
void main() {
withPostgresServer('event after closing', (server) {
Future<void> createTableAndPopulate(Connection conn) async {
final sw = Stopwatch()..start();
await conn.execute('''
CREATE TABLE IF NOT EXISTS large_table (
id SERIAL PRIMARY KEY,
c1 INTEGER NOT NULL,
c2 INTEGER NOT NULL,
c3 TEXT NOT NULL,
c4 TEXT NOT NULL,
c5 TEXT NOT NULL,
c6 TEXT NOT NULL,
c7 TEXT NOT NULL,
c8 TEXT NOT NULL,
c9 TEXT NOT NULL,
c10 TEXT NOT NULL
)
''');
final numBatches = 20;
final batchSize = 5000;
for (var i = 0; i < numBatches; i++) {
_print('Batch $i of $numBatches');
final values = List.generate(
batchSize,
(i) => [
i,
i * 2,
'value $i',
'value $i',
'value $i',
'value $i',
'value $i',
'value $i',
'value $i',
'value $i',
]);
final allArgs = values.expand((e) => e).toList();
final valuesPart = List.generate(
batchSize,
(i) =>
'(${List.generate(10, (j) => '\$${i * 10 + j + 1}').join(', ')})')
.join(', ');
final stmt =
'INSERT INTO large_table (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) VALUES $valuesPart';
await conn.execute(
stmt,
parameters: allArgs,
);
}
_print('Inserted ${numBatches * batchSize} rows in ${sw.elapsed}');
}
test('issue#398 ssl:disabled', () async {
final conn = await server.newConnection(sslMode: SslMode.disable);
await createTableAndPopulate(conn);
final rows = await conn.execute('SELECT * FROM large_table');
_print('SELECTED ROWS ${rows.length}');
await conn.close();
});
test('issue#398 ssl:require', () async {
final conn = await server.newConnection(sslMode: SslMode.require);
await createTableAndPopulate(conn);
final rows = await conn.execute('SELECT * FROM large_table');
_print('SELECTED ROWS ${rows.length}');
await conn.close();
});
});
}