File: bdb_sql.test

package info (click to toggle)
db5.3 5.3.28%2Bdfsg2-9
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 158,620 kB
  • sloc: ansic: 448,573; java: 111,824; tcl: 80,544; sh: 44,264; cs: 33,697; cpp: 21,600; perl: 14,557; xml: 10,799; makefile: 4,028; javascript: 1,998; yacc: 1,003; awk: 965; sql: 801; erlang: 342; python: 216; php: 24; asm: 14
file content (583 lines) | stat: -rw-r--r-- 9,516 bytes parent folder | download | duplicates (8)
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
#
#    May you do good and not evil.
#    May you find forgiveness for yourself and forgive others.
#    May you share freely, never taking more than you give.
#
#***********************************************************************
# This file runs all tests relevant to Berkeley DB.
# It is based on test/quick.test
#
# $Id$

proc lshift {lvar} {
  upvar $lvar l
  set ret [lindex $l 0]
  set l [lrange $l 1 end]
  return $ret
}
while {[set arg [lshift argv]] != ""} {
  switch -- $arg {
    -sharedpagercache {
      sqlite3_enable_shared_cache 1
    }
    -soak {
       set SOAKTEST 1
    }
    -start {
       set STARTAT "[lshift argv]*"
    }
    default {
      set argv [linsert $argv 0 $arg]
      break
    }
  }
}

set testdir [file dirname $argv0]
source $testdir/tester.tcl
rename finish_test really_finish_test
proc finish_test {} {
  catch {db close}
  show_memstats
}

# Could be relevant but not sure.
set MAYBE {
  analyze.test
  autovacuum_ioerr2.test
  autovacuum.test
  avtrans.test
  bind.test
  bindxfer.test
  conflict.test
  corrupt2.test
  corrupt3.test
  corrupt4.test
  corrupt5.test
  corrupt6.test
  corrupt7.test
  corrupt8.test
  corrupt9.test
  corruptA.test
  corruptB.test
  corruptC.test
  corruptD.test
  corrupt.test
  diskfull.test
  eval.test
  exclusive2.test
  exclusive.test
  filectrl.test
  fuzz2.test
  fuzz3.test
  fuzz_common.tcl
  fuzz_malloc.test
  fuzz.test
  incrvacuum2.test
  incrvacuum_ioerr.test
  incrvacuum.test
  journal1.test, # PRAGMA journal mode. I guess it should be off in DB?
  jrnlmode2.test
  jrnlmode3.test
  jrnlmode.test
  misc1.test
  misc2.test
  misc3.test
  misc4.test
  misc5.test
  misc6.test
  misc7.test
  permutations.test
  pragma2.test, # Probably want part of the pragma tests.
  pragma.test
  savepoint2.test
  savepoint3.test
  savepoint4.test
  savepoint5.test
  savepoint6.test
  savepoint.test
  varint.test
}
# Should pass, but test functionality that is outside that changed by 
# Berkeley DB.
set IRRELEVANT {
  attach.test
  attach2.test
  attach3.test
  attachmalloc.test
  auth.test
  auth2.test
  auth3.test
  capi2.test
  capi3b.test
  capi3c.test
  capi3d.test
  capi3.test
  crash2.test, # These crash tests use simulated IO failure in orig btree.
  crash3.test
  crash4.test
  crash5.test
  crash6.test
  crash7.test
  crash8.test
  crash.test
  crashtest1.c
  enc2.test
  enc3.test
  enc.test
  exec.test
  fts1a.test, # fts == full text search
  fts1b.test
  fts1c.test
  fts1d.test
  fts1e.test
  fts1f.test
  fts1i.test
  fts1j.test
  fts1k.test
  fts1l.test
  fts1m.test
  fts1n.test
  fts1o.test
  fts1porter.test
  fts2a.test
  fts2b.test
  fts2c.test
  fts2d.test
  fts2e.test
  fts2f.test
  fts2g.test
  fts2h.test
  fts2i.test
  fts2j.test
  fts2k.test
  fts2l.test
  fts2m.test
  fts2n.test
  fts2o.test
  fts2p.test
  fts2q.test
  fts2r.test
  fts2.test
  fts2token.test
  fts3aa.test
  fts3ab.test
  fts3ac.test
  fts3ad.test
  fts3ae.test
  fts3af.test
  fts3ag.test
  fts3ah.test
  fts3ai.test
  fts3aj.test
  fts3ak.test
  fts3al.test
  fts3am.test
  fts3an.test
  fts3ao.test
  fts3atoken.test
  fts3b.test
  fts3c.test
  fts3d.test
  fts3e.test
  fts3expr2.test
  fts3expr.test
  fts3near.test
  fts3.test
  hook.test
  icu.test, # international character sets.
  io.test
  ioerr2.test
  ioerr3.test
  ioerr4.test
  ioerr5.test
  ioerr.test
  join2.test
  join3.test
  join4.test
  join5.test
  join.test
  keyword1.test
  laststmtchanges.test
  loadext2.test
  loadext.test
  lock2.test
  lock3.test
  lock4.test
  lock5.test
  lock6.test
  lock.test
  main.test
  malloc3.test
  malloc4.test
  malloc5.test
  malloc6.test
  malloc7.test
  malloc8.test
  malloc9.test
  mallocAll.test
  mallocA.test
  mallocB.test
  malloc_common.tcl
  mallocC.test
  mallocD.test
  mallocE.test
  mallocF.test
  mallocG.test
  mallocH.test
  mallocI.test
  mallocJ.test
  mallocK.test
  malloc.test
  misuse.test
  mutex1.test
  mutex2.test
  notify1.test
  notify2.test
  openv2.test
  pageropt.test
  pcache2.test
  pcache.test
  printf.test
  progress.test
  quote.test
  randexpr1.tcl
  randexpr1.test
  safety.test
  shortread1.test
  sidedelete.test
  softheap1.test
  speed1p.explain
  speed1p.test
  speed1.test
  speed2.test
  speed3.test
  speed4p.explain
  speed4p.test
  speed4.test
  tableapi.test
  tclsqlite.test
  tkt1435.test
  tkt1443.test
  tkt1444.test
  tkt1449.test
  tkt1473.test
  tkt1501.test
  tkt1512.test
  tkt1514.test
  tkt1536.test
  tkt1537.test
  tkt1567.test
  tkt1644.test
  tkt1667.test
  tkt1873.test
  tkt2141.test
  tkt2192.test
  tkt2213.test
  tkt2251.test
  tkt2285.test
  tkt2332.test
  tkt2339.test
  tkt2391.test
  tkt2409.test
  tkt2450.test
  tkt2565.test
  tkt2640.test
  tkt2643.test
  tkt2686.test
  tkt2767.test
  tkt2817.test
  tkt2820.test
  tkt2822.test
  tkt2832.test
  tkt2854.test
  tkt2920.test
  tkt2927.test
  tkt2942.test
  tkt3080.test
  tkt3093.test
  tkt3121.test
  tkt3201.test
  tkt3292.test
  tkt3298.test
  tkt3334.test
  tkt3346.test
  tkt3357.test
  tkt3419.test
  tkt3424.test
  tkt3442.test
  tkt3457.test
  tkt3461.test
  tkt3472.test
  tkt3493.test
  tkt3508.test
  tkt3522.test
  tkt3527.test
  tkt3541.test
  tkt3554.test
  tkt3581.test
  tkt35xx.test
  tkt3630.test
  tkt3718.test
  tkt3731.test
  tkt3757.test
  tkt3761.test
  tkt3762.test
  tkt3773.test
  tkt3791.test
  tkt3793.test
  tkt3810.test
  tkt3824.test
  tkt3832.test
  tkt3838.test
  tkt3841.test
  tkt3871.test
  tkt3879.test
  tkt3911.test
  tkt3918.test
  tkt3922.test
  tkt3929.test
  tkt3935.test
  tkt3992.test
  tkt3997.test
  tokenize.test
  trace.test
  vacuum2.test
  vacuum3.test
  vacuum.test
}
set EXCLUDE {
  all.test
  backup2.test
  backup_ioerr.test
  backup_malloc.test
  backup.test
  filefmt.test
  quick.test
  soak.test
  veryquick.test
}

if {[sqlite3 -has-codec]} {
  # lappend EXCLUDE \
  #  conflict.test
}


# Files to include in the test.  If this list is empty then everything
# that is not in the EXCLUDE list is run.
#
set INCLUDE {
  aggerror.test
  alter.test
  alter3.test
  alter4.test
  altermalloc.test
  async.test
  async2.test
  async3.test
  async4.test
  async5.test
  autoinc.test
  badutf.test
  backup.test
  backup2.test
  backup_malloc.test
  bdb_deadlock.test
  bdb_exclusive.test
  bdb_inmem_memleak.test
  bdb_logsize.test
  bdb_multi_proc.test
  bdb_mvcc.test
  bdb_persistent_pragma.test
  bdb_replication.test
  bdb_sequence.test
  between.test
  bigrow.test
  bitvec.test
  blob.test
  boundary1.tcl
  boundary1.test
  boundary2.tcl
  boundary2.test
  boundary3.tcl
  boundary3.test
  boundary4.tcl
  boundary4.test
  cast.test
  check.test
  collate1.test
  collate2.test
  collate3.test
  collate4.test
  collate5.test
  collate6.test
  collate7.test
  collate8.test
  collate9.test
  collateA.test
  colmeta.test
  colname.test
  count.test
  createtab.test
  cse.test
  date.test
  default.test
  delete2.test
  delete3.test
  delete.test
  descidx1.test
  descidx2.test
  descidx3.test
  distinctagg.test
  expr.test
  fkey1.test
  func.test
  in.test
  in2.test
  in3.test
  in4.test
  incrblob2.test
  incrblob_err.test
  incrblob.test
  index2.test
  index3.test
  indexedby.test
  index.test
  insert2.test
  insert3.test
  insert4.test
  insert5.test
  insert.test
  interrupt.test
  intpkey.test
  lastinsert.test
  like2.test
  like.test
  limit.test
  lookaside.test
  manydb.test
  memdb.test
  minmax2.test
  minmax3.test
  minmax.test
  nan.test
  notnull.test
  null.test
  pagesize.test
  ptrchng.test
  rdonly.test
  reindex.test
  rollback.test
  rowhash.test
  rowid.test
  rtree.test
  schema2.test
  schema.test
  select1.test
  select2.test
  select3.test
  select4.test
  select5.test
  select6.test
  select7.test
  select8.test
  select9.test
  selectA.test
  selectB.test
  selectC.test
  server1.test
  shared2.test
  shared3.test
  shared4.test
  shared6.test
  shared7.test
  sort.test
  sqllimits1.test
  subquery.test
  subselect.test
  substr.test
  table.test
  tempdb.test
  temptable.test
  temptrigger.test
  thread001.test
  thread002.test
  thread003.test
  thread004.test
  thread005.test
  thread1.test
  thread2.test
  thread_common.tcl
  threadtest1.c
  threadtest2.c
  trans2.test
  trans3.test
  trans.test
  trigger1.test
  trigger2.test
  trigger3.test
  trigger4.test
  trigger5.test
  trigger6.test
  trigger7.test
  trigger8.test
  trigger9.test
  triggerA.test
  triggerB.test
  types2.test
  types3.test
  types.test
  unique.test
  update.test
  utf16align.test
  view.test
  vtab1.test
  vtab2.test
  vtab3.test
  vtab4.test
  vtab5.test
  vtab6.test
  vtab7.test
  vtab8.test
  vtab9.test
  vtab_alter.test
  vtabA.test
  vtabB.test
  vtabC.test
  vtabD.test
  vtab_err.test
  vtab_shared.test
  make-where7.tcl
  where2.test
  where3.test
  where4.test
  where5.test
  where6.test
  where7.test
  where8m.test
  where8.test
  where9.test
  whereA.test
  wherelimit.test
  where.test
  zeroblob.test
}

foreach testfile [lsort -dictionary [glob $testdir/*.test]] {
  set tail [file tail $testfile]
  if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue
  if {[info exists STARTAT] && [string match $STARTAT $tail]} {unset STARTAT}
  if {[info exists STARTAT]} continue
  source $testfile
  catch {db close}
  if {$sqlite_open_file_count>0} {
    puts "$tail did not close all files: $sqlite_open_file_count"
    incr nErr
    lappend ::failList $tail
    set sqlite_open_file_count 0
  }
}

set sqlite_open_file_count 0
really_finish_test