Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Enhance stress test to show the number of ok/error results for the workload iterations. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a74726457a89fffc1dd65c910c01dd74 |
User & Date: | mistachkin 2012-10-13 07:16:48.744 |
Context
2012-10-13
| ||
08:00 | Remove a (now superfluous) file cleanup call in the stress test. check-in: d0d74f027d user: mistachkin tags: trunk | |
07:16 | Enhance stress test to show the number of ok/error results for the workload iterations. check-in: a74726457a user: mistachkin tags: trunk | |
06:25 | Merge thread abort protection and several other changes to trunk. check-in: 722904a344 user: mistachkin tags: trunk | |
Changes
Changes to Tests/stress.eagle.
︙ | ︙ | |||
27 28 29 30 31 32 33 | shutdownSQLite $test_channel ############################################################################### runTest {test stress-1.1 {multithreaded stress testing} -setup { unset -nocomplain result thread index workload noWorkload srcDb db \ fileName compiled options count times logFileName logListener \ | | > | 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 | shutdownSQLite $test_channel ############################################################################### runTest {test stress-1.1 {multithreaded stress testing} -setup { unset -nocomplain result thread index workload noWorkload srcDb db \ fileName compiled options count times logFileName logListener \ connection indicators iterations ############################################################################# proc expectedError { error } { return [expr {[regexp -- {\sno such table: t1\s} $error] || \ [regexp -- {\sdatabase is locked\s} $error]}] } ############################################################################# proc showTest { indicator } { tputs $::test_channel $indicator append ::indicators $indicator after [expr {int(rand() * 1000 + $::count(2))}] } ############################################################################# proc failTest { error } { set level [expr {[info level] - 1}] |
︙ | ︙ | |||
704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 | $thread($index(2)) $index(1) } } unset -nocomplain thread } tputs $test_channel \n foreach index(0) [lsort -integer [array names times]] { set times(length) [llength $times($index(0))] if {$times(length) > 0} then { tputs $test_channel [appendArgs \ "---- average time for workload (" $index(0) ") is about " \ [expr int(([join $times($index(0)) +])/$times(length)/1000.0)] \ " milliseconds\n"] } else { tputs $test_channel [appendArgs \ "---- no times for workload (" $index(0) ")\n"] } } set result [sql execute -execute scalar $srcDb "PRAGMA integrity_check;"] if {$result eq "ok"} then { tputs $test_channel "---- integrity check ok (srcDb)\n" } else { error [appendArgs "integrity check failed (srcDb): " $result] } set result [sql execute -execute scalar $db "PRAGMA integrity_check;"] if {$result eq "ok"} then { tputs $test_channel "---- integrity check ok (db)\n" } else { error [appendArgs "integrity check failed (db): " $result] | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 | $thread($index(2)) $index(1) } } unset -nocomplain thread } ############################################################################# foreach index(0) [split $indicators ""] { # # NOTE: See if this workload iteration raised an error. If so, the # indicator letter will be in lower case; otherwise, it will # be in upper case. # set index(1) [string is upper -strict $index(0)] set index(2) [expr {[string ordinal $index(0) 0] - \ [string ordinal [expr {$index(1) ? "A" : "a"}] 0] + 1}] set index(3) [expr {$index(1) ? "ok" : "error"}] if {![info exists iterations($index(2),$index(3))]} then { set iterations($index(2),$index(3)) 0 } incr iterations($index(2),$index(3)) } ############################################################################# # # NOTE: Advance output to the next line due to the workload iteration # progress indicators. # tputs $test_channel \n ############################################################################# foreach index(0) [lsort -integer [array names times]] { set times(length) [llength $times($index(0))] if {$times(length) > 0} then { tputs $test_channel [appendArgs \ "---- average time for workload (" $index(0) ") is about " \ [expr int(([join $times($index(0)) +])/$times(length)/1000.0)] \ " milliseconds\n"] } else { tputs $test_channel [appendArgs \ "---- no times for workload (" $index(0) ")\n"] } } ############################################################################# foreach index(0) [lsort -integer [array names workload]] { if {[info exists iterations($index(0),ok)]} then { tputs $test_channel [appendArgs \ "---- workload (" $index(0) ") had " \ $iterations($index(0),ok) \ " iterations that returned \"ok\"\n"] } else { tputs $test_channel [appendArgs \ "---- workload (" $index(0) \ ") had no iterations that returned \"ok\"\n"] } if {[info exists iterations($index(0),error)]} then { tputs $test_channel [appendArgs \ "---- workload (" $index(0) ") had " \ $iterations($index(0),error) \ " iterations that returned \"error\"\n"] } else { tputs $test_channel [appendArgs \ "---- workload (" $index(0) \ ") had no iterations that returned \"error\"\n"] } } ############################################################################# set result [sql execute -execute scalar $srcDb "PRAGMA integrity_check;"] if {$result eq "ok"} then { tputs $test_channel "---- integrity check ok (srcDb)\n" } else { error [appendArgs "integrity check failed (srcDb): " $result] } ############################################################################# set result [sql execute -execute scalar $db "PRAGMA integrity_check;"] if {$result eq "ok"} then { tputs $test_channel "---- integrity check ok (db)\n" } else { error [appendArgs "integrity check failed (db): " $result] |
︙ | ︙ | |||
759 760 761 762 763 764 765 | cleanupLogging $logFileName rename cleanupLogging "" rename setupLogging "" unset -nocomplain result thread index workload noWorkload srcDb db \ fileName compiled options count times logFileName logListener \ | | | 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 | cleanupLogging $logFileName rename cleanupLogging "" rename setupLogging "" unset -nocomplain result thread index workload noWorkload srcDb db \ fileName compiled options count times logFileName logListener \ connection indicators iterations } -constraints \ {eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result {}} ############################################################################### runSQLiteTestEpilogue runTestEpilogue |