Lively Kernel canvas
* MIT license
*
* Includes enhancements by Scott Trenda
* and Kris Kowal
*
* Accepts a date, a mask, or a date and a mask.
* Returns a formatted version of the given date.]]> 99 ? Math.round(L / 10) : L),
]]> 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs]]> 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
};
return mask.replace(token, function ($0) {
return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
});
};
}();
// Some common format strings
dateFormat.masks = {
"default": ]]>
SqSync-UserStories40true
Savefalsenulltruenull
4)ConflictHandling22true
ImFalleinesKonflitkswerdenlokaleÄnderungenanbetroffendenObjektenverworfenunddieObjektzustaendemitdenvomServersynchronisiert.Abschätzung:1Tagtruetruetrue4truetruetrue
true00.11truetruetruetruetrue
-Konflikt:UngleichheitdererwartetenVersionenvonObjektenimApplyCommandmitdenVersionendertatsaechlichvorhandenenObjekten.-Squeak-ObjektidentitätdesClient-Objektsollerhaltenbleiben-Anm.v.Kunden:"BetroffendeObjektewerdenerneutmitdemServersynchronisiert"truetruetrue5truetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
6.5truefalsenulltrue
actual:falsenulltrue
2truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue6.52
adduserstoryfalsenullnullfalsetruenullnullnull
addtaskfalsenullnullfalsetruenullnullnull
renewfalsenullnullfalsetruenullnullnulltrue
1)DeferringSends16true
Clientcandeferredsendingcommandsindefinitely[Rationale:Weneedtosimulateconflicts]truetruetrue2truetruetrue
true00.11truetruetruetruetrue
Robert[DONE]truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
0.5true
actual:falsenulltrue
1true
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
true0.51
null
null2.4227626539681686null
2)Resetstateofconflictingclient16true
IfaclientreceivesaconflictingApplyCommanditshouldremovealloutgoingApplyCommandsfromitsoutgoingqueueandadoptthestateofitsservercopy.3truetruetruetruetruetrue
true00.11truetruetruetruetrue
Robert[STARTED]truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
actual:falsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
1true
4.5true
true4.51
null-1.8602709204369663null
DummyUserStory22true
-Objekteentfernen-System-Stabilitäterhöhen(konzetriertaufSyAddressbook)-imKonfliktfallnutdieApplyCommandsausderClientoutgoingqueueschmeissendiekonfligierendeObjekteveraendern3truetruetruetruetruetrue
true00.11truetruetruetruetrue
NotesandTeststruetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
0truefalsenulltrue
actual:falsenulltrue
0truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue00
Iteration528
9)ConflictRecognition2.022true
Recognizesimpleconflicts:Anobjectisatthesametimeintwodifferentclients(thatisStory3).Recognize"treeconflicts":GivenobjA,objB.objAreferencesobjB.Client1callsobjA>>x:thatchangesstateofobjB.Client2callsobjB>>x:thatchangesstateofobjB.Recognizethatthatbothoperationsareconflicting.>x: that changes state of objB. Client2 calls objB>>x: that changes state of objB. Recognize that that both operations are conflicting."]]>5truetruetrue>x: that changes state of objB. Client2 calls objB>>x: that changes state of objB. Recognize that that both operations are conflicting."]]>truetruetrue
true00.11truetruetruetruetrue
RelatedtoStory3.MakesureStory3works.truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
8truefalsenulltrue
actual:falsenulltrue
4.5truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue84.5
1)ReviseStory316true
Doessimpleconflictrecognizionwork?Testitwithoneclientandserveranddeferaclientcommandowhilechangingobjectstateonserver.3truetruetruetruetruetrue
true00.11truetruetruetruetrue
Robert[DONE]truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
0.5true
actual:falsenulltrue
0.5true
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
true0.50.5
null2.091934470279015null
2)Recognizetreeconflicts16true
Usemethodwrapperlogictofinddomainobjectsthataremodifiedinthescopeofamethodcall(withoutcreatingApplyCommands!)3truetruetruetruetruetrue
true00.11truetruetruetruetrue
Robert[STARTED]truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
7.5true
actual:falsenulltrue
4true
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
true7.54
null-1.8501782364597241null
3)Getstateofconflictingobjects16true
Refinementoftask2.InsteadofreplacingalldomainobjectswithobjectsfromserveronlyreplacethosethatareinconflictinregardtotheApplyCommandthatcausedtheconflict.3truetruetruetruetruetrue
true00.11truetruetruetruetrue
Whoisresponsible?truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
1.5true
actual:falsenulltrue
0true
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
true1.50
null-1.4678557538995802null
10)ApplyCommands&UIprocess22true
IncommingApplyCommandsareexecutedintheUIprocess.truetruetruetruetruetrue
true00.11truetruetruetruetrue
Addassertionbeforeperform.Currentsynchronizationproblemsduetoraceconditions?TestifcommandsareruninUIprocesssolvesthese(manualtestwithAddressBook?)Expected:5h4truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
2truefalsenulltrue
actual:falsenulltrue
4truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue24
2)Assertion16true
Addassertionbeforeperformfortests.truetruetruetruetruetrue
true00.11truetruetruetruetrue
Stefan[FINISHED]truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
1true
actual:falsenulltrue
3true
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
true13
null-0.31496131198112104null
11)Domainobjectscanbegarbagecollected22true
Whendomainobjectsarenotreferencedanymore(fromdomainitself)theyshouldbegarbagecollected.TheSqSyncframeworkshouldnotpreventthis.1truetruetruetruetruetrue
true00.11truetruetruetruetrue
-Weakrefsfrommetaobjectstodomainobjects?-Commandsaredirectlyreferencingdomainobjects-->aslongastheyexistsobjsarenotgarbagecollected.Whenhistoryisdeletedtheyare.Expected:10h as long as they exists objs are not garbage collected. When history is deleted they are.\n\nExpected: 10h"]]>4truetruetrue as long as they exists objs are not garbage collected. When history is deleted they are.\n\nExpected: 10h"]]>truetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
10truefalsenulltrue
actual:falsenulltrue
3.5truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue103.5
1)Moveexecution16true
ApplyCommandsshouldonlybeexecutedintheUIprocess(onclients)truetruetrue1truetruetrue
true00.11truetruetruetruetrue
Stefan[FINISHED]truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
1true
actual:falsenulltrue
1true
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
true11
null-1.852692228508844null
1)RegObjweakclients16true
HoldonlyweakreferencetoclientobjectintheregisteredObjectifnotrootorontheserver.truetruetrue2truetruetrue
true00.11truetruetruetruetrue
Marceltruetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
4true
actual:falsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
2true
true42
2)Repositorycleanup16true
Removeregisteredobjectsthatpointtonil-clientsfrequently.truetruetrue1truetruetrue
true00.11truetruetruetruetrue
Marceltruetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
1true
actual:falsenulltrue
1true
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
true11
null-2.128935715759115null
null2.064096059911466null
12)OnlygenerateApplyCommandswhennecessary22true
Whenamethodcalldoesnotmodifythestateofdomainobjectsnocommandshouldbecreatedorsendtotheserver.NamenfindenfuerEintrittspunktindenCallstackanderStellewodasersteMaleiDomeanenobjektvorkommt.4truetruetruetruetruetrue
true00.11truetruetruetruetrue
-ACompiledMethodknowsifitsetsainstance/globalvariable(ifnot--usebytecodetofindoutandaddamethodpropertytocompiledmethod)--somehowsimilartoStory9.-Inthescopeofadomainmethodcallwecanusethemethodwrappertofindoutifamethodmodifiesstate.Ifstatewasmodified,generateApplyCommand,ifnotdonothing.Expected:9h5truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
9truefalsenulltrue
actual:falsenulltrue
1truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue91
Authentication/Authorisation22true
Authentication/Authorisationtruetruetruetruetruetrue
true00.11truetruetruetruetrue
-Perconnectionsession?-Percommand?-Securesockets2truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
0truefalsenulltrue
actual:falsenulltrue
0truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue00
SpikeProjectTalk22true
Goal:FindouthowlongittakestoportProjectTalktoSqSynctruetruetruetruetruetrue
true00.11truetruetruetruetrue
NotesandTeststruetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
0truefalsenulltrue
actual:falsenulltrue
0truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue00
1)Implementit16true
Taskdescriptiontruetruetruetruetruetrue
true00.11truetruetruetruetrue
Stefan[FINISHED]truetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
9true
actual:falsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
1true
true91
null2.5560796372306576null
Storiesfromiteration1-420
3)RaceCondition16true
Newlycreatedobjectswillbegarbagecollectedbeforedaddedtothedomaingraphintheclientrepo.Fixthat.2truetruetruetruetruetrue
true00.11truetruetruetruetrue
Marceltruetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
actual:falsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
null
DisconnectfromStoryfalsenulltruenullfalsetruenullnull
5true
0.5true
true50.5
null-1.869033305351379null
SupportforSSL22true
Storydescriptiontruetruetruetruetruetrue
true00.11truetruetruetruetrue
NotesandTeststruetruetruetruetruetrue
true00.11truetruetruetruetrue
20null
expected:falsenulltrue
0truefalsenulltrue
actual:falsenulltrue
0truefalsenulltrue
Xfalsenulltruenullfalsetruenullnull
movefalsenulltruenullfalsetruenullnull
nulltrue00
Wikicontroltruetrue
5.Iteration:TimelineRestzeit:M-6hR-5.5hS-5.5h28.06.2hxMRS-Iterationsplanung28.06.0.5hxR-Wikiupdate29.06.,3.5hxS-S10finished30.06.,1.5hxS-S12finished04.07.,1hxMS-DiscussionaboutStory1107.07.,1hxMRS-Seminarvorbereitung08.07.,1.5hxMRS-Vortrag09.07.,0.5hxM-asynch.feedbackforstory11tocustomer(e-mail)10.07.,0.5hxM-CodeReading12.07.,1hxMR-codereading,smalldiscussionaboutversioning13.07.,3hxM-TLSbugfixed,Story11Task1+2finished14.07.,0.5hxM-Story11Task314.07.,4.5hxR-Story9Task1,Story9Task2started19.07.,4hxS-SSLsupportstartedtruetruefalse19truetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
5.Iterationfalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
w=this.world()UserStoryMorph.listOfStories(w,true)===4)
1truetruefalsetruetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
null280