[Seaside] Timeouts when trying to use Albatross unit testing

Matthias Berth matthias.berth at googlemail.com
Tue Feb 26 14:30:04 UTC 2008


Hello,


I have installed Albatross [1] and the prerequisites. However, when I
try to run the example unit test APierTest that comes with it, I get
timeout errors like the one attached below. It happens in
ABrowser>>receiveOrTimeout which is sent from setUp:

  ATestCase>>setUp
	| handler |
	handler := ARequestHandler default reset; yourself.
	AComponentWrapper initializeWith: self subjectApplication for: self.
	
	browser := handler browser
		applicationUrl: 'http://localhost:9090/seaside/albatross'
		driverUrl: 'http://localhost:9090/seaside/driver'.
	
	browser timeout: 10.
	browser open.
	browser timeout: 5.
	browser receiveOrTimeout.



I see the Pier web page appear in my web browser. I am running Squeak
3.9 under Windows, with Albatross-al.211 and Seaside2.8a1-mb.465
(Sept. 2007).

Any hints on how to get this working, or on how to isolate the problem
would be greatly appreciated :-)

Cheers

Matthias



[1] http://www.squeaksource.com/Albatross.html

*********
VM: Win32 - a SmalltalkImage
Image: Squeak3.9 [latest update: #7067]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true


ABrowser(Object)>>error:
	Receiver: an ABrowser
	Arguments and temporary variables:
		aString: 	'Timed out receiving reply'
	Receiver's instance variables:
		inQueue: 	a SharedQueue
		outQueue: 	a SharedQueue
		applicationUrl: 	'http://localhost:9090/seaside/albatross'
		driverUrl: 	'http://localhost:9090/seaside/driver'
		resultType: 	nil

ABrowser>>receiveOrTimeout
	Receiver: an ABrowser
	Arguments and temporary variables:
		proc: 	a Process in [] in BlockContext>>newProcess {[self value.
Processor term...etc...
		result: 	nil
		sem: 	a Semaphore()
		typedResult: 	nil
	Receiver's instance variables:
		inQueue: 	a SharedQueue
		outQueue: 	a SharedQueue
		applicationUrl: 	'http://localhost:9090/seaside/albatross'
		driverUrl: 	'http://localhost:9090/seaside/driver'
		resultType: 	nil

APierTest(ATestCase)>>setUp
	Receiver: APierTest>>#testEditPage {testing}
	Arguments and temporary variables:
		handler: 	an ARequestHandler named: 'driver'
	Receiver's instance variables:
		testSelector: 	#testEditPage
		browser: 	an ABrowser
		testComponent: 	nil

[] in APierTest(TestCase)>>runCase {[self setUp.  self performTest]}
	Arguments and temporary variables:


--- The full stack ---
ABrowser(Object)>>error:
ABrowser>>receiveOrTimeout
APierTest(ATestCase)>>setUp
[] in APierTest(TestCase)>>runCase {[self setUp.  self performTest]}
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BlockContext>>ensure:
APierTest(TestCase)>>runCase
[] in APierTest(TestCase)>>debug {[(self class selector: testSelector) runCase]}
BlockContext>>on:do:
[] in APierTest(TestCase)>>debug {[[(self class selector:
testSelector) runCase]   on: Error   do: [:ex | Unha...]}
BlockContext>>ensure:
APierTest(TestCase)>>debug
[] in TestRunner>>debugSuite: {[:each | each debug]}
Set>>do:
[] in TestRunner>>basicRunSuite:do: {[aTestSuite name isEmptyOrNil
ifTrue: [aTestSuite tests do: aBlock]   ifFa...]}
BlockContext>>ensure:
TestRunner>>basicRunSuite:do:
TestRunner>>debugSuite:
TestRunner>>debug:
TestRunner>>errorSelected:
PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
PluggableListMorphPlus(PluggableListMorph)>>mouseUp:
PluggableListMorphPlus(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableListMorphPlus(Morph)>>handleEvent:
PluggableListMorphPlus(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
ActiveEvent := anEvent.  result := focusHolder     han...]}
[] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
BlockContext>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h
processEvents.  capturingGesture := capturingGest...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor
yield.  false] whileFalse.  nil]}
[] in BlockContext>>newProcess {[self value.  Processor terminateActive]}


More information about the seaside mailing list