diff -r 000000000000 -r bde4ae8d615e os/persistentdata/persistentstorage/sql/TEST/testexecute/SQLite/config/Concurrent.ini --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/persistentdata/persistentstorage/sql/TEST/testexecute/SQLite/config/Concurrent.ini Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,302 @@ + +// Concurrency tests. Threads[2-8] wait (semaphore) until they receive a +// signal. Thread1 creates the db and adds a table to it. It then signals the +// other threads and all eight threads write integer, real, and text data +// to the table. +[Thread1] +WaitB0=7 +Delete1=C:\Concurrent.db +ExpectedError1=KErrNotFound +Create2=C:\Concurrent.db +Exec3=Create Table Con( Someint int primary key, Somereal real, Sometext text); +Prepare4=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +// Wake up the other threads, we're doing the next bit concurrently. +SignalA5=7 + +Function6=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=0 +HighCount=64 +CountStep=8 +Multiplier=2.81 +Text=Thread1 +St_Close7= +Close8= +WaitB9=7 +EndBlock10= + +[Thread2] +SignalB0=1 +WaitA1=1 +Open2=C:\Concurrent.db +Prepare3=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +Function4=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=1 +HighCount=65 +CountStep=8 +Multiplier=-1.121 +Text=Thread2 +St_Close5= +Close6= +SignalB7=1 +EndBlock8= + +[Thread3] +SignalB0=1 +WaitA1=1 +Open2=C:\Concurrent.db +Prepare3=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +Function4=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=2 +HighCount=66 +CountStep=8 +Multiplier=4.8e-21 +Text=Thread3 +St_Close5= +Close6= +SignalB7=1 +EndBlock8= + +[Thread4] +SignalB0=1 +WaitA1=1 +Open2=C:\Concurrent.db +Prepare3=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +Function4=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=3 +HighCount=67 +CountStep=8 +Multiplier=3.141592654 +Text=Thread4 +St_Close5= +Close6= +SignalB7=1 +EndBlock8= + +[Thread5] +SignalB0=1 +WaitA1=1 +Open2=C:\Concurrent.db +Prepare3=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +Function4=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=4 +HighCount=68 +CountStep=8 +Multiplier=2.81 +Text=Thread5 +St_Close5= +Close6= +SignalB7=1 +EndBlock8= + +[Thread6] +SignalB0=1 +WaitA1=1 +Open2=C:\Concurrent.db +Prepare3=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +Function4=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=5 +HighCount=69 +CountStep=8 +Multiplier=-1.121 +Text=Thread6 +St_Close5= +Close6= +SignalB7=1 +EndBlock8= + +[Thread7] +SignalB0=1 +WaitA1=1 +Open2=C:\Concurrent.db +Prepare3=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +Function4=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=6 +HighCount=70 +CountStep=8 +Multiplier=4.8e-21 +Text=Thread7 +St_Close5= +Close6= +SignalB7=1 +EndBlock8= + +[Thread8] +SignalB0=1 +WaitA1=1 +Open2=C:\Concurrent.db +Prepare3=insert into Con(Someint, Somereal, Sometext) values(:FInt, :FReal, :FText); +Function4=WriteBigTable +EventuallyExpectedError=KErrNone +LowCount=7 +HighCount=71 +CountStep=8 +Multiplier=3.141592654 +Text=Thread8 +St_Close5= +Close6= +SignalB7=1 +EndBlock8= + +// The following 8 blocks check the content written by the threads above. +// These are entirely independent of each other and therefore do not require +// use of the semaphores. + +[Check1] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread1"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=0 +HighCount=64 +CountStep=8 +Multiplier=2.81 +Text=Thread1 +AtRow5=False +St_Close6= +Close7= +EndBlock8= + +[Check2] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread2"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=1 +HighCount=65 +CountStep=8 +Multiplier=-1.121 +Text=Thread2 +AtRow5=False +St_Close6= +Close7= +EndBlock8= + +[Check3] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread3"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=2 +HighCount=66 +CountStep=8 +Multiplier=4.8e-21 +Text=Thread3 +AtRow5=False +St_Close6= +Close7= +EndBlock8= + +[Check4] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread4"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=3 +HighCount=67 +CountStep=8 +Multiplier=3.141592654 +Text=Thread4 +AtRow5=False +St_Close6= +Close7= +EndBlock8= + +[Check5] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread5"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=4 +HighCount=68 +CountStep=8 +Multiplier=2.81 +Text=Thread5 +AtRow5=False +St_Close6= +Close7= +EndBlock8= + +[Check6] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread6"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=5 +HighCount=69 +CountStep=8 +Multiplier=-1.121 +Text=Thread6 +AtRow5=False +St_Close6= +Close7= +EndBlock8= + +[Check7] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread7"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=6 +HighCount=70 +CountStep=8 +Multiplier=4.8e-21 +Text=Thread7 +AtRow5=False +St_Close6= +Close7= +EndBlock8= + +[Check8] +Open0=C:\Concurrent.db +Prepare1=select * from Con where(Sometext="Thread8"); +Next2=KSqlAtRow +ExpectedError2=KSqlAtRow +NoOperation3= + +Function4=ReadBigTable +EventuallyExpectedError=KErrNone +LowCount=7 +HighCount=71 +CountStep=8 +Multiplier=3.141592654 +Text=Thread8 +AtRow5=False +St_Close6= +Close7= +EndBlock8= +