Thank you Mariano for your answer.
I think this information deserves to be in "Pharo FAQ".

Bye

Fran�ois

Le Aug 21, 2009 � 3:23 PM, Mariano Martinez Peck a �crit :



On Fri, Aug 21, 2009 at 8:16 AM, Fran�ois Tanguy <francois.tanguy@gmail.com> wrote:
Hello,

it may be a noobie question but I tried to execute the GlorpTest and
it failed in one case.

If the DBXDriver is used, the tests failed. (See the stacktrace below)
| tr |
SqueakDatabaseAccessor DefaultDriver: SqueakDBXDriver.
tr := TestRunner new.
ToolBuilder open: tr.
tr categoryAt: (tr categoryList indexOf: 'GlorpTest') put: true;
selectAllClasses; runAll.

But the native driver is used, the tests passed.
| tr |
SqueakDatabaseAccessor DefaultDriver: NativePostgresDriver.
tr := TestRunner new.
ToolBuilder open: tr.
tr categoryAt: (tr categoryList indexOf: 'GlorpTest') put: true;
selectAllClasses; runAll.

I thought the DBXDriver could be used to manage postgresql database,
no ?

Yes, SqueakDBX supports PostgreSQL but also many others backends. But in contrary to the native postgresql driver which is all in smalltalk, SqueakDBX delegates to an external library written in C called OpenDBX.

So, when using SqueakDBX you must install OpenDBX and the client library of your database (the error you had is because SqueakDBX doesn't find OpenDBX in your system). Unfortunately this solution requires a bit more time of configuring than using the native driver but we can use a lot of databases and have better performance.

I suggest you read the link: http://wiki.squeak.org/squeak/6052
And more in deep this link: http://wiki.squeak.org/squeak/6129

For Linux and Windows there are also binaries, but in the case of Mac you must compile.

Finally there is a blog someone write to use PostgreSQL with SqueakDBX in Mac OS:
http://dreamsofascorpion.blogspot.com/2008/05/using-opendbx-with-squeak.html

To avoid noise in Pharo mailing list remember there is our own mailing list here:
http://wiki.squeak.org/squeak/6052

If you have more questions, just ask :)

Best,

Mariano

 


Fran�ois

ps : I am using pharo1.0-10418-BETAweb09.08.2 and I changed the login
information in the correct methods (defaultPostgreSQLLocalLogin and
buildDefaultConnectionArgs).
21 August 2009 11:13:22 am

VM: Mac OS - intel - 1058 - Squeak3.8.1 of '28 Aug 2006' [latest
update: #6747] Squeak VM 4.1.1b2
Image: Pharo1.0beta [Latest update: #10418]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/paco/Desktop/pharo1.0-10418-BETAweb09.08.2
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/paco/Library/Preferences/Squeak/Internet/My Squeak

OpenDBXMacOSX(Object)>>error:
       Receiver: an OpenDBXMacOSX
       Arguments and temporary variables:
               aString:        'Unable to find function address'
       Receiver's instance variables:
an OpenDBXMacOSX

OpenDBXMacOSX(Object)>>externalCallFailed
       Receiver: an OpenDBXMacOSX
       Arguments and temporary variables:
               errCode:        13
       Receiver's instance variables:
an OpenDBXMacOSX

OpenDBXMacOSX(OpenDBXUnix)>>apiInitialize:backend:host:port:
       Receiver: an OpenDBXMacOSX
       Arguments and temporary variables:
               handle:         a WordArray(0)
               backend:        'pgsql'
               host:   '127.0.0.1'
               port:   '5432'
       Receiver's instance variables:
an OpenDBXMacOSX

DBXPostgresPlatform(DBXPlatform)>>createConnection:
       Receiver: a DBXPostgresPlatform
       Arguments and temporary variables:
               aConnection:    a DBXConnection
               err:    nil
               handleArray:    a WordArray(0)
               handle:         nil
       Receiver's instance variables:
a DBXPostgresPlatform

DBXConnection>>connect
       Receiver: a DBXConnection
       Arguments and temporary variables:

       Receiver's instance variables:
               platform:       a DBXPostgresPlatform
               settings:       a DBXConnectionSettings
               handle:         nil
               open:   a ValueHolder
               connected:      a ValueHolder
               result:         nil

SqueakDBXDriver>>connect:
       Receiver: a SqueakDBXDriver
       Arguments and temporary variables:
               aLogin:         a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca',
'127.0.0.1_glorp'...etc...
       Receiver's instance variables:
               connection:     a DBXConnection
               database:       nil

[] in SqueakDatabaseAccessor>>loginIfError:
       Receiver: a SqueakDatabaseAccessor
       Arguments and temporary variables:
<<error during printing>
       Receiver's instance variables:
               connection:     nil
               currentLogin:   a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca',
'127.0.0.1_...etc...
               logging:        nil
               reusePreparedStatements:        nil
               deniedCommands:         nil
               mutex:  a Semaphore()
               dependents:     nil
               isInTransaction:        false
               databaseDriver:         a SqueakDBXDriver

BlockClosure>>on:do:
       Receiver: [closure] in SqueakDatabaseAccessor>>loginIfError:
       Arguments and temporary variables:
               exception:      Error
               handlerAction:  [closure] in
SqueakDatabaseAccessor(DatabaseAccessor)>>login
               handlerActive:  false
       Receiver's instance variables:
               outerContext:   SqueakDatabaseAccessor>>loginIfError:
               startpc:        60
               numArgs:        0

SqueakDatabaseAccessor(DatabaseAccessor)>>execute:ifError:
       Receiver: a SqueakDatabaseAccessor
       Arguments and temporary variables:
               aBlock:         [closure] in SqueakDatabaseAccessor>>loginIfError:
               errorBlock:     [closure] in
SqueakDatabaseAccessor(DatabaseAccessor)>>login
       Receiver's instance variables:
               connection:     nil
               currentLogin:   a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca',
'127.0.0.1_...etc...
               logging:        nil
               reusePreparedStatements:        nil
               deniedCommands:         nil
               mutex:  a Semaphore()
               dependents:     nil
               isInTransaction:        false
               databaseDriver:         a SqueakDBXDriver

SqueakDatabaseAccessor>>loginIfError:
       Receiver: a SqueakDatabaseAccessor
       Arguments and temporary variables:
               aBlock:         [closure] in SqueakDatabaseAccessor(DatabaseAccessor)>>login
       Receiver's instance variables:
               connection:     nil
               currentLogin:   a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca',
'127.0.0.1_...etc...
               logging:        nil
               reusePreparedStatements:        nil
               deniedCommands:         nil
               mutex:  a Semaphore()
               dependents:     nil
               isInTransaction:        false
               databaseDriver:         a SqueakDBXDriver

SqueakDatabaseAccessor(DatabaseAccessor)>>login
       Receiver: a SqueakDatabaseAccessor
       Arguments and temporary variables:

       Receiver's instance variables:
               connection:     nil
               currentLogin:   a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca',
'127.0.0.1_...etc...
               logging:        nil
               reusePreparedStatements:        nil
               deniedCommands:         nil
               mutex:  a Semaphore()
               dependents:     nil
               isInTransaction:        false
               databaseDriver:         a SqueakDBXDriver

GlorpDatabaseLoginResource>>setUp
       Receiver: GlorpDatabaseLoginResource
       Arguments and temporary variables:

       Receiver's instance variables:
               name:   nil
               description:    nil
               accessor:       a SqueakDatabaseAccessor
               login:  a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca',
'127.0.0.1_glorp')...etc...

GlorpDatabaseLoginResource(TestResource)>>initialize
       Receiver: GlorpDatabaseLoginResource
       Arguments and temporary variables:

       Receiver's instance variables:
               name:   nil
               description:    nil
               accessor:       a SqueakDatabaseAccessor
               login:  a Login(a PostgreSQLPlatform, 'postgres', 'vorevoca',
'127.0.0.1_glorp')...etc...

GlorpDatabaseLoginResource class(Behavior)>>new
       Receiver: GlorpDatabaseLoginResource
       Arguments and temporary variables:

       Receiver's instance variables:
               superclass:     TestResource
               methodDict:     a MethodDictionary(#accessor->a CompiledMethod (1052)
#accessor:->a...etc...
               format:         138
               instanceVariables:      #('accessor' 'login')
               organization:   ('accessing' accessor accessor: login login: platform)
('initiali...etc...
               subclasses:     nil
               name:   #GlorpDatabaseLoginResource
               classPool:      a Dictionary(#DefaultLogin->a Login(a
PostgreSQLPlatform, 'postgres'...etc...
               sharedPools:    nil
               environment:    Smalltalk
               category:       #'OpenDBX-Glorp-Core-Test'
               traitComposition:       nil
               localSelectors:         nil
               current:        nil

GlorpDatabaseLoginResource class(TestResource class)>>current
       Receiver: GlorpDatabaseLoginResource
       Arguments and temporary variables:

       Receiver's instance variables:
               superclass:     TestResource
               methodDict:     a MethodDictionary(#accessor->a CompiledMethod (1052)
#accessor:->a...etc...
               format:         138
               instanceVariables:      #('accessor' 'login')
               organization:   ('accessing' accessor accessor: login login: platform)
('initiali...etc...
               subclasses:     nil
               name:   #GlorpDatabaseLoginResource
               classPool:      a Dictionary(#DefaultLogin->a Login(a
PostgreSQLPlatform, 'postgres'...etc...
               sharedPools:    nil
               environment:    Smalltalk
               category:       #'OpenDBX-Glorp-Core-Test'
               traitComposition:       nil
               localSelectors:         nil
               current:        nil

GlorpDemoTablePopulatorResource>>setUp
       Receiver: GlorpDemoTablePopulatorResource
       Arguments and temporary variables:

       Receiver's instance variables:
               name:   nil
               description:    nil
               login:  nil

GlorpDemoTablePopulatorResource(TestResource)>>initialize
       Receiver: GlorpDemoTablePopulatorResource
       Arguments and temporary variables:

       Receiver's instance variables:
               name:   nil
               description:    nil
               login:  nil

GlorpDemoTablePopulatorResource class(Behavior)>>new
       Receiver: GlorpDemoTablePopulatorResource
       Arguments and temporary variables:

       Receiver's instance variables:
               superclass:     TestResource
               methodDict:     a MethodDictionary(#populateStuffTable->a
CompiledMethod (555) #set...etc...
               format:         136
               instanceVariables:      #('login')
               organization:   ('setup' populateStuffTable setUp)
('*glorpTestPostload-override'...etc...
               subclasses:     nil
               name:   #GlorpDemoTablePopulatorResource
               classPool:      a Dictionary(#NeedsSetup->false )
               sharedPools:    nil
               environment:    Smalltalk
               category:       #GlorpTest
               traitComposition:       nil
               localSelectors:         nil
               current:        nil

GlorpDemoTablePopulatorResource class(TestResource class)>>current
       Receiver: GlorpDemoTablePopulatorResource
       Arguments and temporary variables:

       Receiver's instance variables:
               superclass:     TestResource
               methodDict:     a MethodDictionary(#populateStuffTable->a
CompiledMethod (555) #set...etc...
               format:         136
               instanceVariables:      #('login')
               organization:   ('setup' populateStuffTable setUp)
('*glorpTestPostload-override'...etc...
               subclasses:     nil
               name:   #GlorpDemoTablePopulatorResource
               classPool:      a Dictionary(#NeedsSetup->false )
               sharedPools:    nil
               environment:    Smalltalk
               category:       #GlorpTest
               traitComposition:       nil
               localSelectors:         nil
               current:        nil

GlorpSessionResource>>glorpTestsSystem
       Receiver: GlorpSessionResource
       Arguments and temporary variables:

       Receiver's instance variables:
               name:   nil
               description:    nil
               session:        nil

GlorpSessionResource>>setUp
       Receiver: GlorpSessionResource
       Arguments and temporary variables:

       Receiver's instance variables:
               name:   nil
               description:    nil
               session:        nil

GlorpSessionResource(TestResource)>>initialize
       Receiver: GlorpSessionResource
       Arguments and temporary variables:

       Receiver's instance variables:
               name:   nil
               description:    nil
               session:        nil

GlorpSessionResource class(Behavior)>>new
       Receiver: GlorpSessionResource
       Arguments and temporary variables:

       Receiver's instance variables:
               superclass:     TestResource
               methodDict:     a MethodDictionary(#glorpTestsSystem->a CompiledMethod
(1814) #newS...etc...
               format:         136
               instanceVariables:      #('session')
               organization:   ('setup' glorpTestsSystem setUp)
('accessing' newSession session)...etc...
               subclasses:     nil
               name:   #GlorpSessionResource
               classPool:      nil
               sharedPools:    nil
               environment:    Smalltalk
               category:       #GlorpTest
               traitComposition:       nil
               localSelectors:         nil
               current:        nil

GlorpSessionResource class(TestResource class)>>current
       Receiver: GlorpSessionResource
       Arguments and temporary variables:

       Receiver's instance variables:
               superclass:     TestResource
               methodDict:     a MethodDictionary(#glorpTestsSystem->a CompiledMethod
(1814) #newS...etc...
               format:         136
               instanceVariables:      #('session')
               organization:   ('setup' glorpTestsSystem setUp)
('accessing' newSession session)...etc...
               subclasses:     nil
               name:   #GlorpSessionResource
               classPool:      nil
               sharedPools:    nil
               environment:    Smalltalk
               category:       #GlorpTest
               traitComposition:       nil
               localSelectors:         nil
               current:        nil

GlorpSessionResource class(TestResource class)>>isAvailable
       Receiver: GlorpSessionResource
       Arguments and temporary variables:

       Receiver's instance variables:
               superclass:     TestResource
               methodDict:     a MethodDictionary(#glorpTestsSystem->a CompiledMethod
(1814) #newS...etc...
               format:         136
               instanceVariables:      #('session')
               organization:   ('setup' glorpTestsSystem setUp)
('accessing' newSession session)...etc...
               subclasses:     nil
               name:   #GlorpSessionResource
               classPool:      nil
               sharedPools:    nil
               environment:    Smalltalk
               category:       #GlorpTest
               traitComposition:       nil
               localSelectors:         nil
               current:        nil

[] in TestRunner>>basicSetUpSuite:
       Receiver: a TestRunner
       Arguments and temporary variables:
<<error during printing>
       Receiver's instance variables:
               categories:     #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
#'AutomaticMetho...etc...
               categoriesSelected:     a Set(#GlorpTest)
               classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .
GlorpCursor...etc...
               classIndex:     0
               classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest
GlorpManyToM...etc...
               failedList:     #()
               failedSelected:         nil
               errorList:      #()
               errorSelected:  nil
               lastUpdate:     3428305867
               result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,
0 unexpecte...etc...
               previousRun:    nil

Set>>do:
       Receiver: a Set(GlorpSessionResource GlorpDatabaseLoginResource
GlorpDemoTablePopulatorResource)
       Arguments and temporary variables:
               aBlock:         [closure] in TestRunner>>basicSetUpSuite:
               index:  2
               each:   GlorpSessionResource
               indexLimiT:     5
       Receiver's instance variables:
               tally:  3
               array:  {nil . GlorpSessionResource . GlorpDatabaseLoginResource .
GlorpDemoTabl...etc...

TestRunner>>basicSetUpSuite:
       Receiver: a TestRunner
       Arguments and temporary variables:
               aTestSuite:     a TestSuite
       Receiver's instance variables:
               categories:     #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
#'AutomaticMetho...etc...
               categoriesSelected:     a Set(#GlorpTest)
               classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .
GlorpCursor...etc...
               classIndex:     0
               classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest
GlorpManyToM...etc...
               failedList:     #()
               failedSelected:         nil
               errorList:      #()
               errorSelected:  nil
               lastUpdate:     3428305867
               result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,
0 unexpecte...etc...
               previousRun:    nil

TestRunner>>basicRunSuite:do:
       Receiver: a TestRunner
       Arguments and temporary variables:
               aTestSuite:     a TestSuite
               aBlock:         [closure] in TestRunner>>runSuite:
       Receiver's instance variables:
               categories:     #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
#'AutomaticMetho...etc...
               categoriesSelected:     a Set(#GlorpTest)
               classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .
GlorpCursor...etc...
               classIndex:     0
               classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest
GlorpManyToM...etc...
               failedList:     #()
               failedSelected:         nil
               errorList:      #()
               errorSelected:  nil
               lastUpdate:     3428305867
               result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,
0 unexpecte...etc...
               previousRun:    nil

TestRunner>>runSuite:
       Receiver: a TestRunner
       Arguments and temporary variables:
               aTestSuite:     a TestSuite
       Receiver's instance variables:
               categories:     #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
#'AutomaticMetho...etc...
               categoriesSelected:     a Set(#GlorpTest)
               classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .
GlorpCursor...etc...
               classIndex:     0
               classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest
GlorpManyToM...etc...
               failedList:     #()
               failedSelected:         nil
               errorList:      #()
               errorSelected:  nil
               lastUpdate:     3428305867
               result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,
0 unexpecte...etc...
               previousRun:    nil

TestRunner>>runAll
       Receiver: a TestRunner
       Arguments and temporary variables:

       Receiver's instance variables:
               categories:     #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
#'AutomaticMetho...etc...
               categoriesSelected:     a Set(#GlorpTest)
               classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .
GlorpCursor...etc...
               classIndex:     0
               classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest
GlorpManyToM...etc...
               failedList:     #()
               failedSelected:         nil
               errorList:      #()
               errorSelected:  nil
               lastUpdate:     3428305867
               result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,
0 unexpecte...etc...
               previousRun:    nil

UndefinedObject>>DoIt
       Receiver: nil
       Arguments and temporary variables:
               tr:     a TestRunner
       Receiver's instance variables:
nil

Compiler>>evaluate:in:to:notifying:ifFail:logged:
       Receiver: a Compiler
       Arguments and temporary variables:
<<error during printing>
       Receiver's instance variables:
               sourceStream:   a ReadWriteStream '
|tr |
SqueakDatabaseAccessor DefaultDriver: S...etc...
               requestor:      a TextMorphForShoutEditor
               class:  UndefinedObject
               category:       nil
               context:        nil
               parser:         a Parser

[] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
       Receiver: a TextMorphForShoutEditor
       Arguments and temporary variables:
<<error during printing>
       Receiver's instance variables:
               model:  a SHWorkspace
               paragraph:      a MultiNewParagraph
               startBlock:     a CharacterBlock with index 201 and character Character
cr and rect...etc...
               stopBlock:      a CharacterBlock with index 201 and character Character
cr and recta...etc...
               beginTypeInBlock:       nil
               emphasisHere:   an Array(a TextColor code: Color red)
               initialText:    a Text for '
|tr |
tr := TestRunner new.
ToolBuilder open: tr.
tr
...etc...
               selectionShowing:       false
               otherInterval:  (403 to: 402)
               lastParentLocation:     nil
               morph:  a TextMorphForShout(168)
               oldInterval:    (106 to: 105)
               pivotBlock:     a CharacterBlock with index 200 and character Character
cr and rect...etc...
               inBackTo:       false

BlockClosure>>on:do:
       Receiver: [closure] in
TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
       Arguments and temporary variables:
               exception:      OutOfScopeNotification
               handlerAction:  [closure] in
TextMorphForShoutEditor(ParagraphEditor)>>evaluateS...etc...
               handlerActive:  true
       Receiver's instance variables:
               outerContext:
TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
               startpc:        116
               numArgs:        0

TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
       Receiver: a TextMorphForShoutEditor
       Arguments and temporary variables:
               result:         nil
               rcvr:   nil
               ctxt:   nil
       Receiver's instance variables:
               model:  a SHWorkspace
               paragraph:      a MultiNewParagraph
               startBlock:     a CharacterBlock with index 201 and character Character
cr and rect...etc...
               stopBlock:      a CharacterBlock with index 201 and character Character
cr and recta...etc...
               beginTypeInBlock:       nil
               emphasisHere:   an Array(a TextColor code: Color red)
               initialText:    a Text for '
|tr |
tr := TestRunner new.
ToolBuilder open: tr.
tr
...etc...
               selectionShowing:       false
               otherInterval:  (403 to: 402)
               lastParentLocation:     nil
               morph:  a TextMorphForShout(168)
               oldInterval:    (106 to: 105)
               pivotBlock:     a CharacterBlock with index 200 and character Character
cr and rect...etc...
               inBackTo:       false

TextMorphForShoutEditor(ParagraphEditor)>>doIt
       Receiver: a TextMorphForShoutEditor
       Arguments and temporary variables:

       Receiver's instance variables:
               model:  a SHWorkspace
               paragraph:      a MultiNewParagraph
               startBlock:     a CharacterBlock with index 201 and character Character
cr and rect...etc...
               stopBlock:      a CharacterBlock with index 201 and character Character
cr and recta...etc...
               beginTypeInBlock:       nil
               emphasisHere:   an Array(a TextColor code: Color red)
               initialText:    a Text for '
|tr |
tr := TestRunner new.
ToolBuilder open: tr.
tr
...etc...
               selectionShowing:       false
               otherInterval:  (403 to: 402)
               lastParentLocation:     nil
               morph:  a TextMorphForShout(168)
               oldInterval:    (106 to: 105)
               pivotBlock:     a CharacterBlock with index 200 and character Character
cr and rect...etc...
               inBackTo:       false

[] in TextMorphForShoutEditor(ParagraphEditor)>>doIt:
       Receiver: a TextMorphForShoutEditor
       Arguments and temporary variables:
<<error during printing>
       Receiver's instance variables:
               model:  a SHWorkspace
               paragraph:      a MultiNewParagraph
               startBlock:     a CharacterBlock with index 201 and character Character
cr and rect...etc...
               stopBlock:      a CharacterBlock with index 201 and character Character
cr and recta...etc...
               beginTypeInBlock:       nil
               emphasisHere:   an Array(a TextColor code: Color red)
               initialText:    a Text for '
|tr |
tr := TestRunner new.
ToolBuilder open: tr.
tr
...etc...
               selectionShowing:       false
               otherInterval:  (403 to: 402)
               lastParentLocation:     nil
               morph:  a TextMorphForShout(168)
               oldInterval:    (106 to: 105)
               pivotBlock:     a CharacterBlock with index 200 and character Character
cr and rect...etc...
               inBackTo:       false

TextMorphForShoutEditor(ParagraphEditor)>>terminateAndInitializeAround:
       Receiver: a TextMorphForShoutEditor
       Arguments and temporary variables:
               aBlock:         [closure] in TextMorphForShoutEditor(ParagraphEditor)>>doIt:
       Receiver's instance variables:
               model:  a SHWorkspace
               paragraph:      a MultiNewParagraph
               startBlock:     a CharacterBlock with index 201 and character Character
cr and rect...etc...
               stopBlock:      a CharacterBlock with index 201 and character Character
cr and recta...etc...
               beginTypeInBlock:       nil
               emphasisHere:   an Array(a TextColor code: Color red)
               initialText:    a Text for '
|tr |
tr := TestRunner new.
ToolBuilder open: tr.
tr
...etc...
               selectionShowing:       false
               otherInterval:  (403 to: 402)
               lastParentLocation:     nil
               morph:  a TextMorphForShout(168)
               oldInterval:    (106 to: 105)
               pivotBlock:     a CharacterBlock with index 200 and character Character
cr and rect...etc...
               inBackTo:       false


--- The full stack ---
OpenDBXMacOSX(Object)>>error:
OpenDBXMacOSX(Object)>>externalCallFailed
OpenDBXMacOSX(OpenDBXUnix)>>apiInitialize:backend:host:port:
DBXPostgresPlatform(DBXPlatform)>>createConnection:
DBXConnection>>connect
SqueakDBXDriver>>connect:
[] in SqueakDatabaseAccessor>>loginIfError:
BlockClosure>>on:do:
SqueakDatabaseAccessor(DatabaseAccessor)>>execute:ifError:
SqueakDatabaseAccessor>>loginIfError:
SqueakDatabaseAccessor(DatabaseAccessor)>>login
GlorpDatabaseLoginResource>>setUp
GlorpDatabaseLoginResource(TestResource)>>initialize
GlorpDatabaseLoginResource class(Behavior)>>new
GlorpDatabaseLoginResource class(TestResource class)>>current
GlorpDemoTablePopulatorResource>>setUp
GlorpDemoTablePopulatorResource(TestResource)>>initialize
GlorpDemoTablePopulatorResource class(Behavior)>>new
GlorpDemoTablePopulatorResource class(TestResource class)>>current
GlorpSessionResource>>glorpTestsSystem
GlorpSessionResource>>setUp
GlorpSessionResource(TestResource)>>initialize
GlorpSessionResource class(Behavior)>>new
GlorpSessionResource class(TestResource class)>>current
GlorpSessionResource class(TestResource class)>>isAvailable
[] in TestRunner>>basicSetUpSuite:
Set>>do:
TestRunner>>basicSetUpSuite:
TestRunner>>basicRunSuite:do:
TestRunner>>runSuite:
TestRunner>>runAll
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[] in TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
BlockClosure>>on:do:
TextMorphForShoutEditor(ParagraphEditor)>>evaluateSelection
TextMorphForShoutEditor(ParagraphEditor)>>doIt
[] in TextMorphForShoutEditor(ParagraphEditor)>>doIt:
TextMorphForShoutEditor(ParagraphEditor)>>terminateAndInitializeAround:
 - - - - - - - - - - - - - - -
                       - - - - - - - - - - - - - - - - - -
TextMorphForShoutEditor(ParagraphEditor)>>doIt:
TextMorphForShoutEditor(ParagraphEditor)>>dispatchOnKeyEvent:with:
TextMorphForShoutEditor(TextMorphEditor)>>dispatchOnKeyEvent:with:
TextMorphForShoutEditor(ParagraphEditor)>>keystroke:
TextMorphForShoutEditor(TextMorphEditor)>>keystroke:
[] in [] in TextMorphForShout(TextMorph)>>keyStroke:
TextMorphForShout(TextMorph)>>handleInteraction:
TextMorphForShout(TextMorphForEditView)>>handleInteraction:
[] in TextMorphForShout(TextMorph)>>keyStroke:
ECToolSet class>>codeCompletionAround:textMorph:keyStroke:
DEVToolSet class>>codeCompletionAround:textMorph:keyStroke:
ToolSet class>>codeCompletionAround:textMorph:keyStroke:
TextMorphForShout(TextMorph)>>keyStroke:
TextMorphForShout(TextMorphForEditView)>>keyStroke:
TextMorphForShout(TextMorph)>>handleKeystroke:
KeyboardEvent>>sentTo:
TextMorphForShout(Morph)>>handleEvent:
TextMorphForShout(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
[] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendKeyboardEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project