Artifact
174e159a1ef8fa9d9c008519b20adac602658e85:
0000: 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ;;==============
0010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 0a 3b 3b 20 53 20 45 20 ========.;; S E
0050: 52 20 56 20 45 20 52 0a 3b 3b 3d 3d 3d 3d 3d 3d R V E R.;;======
0060: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0070: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0080: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
00a0: 0a 0a 3b 3b 20 52 75 6e 20 6c 69 6b 65 20 74 68 ..;; Run like th
00b0: 69 73 3a 0a 3b 3b 0a 3b 3b 20 20 28 63 64 20 2e is:.;;.;; (cd .
00c0: 2e 3b 6d 61 6b 65 20 26 26 20 6d 61 6b 65 20 69 .;make && make i
00d0: 6e 73 74 61 6c 6c 29 20 26 26 20 2e 2f 72 75 6e nstall) && ./run
00e0: 75 6e 69 74 74 65 73 74 2e 73 68 20 73 65 72 76 unittest.sh serv
00f0: 65 72 20 31 3b 28 63 64 20 73 69 6d 70 6c 65 72 er 1;(cd simpler
0100: 75 6e 3b 6d 65 67 61 74 65 73 74 20 2d 73 74 6f un;megatest -sto
0110: 70 2d 73 65 72 76 65 72 20 30 29 0a 0a 28 74 65 p-server 0)..(te
0120: 73 74 20 23 66 20 23 74 20 20 20 20 20 20 20 20 st #f #t
0130: 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 (vector
0140: 3f 20 28 6d 61 6b 65 2d 64 62 72 3a 64 62 73 74 ? (make-dbr:dbst
0150: 72 75 63 74 20 22 2f 74 6d 70 22 29 29 29 0a 0a ruct "/tmp")))..
0160: 28 64 65 66 69 6e 65 20 64 62 73 74 72 75 63 74 (define dbstruct
0170: 20 28 6d 61 6b 65 2d 64 62 72 3a 64 62 73 74 72 (make-dbr:dbstr
0180: 75 63 74 20 22 2f 74 6d 70 22 29 29 0a 0a 28 74 uct "/tmp"))..(t
0190: 65 73 74 20 23 66 20 23 74 20 20 20 20 20 20 20 est #f #t
01a0: 20 20 20 20 20 20 20 20 20 20 28 62 65 67 69 6e (begin
01b0: 20 28 64 62 72 3a 64 62 73 74 72 75 63 74 2d 73 (dbr:dbstruct-s
01c0: 65 74 2d 6d 61 69 6e 21 20 64 62 73 74 72 75 63 et-main! dbstruc
01d0: 74 20 22 62 6c 61 68 22 29 20 23 74 29 29 0a 28 t "blah") #t)).(
01e0: 74 65 73 74 20 23 66 20 22 62 6c 61 68 22 20 20 test #f "blah"
01f0: 20 20 20 20 20 20 20 20 20 20 20 28 64 62 72 3a (dbr:
0200: 64 62 73 74 72 75 63 74 2d 67 65 74 2d 6d 61 69 dbstruct-get-mai
0210: 6e 20 20 64 62 73 74 72 75 63 74 29 29 0a 28 66 n dbstruct)).(f
0220: 6f 72 2d 65 61 63 68 20 0a 20 28 6c 61 6d 62 64 or-each . (lambd
0230: 61 20 28 72 75 6e 2d 69 64 29 0a 20 20 20 28 74 a (run-id). (t
0240: 65 73 74 20 23 66 20 23 74 20 20 20 20 20 20 20 est #f #t
0250: 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f (vecto
0260: 72 3f 20 28 64 62 72 3a 64 62 73 74 72 75 63 74 r? (dbr:dbstruct
0270: 2d 67 65 74 2d 72 75 6e 64 62 2d 72 65 63 20 64 -get-rundb-rec d
0280: 62 73 74 72 75 63 74 20 72 75 6e 2d 69 64 29 29 bstruct run-id))
0290: 29 29 0a 20 28 6c 69 73 74 20 31 20 32 20 33 20 )). (list 1 2 3
02a0: 34 20 35 20 36 20 37 20 38 20 39 20 23 66 29 29 4 5 6 7 8 9 #f))
02b0: 0a 0a 28 74 65 73 74 20 23 66 20 30 20 28 64 62 ..(test #f 0 (db
02c0: 72 3a 64 62 73 74 72 75 63 74 2d 66 69 65 6c 64 r:dbstruct-field
02d0: 2d 6e 61 6d 65 2d 3e 6e 75 6d 20 27 72 75 6e 64 -name->num 'rund
02e0: 62 29 29 0a 28 74 65 73 74 20 23 66 20 31 20 28 b)).(test #f 1 (
02f0: 64 62 72 3a 64 62 73 74 72 75 63 74 2d 66 69 65 dbr:dbstruct-fie
0300: 6c 64 2d 6e 61 6d 65 2d 3e 6e 75 6d 20 27 69 6e ld-name->num 'in
0310: 6d 65 6d 29 29 0a 28 74 65 73 74 20 23 66 20 32 mem)).(test #f 2
0320: 20 28 64 62 72 3a 64 62 73 74 72 75 63 74 2d 66 (dbr:dbstruct-f
0330: 69 65 6c 64 2d 6e 61 6d 65 2d 3e 6e 75 6d 20 27 ield-name->num '
0340: 6d 74 69 6d 65 29 29 0a 0a 28 74 65 73 74 20 23 mtime))..(test #
0350: 66 20 23 66 20 28 64 62 72 3a 64 62 73 74 72 75 f #f (dbr:dbstru
0360: 63 74 2d 67 65 74 2d 72 75 6e 76 65 63 2d 76 61 ct-get-runvec-va
0370: 6c 20 64 62 73 74 72 75 63 74 20 31 20 27 72 75 l dbstruct 1 'ru
0380: 6e 64 62 29 29 0a 28 74 65 73 74 20 23 66 20 23 ndb)).(test #f #
0390: 74 20 28 62 65 67 69 6e 20 28 64 62 72 3a 64 62 t (begin (dbr:db
03a0: 73 74 72 75 63 74 2d 73 65 74 2d 72 75 6e 76 65 struct-set-runve
03b0: 63 2d 76 61 6c 21 20 64 62 73 74 72 75 63 74 20 c-val! dbstruct
03c0: 31 20 27 72 75 6e 64 62 20 22 72 75 6e 64 62 22 1 'rundb "rundb"
03d0: 29 20 23 74 29 29 0a 28 74 65 73 74 20 23 66 20 ) #t)).(test #f
03e0: 22 72 75 6e 64 62 22 20 28 64 62 72 3a 64 62 73 "rundb" (dbr:dbs
03f0: 74 72 75 63 74 2d 67 65 74 2d 72 75 6e 76 65 63 truct-get-runvec
0400: 2d 76 61 6c 20 64 62 73 74 72 75 63 74 20 31 20 -val dbstruct 1
0410: 27 72 75 6e 64 62 29 29 0a 0a 28 66 6f 72 2d 65 'rundb))..(for-e
0420: 61 63 68 0a 20 28 6c 61 6d 62 64 61 20 28 6b 29 ach. (lambda (k)
0430: 0a 20 20 20 28 74 65 73 74 20 23 66 20 23 74 20 . (test #f #t
0440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0450: 28 62 65 67 69 6e 20 28 64 62 72 3a 64 62 73 74 (begin (dbr:dbst
0460: 72 75 63 74 2d 73 65 74 2d 72 75 6e 76 65 63 2d ruct-set-runvec-
0470: 76 61 6c 21 20 64 62 73 74 72 75 63 74 20 31 20 val! dbstruct 1
0480: 6b 20 28 63 6f 6e 63 20 6b 29 29 20 23 74 29 29 k (conc k)) #t))
0490: 0a 20 20 20 28 74 65 73 74 20 23 66 20 28 63 6f . (test #f (co
04a0: 6e 63 20 6b 29 20 20 20 20 20 20 20 20 20 20 20 nc k)
04b0: 28 64 62 72 3a 64 62 73 74 72 75 63 74 2d 67 65 (dbr:dbstruct-ge
04c0: 74 2d 72 75 6e 76 65 63 2d 76 61 6c 20 64 62 73 t-runvec-val dbs
04d0: 74 72 75 63 74 20 31 20 6b 29 29 29 0a 20 27 28 truct 1 k))). '(
04e0: 72 75 6e 64 62 20 69 6e 6d 65 6d 20 6d 74 69 6d rundb inmem mtim
04f0: 65 20 72 74 69 6d 65 20 73 74 69 6d 65 20 69 6e e rtime stime in
0500: 75 73 65 29 29 0a 0a use))..