2009/8/22 Fran�ois Tanguy <francois.tanguy@gmail.com>
Thank you Mariano for your answer.
I think this information deserves to be in "Pharo FAQ".

Thanks Fran�ois for you comment and suggestion, I really appreciate it. However, I am sorry but I am not completely agree. SqueakDBX has nothing to do with Pharo. SqueakDBX is an external package that loads not only in Pharo but also in Squeak, Cuis or whatever. The problem you had is SqueakDBX related, not Pharo. In addition, if you see our website: http://wiki.squeak.org/squeak/6052� in the FAQ you will see that your problem was already there.

In summary, it is not Pharo, but SqueakDBX. And in order to use it, you must read the wiki :)

Perhaps what we can do is to add a link in the Pharo FAQ that says "if you want to use SqueakDBX or GlorpDBX read the following link http://wiki.squeak.org/squeak/6052"

What do you think?

Fran�ois: let me know if it worked for you or how can I help you with it ;)

Best,

Mariano


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


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