<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Mariano Martinez Peck</b> <span dir="ltr">&lt;<a href="mailto:marianopeck@gmail.com">marianopeck@gmail.com</a>&gt;</span><br>
Date: Fri, Aug 21, 2009 at 12:23 PM<br>Subject: Re: [Pharo-project] [BUG]OpenDBXMacOSX(Object)&gt;&gt;error:<br>To: <a href="mailto:Pharo-project@lists.gforge.inria.fr">Pharo-project@lists.gforge.inria.fr</a><br><br><br><br>
<br><div class="gmail_quote"><div class="im">On Fri, Aug 21, 2009 at 8:16 AM, François Tanguy <span dir="ltr">&lt;<a href="mailto:francois.tanguy@gmail.com" target="_blank">francois.tanguy@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
it may be a noobie question but I tried to execute the GlorpTest and<br>
it failed in one case.<br>
<br>
If the DBXDriver is used, the tests failed. (See the stacktrace below)<br>
| tr |<br>
SqueakDatabaseAccessor DefaultDriver: SqueakDBXDriver.<br>
tr := TestRunner new.<br>
ToolBuilder open: tr.<br>
tr categoryAt: (tr categoryList indexOf: &#39;GlorpTest&#39;) put: true;<br>
selectAllClasses; runAll.<br>
<br>
But the native driver is used, the tests passed.<br>
| tr |<br>
SqueakDatabaseAccessor DefaultDriver: NativePostgresDriver.<br>
tr := TestRunner new.<br>
ToolBuilder open: tr.<br>
tr categoryAt: (tr categoryList indexOf: &#39;GlorpTest&#39;) put: true;<br>
selectAllClasses; runAll.<br>
<br>
I thought the DBXDriver could be used to manage postgresql database,<br>
no ?</blockquote></div><div><br>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.<br>

<br>So, when using SqueakDBX you must install OpenDBX and the client library of your database (the error you had is because SqueakDBX doesn&#39;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.<br>

<br>I suggest you read the link: <a href="http://wiki.squeak.org/squeak/6052" target="_blank">http://wiki.squeak.org/squeak/6052</a><br>And more in deep this link: <a href="http://wiki.squeak.org/squeak/6129" target="_blank">http://wiki.squeak.org/squeak/6129</a><br>

<br>For Linux and Windows there are also binaries, but in the case of Mac you must compile. <br><br>Finally there is a blog someone write to use PostgreSQL with SqueakDBX in Mac OS:<br><a href="http://dreamsofascorpion.blogspot.com/2008/05/using-opendbx-with-squeak.html" target="_blank">http://dreamsofascorpion.blogspot.com/2008/05/using-opendbx-with-squeak.html</a><br>

<br>To avoid noise in Pharo mailing list remember there is our own mailing list here:<br><a href="http://wiki.squeak.org/squeak/6052" target="_blank">http://wiki.squeak.org/squeak/6052</a><br><br>If you have more questions, just ask :)<br>

<br>Best,<br><font color="#888888"><br>Mariano<br><br> </font></div><div><div></div><div class="h5"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
François<br>
<br>
ps : I am using pharo1.0-10418-BETAweb09.08.2 and I changed the login<br>
information in the correct methods (defaultPostgreSQLLocalLogin and<br>
buildDefaultConnectionArgs).<br>
21 August 2009 11:13:22 am<br>
<br>
VM: Mac OS - intel - 1058 - Squeak3.8.1 of &#39;28 Aug 2006&#39; [latest<br>
update: #6747] Squeak VM 4.1.1b2<br>
Image: Pharo1.0beta [Latest update: #10418]<br>
<br>
SecurityManager state:<br>
Restricted: false<br>
FileAccess: true<br>
SocketAccess: true<br>
Working Dir /Users/paco/Desktop/pharo1.0-10418-BETAweb09.08.2<br>
Trusted Dir /foobar/tooBar/forSqueak/bogus<br>
Untrusted Dir /Users/paco/Library/Preferences/Squeak/Internet/My Squeak<br>
<br>
OpenDBXMacOSX(Object)&gt;&gt;error:<br>
        Receiver: an OpenDBXMacOSX<br>
        Arguments and temporary variables:<br>
                aString:        &#39;Unable to find function address&#39;<br>
        Receiver&#39;s instance variables:<br>
an OpenDBXMacOSX<br>
<br>
OpenDBXMacOSX(Object)&gt;&gt;externalCallFailed<br>
        Receiver: an OpenDBXMacOSX<br>
        Arguments and temporary variables:<br>
                errCode:        13<br>
        Receiver&#39;s instance variables:<br>
an OpenDBXMacOSX<br>
<br>
OpenDBXMacOSX(OpenDBXUnix)&gt;&gt;apiInitialize:backend:host:port:<br>
        Receiver: an OpenDBXMacOSX<br>
        Arguments and temporary variables:<br>
                handle:         a WordArray(0)<br>
                backend:        &#39;pgsql&#39;<br>
                host:   &#39;127.0.0.1&#39;<br>
                port:   &#39;5432&#39;<br>
        Receiver&#39;s instance variables:<br>
an OpenDBXMacOSX<br>
<br>
DBXPostgresPlatform(DBXPlatform)&gt;&gt;createConnection:<br>
        Receiver: a DBXPostgresPlatform<br>
        Arguments and temporary variables:<br>
                aConnection:    a DBXConnection<br>
                err:    nil<br>
                handleArray:    a WordArray(0)<br>
                handle:         nil<br>
        Receiver&#39;s instance variables:<br>
a DBXPostgresPlatform<br>
<br>
DBXConnection&gt;&gt;connect<br>
        Receiver: a DBXConnection<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                platform:       a DBXPostgresPlatform<br>
                settings:       a DBXConnectionSettings<br>
                handle:         nil<br>
                open:   a ValueHolder<br>
                connected:      a ValueHolder<br>
                result:         nil<br>
<br>
SqueakDBXDriver&gt;&gt;connect:<br>
        Receiver: a SqueakDBXDriver<br>
        Arguments and temporary variables:<br>
                aLogin:         a Login(a PostgreSQLPlatform, &#39;postgres&#39;, &#39;vorevoca&#39;,<br>
&#39;127.0.0.1_glorp&#39;...etc...<br>
        Receiver&#39;s instance variables:<br>
                connection:     a DBXConnection<br>
                database:       nil<br>
<br>
[] in SqueakDatabaseAccessor&gt;&gt;loginIfError:<br>
        Receiver: a SqueakDatabaseAccessor<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                connection:     nil<br>
                currentLogin:   a Login(a PostgreSQLPlatform, &#39;postgres&#39;, &#39;vorevoca&#39;,<br>
&#39;127.0.0.1_...etc...<br>
                logging:        nil<br>
                reusePreparedStatements:        nil<br>
                deniedCommands:         nil<br>
                mutex:  a Semaphore()<br>
                dependents:     nil<br>
                isInTransaction:        false<br>
                databaseDriver:         a SqueakDBXDriver<br>
<br>
BlockClosure&gt;&gt;on:do:<br>
        Receiver: [closure] in SqueakDatabaseAccessor&gt;&gt;loginIfError:<br>
        Arguments and temporary variables:<br>
                exception:      Error<br>
                handlerAction:  [closure] in<br>
SqueakDatabaseAccessor(DatabaseAccessor)&gt;&gt;login<br>
                handlerActive:  false<br>
        Receiver&#39;s instance variables:<br>
                outerContext:   SqueakDatabaseAccessor&gt;&gt;loginIfError:<br>
                startpc:        60<br>
                numArgs:        0<br>
<br>
SqueakDatabaseAccessor(DatabaseAccessor)&gt;&gt;execute:ifError:<br>
        Receiver: a SqueakDatabaseAccessor<br>
        Arguments and temporary variables:<br>
                aBlock:         [closure] in SqueakDatabaseAccessor&gt;&gt;loginIfError:<br>
                errorBlock:     [closure] in<br>
SqueakDatabaseAccessor(DatabaseAccessor)&gt;&gt;login<br>
        Receiver&#39;s instance variables:<br>
                connection:     nil<br>
                currentLogin:   a Login(a PostgreSQLPlatform, &#39;postgres&#39;, &#39;vorevoca&#39;,<br>
&#39;127.0.0.1_...etc...<br>
                logging:        nil<br>
                reusePreparedStatements:        nil<br>
                deniedCommands:         nil<br>
                mutex:  a Semaphore()<br>
                dependents:     nil<br>
                isInTransaction:        false<br>
                databaseDriver:         a SqueakDBXDriver<br>
<br>
SqueakDatabaseAccessor&gt;&gt;loginIfError:<br>
        Receiver: a SqueakDatabaseAccessor<br>
        Arguments and temporary variables:<br>
                aBlock:         [closure] in SqueakDatabaseAccessor(DatabaseAccessor)&gt;&gt;login<br>
        Receiver&#39;s instance variables:<br>
                connection:     nil<br>
                currentLogin:   a Login(a PostgreSQLPlatform, &#39;postgres&#39;, &#39;vorevoca&#39;,<br>
&#39;127.0.0.1_...etc...<br>
                logging:        nil<br>
                reusePreparedStatements:        nil<br>
                deniedCommands:         nil<br>
                mutex:  a Semaphore()<br>
                dependents:     nil<br>
                isInTransaction:        false<br>
                databaseDriver:         a SqueakDBXDriver<br>
<br>
SqueakDatabaseAccessor(DatabaseAccessor)&gt;&gt;login<br>
        Receiver: a SqueakDatabaseAccessor<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                connection:     nil<br>
                currentLogin:   a Login(a PostgreSQLPlatform, &#39;postgres&#39;, &#39;vorevoca&#39;,<br>
&#39;127.0.0.1_...etc...<br>
                logging:        nil<br>
                reusePreparedStatements:        nil<br>
                deniedCommands:         nil<br>
                mutex:  a Semaphore()<br>
                dependents:     nil<br>
                isInTransaction:        false<br>
                databaseDriver:         a SqueakDBXDriver<br>
<br>
GlorpDatabaseLoginResource&gt;&gt;setUp<br>
        Receiver: GlorpDatabaseLoginResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                name:   nil<br>
                description:    nil<br>
                accessor:       a SqueakDatabaseAccessor<br>
                login:  a Login(a PostgreSQLPlatform, &#39;postgres&#39;, &#39;vorevoca&#39;,<br>
&#39;127.0.0.1_glorp&#39;)...etc...<br>
<br>
GlorpDatabaseLoginResource(TestResource)&gt;&gt;initialize<br>
        Receiver: GlorpDatabaseLoginResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                name:   nil<br>
                description:    nil<br>
                accessor:       a SqueakDatabaseAccessor<br>
                login:  a Login(a PostgreSQLPlatform, &#39;postgres&#39;, &#39;vorevoca&#39;,<br>
&#39;127.0.0.1_glorp&#39;)...etc...<br>
<br>
GlorpDatabaseLoginResource class(Behavior)&gt;&gt;new<br>
        Receiver: GlorpDatabaseLoginResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                superclass:     TestResource<br>
                methodDict:     a MethodDictionary(#accessor-&gt;a CompiledMethod (1052)<br>
#accessor:-&gt;a...etc...<br>
                format:         138<br>
                instanceVariables:      #(&#39;accessor&#39; &#39;login&#39;)<br>
                organization:   (&#39;accessing&#39; accessor accessor: login login: platform)<br>
(&#39;initiali...etc...<br>
                subclasses:     nil<br>
                name:   #GlorpDatabaseLoginResource<br>
                classPool:      a Dictionary(#DefaultLogin-&gt;a Login(a<br>
PostgreSQLPlatform, &#39;postgres&#39;...etc...<br>
                sharedPools:    nil<br>
                environment:    Smalltalk<br>
                category:       #&#39;OpenDBX-Glorp-Core-Test&#39;<br>
                traitComposition:       nil<br>
                localSelectors:         nil<br>
                current:        nil<br>
<br>
GlorpDatabaseLoginResource class(TestResource class)&gt;&gt;current<br>
        Receiver: GlorpDatabaseLoginResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                superclass:     TestResource<br>
                methodDict:     a MethodDictionary(#accessor-&gt;a CompiledMethod (1052)<br>
#accessor:-&gt;a...etc...<br>
                format:         138<br>
                instanceVariables:      #(&#39;accessor&#39; &#39;login&#39;)<br>
                organization:   (&#39;accessing&#39; accessor accessor: login login: platform)<br>
(&#39;initiali...etc...<br>
                subclasses:     nil<br>
                name:   #GlorpDatabaseLoginResource<br>
                classPool:      a Dictionary(#DefaultLogin-&gt;a Login(a<br>
PostgreSQLPlatform, &#39;postgres&#39;...etc...<br>
                sharedPools:    nil<br>
                environment:    Smalltalk<br>
                category:       #&#39;OpenDBX-Glorp-Core-Test&#39;<br>
                traitComposition:       nil<br>
                localSelectors:         nil<br>
                current:        nil<br>
<br>
GlorpDemoTablePopulatorResource&gt;&gt;setUp<br>
        Receiver: GlorpDemoTablePopulatorResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                name:   nil<br>
                description:    nil<br>
                login:  nil<br>
<br>
GlorpDemoTablePopulatorResource(TestResource)&gt;&gt;initialize<br>
        Receiver: GlorpDemoTablePopulatorResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                name:   nil<br>
                description:    nil<br>
                login:  nil<br>
<br>
GlorpDemoTablePopulatorResource class(Behavior)&gt;&gt;new<br>
        Receiver: GlorpDemoTablePopulatorResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                superclass:     TestResource<br>
                methodDict:     a MethodDictionary(#populateStuffTable-&gt;a<br>
CompiledMethod (555) #set...etc...<br>
                format:         136<br>
                instanceVariables:      #(&#39;login&#39;)<br>
                organization:   (&#39;setup&#39; populateStuffTable setUp)<br>
(&#39;*glorpTestPostload-override&#39;...etc...<br>
                subclasses:     nil<br>
                name:   #GlorpDemoTablePopulatorResource<br>
                classPool:      a Dictionary(#NeedsSetup-&gt;false )<br>
                sharedPools:    nil<br>
                environment:    Smalltalk<br>
                category:       #GlorpTest<br>
                traitComposition:       nil<br>
                localSelectors:         nil<br>
                current:        nil<br>
<br>
GlorpDemoTablePopulatorResource class(TestResource class)&gt;&gt;current<br>
        Receiver: GlorpDemoTablePopulatorResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                superclass:     TestResource<br>
                methodDict:     a MethodDictionary(#populateStuffTable-&gt;a<br>
CompiledMethod (555) #set...etc...<br>
                format:         136<br>
                instanceVariables:      #(&#39;login&#39;)<br>
                organization:   (&#39;setup&#39; populateStuffTable setUp)<br>
(&#39;*glorpTestPostload-override&#39;...etc...<br>
                subclasses:     nil<br>
                name:   #GlorpDemoTablePopulatorResource<br>
                classPool:      a Dictionary(#NeedsSetup-&gt;false )<br>
                sharedPools:    nil<br>
                environment:    Smalltalk<br>
                category:       #GlorpTest<br>
                traitComposition:       nil<br>
                localSelectors:         nil<br>
                current:        nil<br>
<br>
GlorpSessionResource&gt;&gt;glorpTestsSystem<br>
        Receiver: GlorpSessionResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                name:   nil<br>
                description:    nil<br>
                session:        nil<br>
<br>
GlorpSessionResource&gt;&gt;setUp<br>
        Receiver: GlorpSessionResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                name:   nil<br>
                description:    nil<br>
                session:        nil<br>
<br>
GlorpSessionResource(TestResource)&gt;&gt;initialize<br>
        Receiver: GlorpSessionResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                name:   nil<br>
                description:    nil<br>
                session:        nil<br>
<br>
GlorpSessionResource class(Behavior)&gt;&gt;new<br>
        Receiver: GlorpSessionResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                superclass:     TestResource<br>
                methodDict:     a MethodDictionary(#glorpTestsSystem-&gt;a CompiledMethod<br>
(1814) #newS...etc...<br>
                format:         136<br>
                instanceVariables:      #(&#39;session&#39;)<br>
                organization:   (&#39;setup&#39; glorpTestsSystem setUp)<br>
(&#39;accessing&#39; newSession session)...etc...<br>
                subclasses:     nil<br>
                name:   #GlorpSessionResource<br>
                classPool:      nil<br>
                sharedPools:    nil<br>
                environment:    Smalltalk<br>
                category:       #GlorpTest<br>
                traitComposition:       nil<br>
                localSelectors:         nil<br>
                current:        nil<br>
<br>
GlorpSessionResource class(TestResource class)&gt;&gt;current<br>
        Receiver: GlorpSessionResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                superclass:     TestResource<br>
                methodDict:     a MethodDictionary(#glorpTestsSystem-&gt;a CompiledMethod<br>
(1814) #newS...etc...<br>
                format:         136<br>
                instanceVariables:      #(&#39;session&#39;)<br>
                organization:   (&#39;setup&#39; glorpTestsSystem setUp)<br>
(&#39;accessing&#39; newSession session)...etc...<br>
                subclasses:     nil<br>
                name:   #GlorpSessionResource<br>
                classPool:      nil<br>
                sharedPools:    nil<br>
                environment:    Smalltalk<br>
                category:       #GlorpTest<br>
                traitComposition:       nil<br>
                localSelectors:         nil<br>
                current:        nil<br>
<br>
GlorpSessionResource class(TestResource class)&gt;&gt;isAvailable<br>
        Receiver: GlorpSessionResource<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                superclass:     TestResource<br>
                methodDict:     a MethodDictionary(#glorpTestsSystem-&gt;a CompiledMethod<br>
(1814) #newS...etc...<br>
                format:         136<br>
                instanceVariables:      #(&#39;session&#39;)<br>
                organization:   (&#39;setup&#39; glorpTestsSystem setUp)<br>
(&#39;accessing&#39; newSession session)...etc...<br>
                subclasses:     nil<br>
                name:   #GlorpSessionResource<br>
                classPool:      nil<br>
                sharedPools:    nil<br>
                environment:    Smalltalk<br>
                category:       #GlorpTest<br>
                traitComposition:       nil<br>
                localSelectors:         nil<br>
                current:        nil<br>
<br>
[] in TestRunner&gt;&gt;basicSetUpSuite:<br>
        Receiver: a TestRunner<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                categories:     #(#&#39;AST-Tests&#39; #&#39;AutomaticMethodCategorizer-Tests&#39;<br>
#&#39;AutomaticMetho...etc...<br>
                categoriesSelected:     a Set(#GlorpTest)<br>
                classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .<br>
GlorpCursor...etc...<br>
                classIndex:     0<br>
                classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest<br>
GlorpManyToM...etc...<br>
                failedList:     #()<br>
                failedSelected:         nil<br>
                errorList:      #()<br>
                errorSelected:  nil<br>
                lastUpdate:     3428305867<br>
                result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,<br>
0 unexpecte...etc...<br>
                previousRun:    nil<br>
<br>
Set&gt;&gt;do:<br>
        Receiver: a Set(GlorpSessionResource GlorpDatabaseLoginResource<br>
GlorpDemoTablePopulatorResource)<br>
        Arguments and temporary variables:<br>
                aBlock:         [closure] in TestRunner&gt;&gt;basicSetUpSuite:<br>
                index:  2<br>
                each:   GlorpSessionResource<br>
                indexLimiT:     5<br>
        Receiver&#39;s instance variables:<br>
                tally:  3<br>
                array:  {nil . GlorpSessionResource . GlorpDatabaseLoginResource .<br>
GlorpDemoTabl...etc...<br>
<br>
TestRunner&gt;&gt;basicSetUpSuite:<br>
        Receiver: a TestRunner<br>
        Arguments and temporary variables:<br>
                aTestSuite:     a TestSuite<br>
        Receiver&#39;s instance variables:<br>
                categories:     #(#&#39;AST-Tests&#39; #&#39;AutomaticMethodCategorizer-Tests&#39;<br>
#&#39;AutomaticMetho...etc...<br>
                categoriesSelected:     a Set(#GlorpTest)<br>
                classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .<br>
GlorpCursor...etc...<br>
                classIndex:     0<br>
                classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest<br>
GlorpManyToM...etc...<br>
                failedList:     #()<br>
                failedSelected:         nil<br>
                errorList:      #()<br>
                errorSelected:  nil<br>
                lastUpdate:     3428305867<br>
                result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,<br>
0 unexpecte...etc...<br>
                previousRun:    nil<br>
<br>
TestRunner&gt;&gt;basicRunSuite:do:<br>
        Receiver: a TestRunner<br>
        Arguments and temporary variables:<br>
                aTestSuite:     a TestSuite<br>
                aBlock:         [closure] in TestRunner&gt;&gt;runSuite:<br>
        Receiver&#39;s instance variables:<br>
                categories:     #(#&#39;AST-Tests&#39; #&#39;AutomaticMethodCategorizer-Tests&#39;<br>
#&#39;AutomaticMetho...etc...<br>
                categoriesSelected:     a Set(#GlorpTest)<br>
                classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .<br>
GlorpCursor...etc...<br>
                classIndex:     0<br>
                classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest<br>
GlorpManyToM...etc...<br>
                failedList:     #()<br>
                failedSelected:         nil<br>
                errorList:      #()<br>
                errorSelected:  nil<br>
                lastUpdate:     3428305867<br>
                result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,<br>
0 unexpecte...etc...<br>
                previousRun:    nil<br>
<br>
TestRunner&gt;&gt;runSuite:<br>
        Receiver: a TestRunner<br>
        Arguments and temporary variables:<br>
                aTestSuite:     a TestSuite<br>
        Receiver&#39;s instance variables:<br>
                categories:     #(#&#39;AST-Tests&#39; #&#39;AutomaticMethodCategorizer-Tests&#39;<br>
#&#39;AutomaticMetho...etc...<br>
                categoriesSelected:     a Set(#GlorpTest)<br>
                classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .<br>
GlorpCursor...etc...<br>
                classIndex:     0<br>
                classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest<br>
GlorpManyToM...etc...<br>
                failedList:     #()<br>
                failedSelected:         nil<br>
                errorList:      #()<br>
                errorSelected:  nil<br>
                lastUpdate:     3428305867<br>
                result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,<br>
0 unexpecte...etc...<br>
                previousRun:    nil<br>
<br>
TestRunner&gt;&gt;runAll<br>
        Receiver: a TestRunner<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                categories:     #(#&#39;AST-Tests&#39; #&#39;AutomaticMethodCategorizer-Tests&#39;<br>
#&#39;AutomaticMetho...etc...<br>
                categoriesSelected:     a Set(#GlorpTest)<br>
                classes:        {GlorpBreadthFirstTopologicalSortTest . GlorpCommandTest .<br>
GlorpCursor...etc...<br>
                classIndex:     0<br>
                classesSelected:        a Set(GlorpSQLPrintingTest GlorpDatabaseBasedTest<br>
GlorpManyToM...etc...<br>
                failedList:     #()<br>
                failedSelected:         nil<br>
                errorList:      #()<br>
                errorSelected:  nil<br>
                lastUpdate:     3428305867<br>
                result:         0 run, 0 passes, 0 expected failures, 0 failures, 0 errors,<br>
0 unexpecte...etc...<br>
                previousRun:    nil<br>
<br>
UndefinedObject&gt;&gt;DoIt<br>
        Receiver: nil<br>
        Arguments and temporary variables:<br>
                tr:     a TestRunner<br>
        Receiver&#39;s instance variables:<br>
nil<br>
<br>
Compiler&gt;&gt;evaluate:in:to:notifying:ifFail:logged:<br>
        Receiver: a Compiler<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                sourceStream:   a ReadWriteStream &#39;<br>
|tr |<br>
SqueakDatabaseAccessor DefaultDriver: S...etc...<br>
                requestor:      a TextMorphForShoutEditor<br>
                class:  UndefinedObject<br>
                category:       nil<br>
                context:        nil<br>
                parser:         a Parser<br>
<br>
[] in TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;evaluateSelection<br>
        Receiver: a TextMorphForShoutEditor<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                model:  a SHWorkspace<br>
                paragraph:      a MultiNewParagraph<br>
                startBlock:     a CharacterBlock with index 201 and character Character<br>
cr and rect...etc...<br>
                stopBlock:      a CharacterBlock with index 201 and character Character<br>
cr and recta...etc...<br>
                beginTypeInBlock:       nil<br>
                emphasisHere:   an Array(a TextColor code: Color red)<br>
                initialText:    a Text for &#39;<br>
|tr |<br>
tr := TestRunner new.<br>
ToolBuilder open: tr.<br>
tr<br>
...etc...<br>
                selectionShowing:       false<br>
                otherInterval:  (403 to: 402)<br>
                lastParentLocation:     nil<br>
                morph:  a TextMorphForShout(168)<br>
                oldInterval:    (106 to: 105)<br>
                pivotBlock:     a CharacterBlock with index 200 and character Character<br>
cr and rect...etc...<br>
                inBackTo:       false<br>
<br>
BlockClosure&gt;&gt;on:do:<br>
        Receiver: [closure] in<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;evaluateSelection<br>
        Arguments and temporary variables:<br>
                exception:      OutOfScopeNotification<br>
                handlerAction:  [closure] in<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;evaluateS...etc...<br>
                handlerActive:  true<br>
        Receiver&#39;s instance variables:<br>
                outerContext:<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;evaluateSelection<br>
                startpc:        116<br>
                numArgs:        0<br>
<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;evaluateSelection<br>
        Receiver: a TextMorphForShoutEditor<br>
        Arguments and temporary variables:<br>
                result:         nil<br>
                rcvr:   nil<br>
                ctxt:   nil<br>
        Receiver&#39;s instance variables:<br>
                model:  a SHWorkspace<br>
                paragraph:      a MultiNewParagraph<br>
                startBlock:     a CharacterBlock with index 201 and character Character<br>
cr and rect...etc...<br>
                stopBlock:      a CharacterBlock with index 201 and character Character<br>
cr and recta...etc...<br>
                beginTypeInBlock:       nil<br>
                emphasisHere:   an Array(a TextColor code: Color red)<br>
                initialText:    a Text for &#39;<br>
|tr |<br>
tr := TestRunner new.<br>
ToolBuilder open: tr.<br>
tr<br>
...etc...<br>
                selectionShowing:       false<br>
                otherInterval:  (403 to: 402)<br>
                lastParentLocation:     nil<br>
                morph:  a TextMorphForShout(168)<br>
                oldInterval:    (106 to: 105)<br>
                pivotBlock:     a CharacterBlock with index 200 and character Character<br>
cr and rect...etc...<br>
                inBackTo:       false<br>
<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;doIt<br>
        Receiver: a TextMorphForShoutEditor<br>
        Arguments and temporary variables:<br>
<br>
        Receiver&#39;s instance variables:<br>
                model:  a SHWorkspace<br>
                paragraph:      a MultiNewParagraph<br>
                startBlock:     a CharacterBlock with index 201 and character Character<br>
cr and rect...etc...<br>
                stopBlock:      a CharacterBlock with index 201 and character Character<br>
cr and recta...etc...<br>
                beginTypeInBlock:       nil<br>
                emphasisHere:   an Array(a TextColor code: Color red)<br>
                initialText:    a Text for &#39;<br>
|tr |<br>
tr := TestRunner new.<br>
ToolBuilder open: tr.<br>
tr<br>
...etc...<br>
                selectionShowing:       false<br>
                otherInterval:  (403 to: 402)<br>
                lastParentLocation:     nil<br>
                morph:  a TextMorphForShout(168)<br>
                oldInterval:    (106 to: 105)<br>
                pivotBlock:     a CharacterBlock with index 200 and character Character<br>
cr and rect...etc...<br>
                inBackTo:       false<br>
<br>
[] in TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;doIt:<br>
        Receiver: a TextMorphForShoutEditor<br>
        Arguments and temporary variables:<br>
&lt;&lt;error during printing&gt;<br>
        Receiver&#39;s instance variables:<br>
                model:  a SHWorkspace<br>
                paragraph:      a MultiNewParagraph<br>
                startBlock:     a CharacterBlock with index 201 and character Character<br>
cr and rect...etc...<br>
                stopBlock:      a CharacterBlock with index 201 and character Character<br>
cr and recta...etc...<br>
                beginTypeInBlock:       nil<br>
                emphasisHere:   an Array(a TextColor code: Color red)<br>
                initialText:    a Text for &#39;<br>
|tr |<br>
tr := TestRunner new.<br>
ToolBuilder open: tr.<br>
tr<br>
...etc...<br>
                selectionShowing:       false<br>
                otherInterval:  (403 to: 402)<br>
                lastParentLocation:     nil<br>
                morph:  a TextMorphForShout(168)<br>
                oldInterval:    (106 to: 105)<br>
                pivotBlock:     a CharacterBlock with index 200 and character Character<br>
cr and rect...etc...<br>
                inBackTo:       false<br>
<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;terminateAndInitializeAround:<br>
        Receiver: a TextMorphForShoutEditor<br>
        Arguments and temporary variables:<br>
                aBlock:         [closure] in TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;doIt:<br>
        Receiver&#39;s instance variables:<br>
                model:  a SHWorkspace<br>
                paragraph:      a MultiNewParagraph<br>
                startBlock:     a CharacterBlock with index 201 and character Character<br>
cr and rect...etc...<br>
                stopBlock:      a CharacterBlock with index 201 and character Character<br>
cr and recta...etc...<br>
                beginTypeInBlock:       nil<br>
                emphasisHere:   an Array(a TextColor code: Color red)<br>
                initialText:    a Text for &#39;<br>
|tr |<br>
tr := TestRunner new.<br>
ToolBuilder open: tr.<br>
tr<br>
...etc...<br>
                selectionShowing:       false<br>
                otherInterval:  (403 to: 402)<br>
                lastParentLocation:     nil<br>
                morph:  a TextMorphForShout(168)<br>
                oldInterval:    (106 to: 105)<br>
                pivotBlock:     a CharacterBlock with index 200 and character Character<br>
cr and rect...etc...<br>
                inBackTo:       false<br>
<br>
<br>
--- The full stack ---<br>
OpenDBXMacOSX(Object)&gt;&gt;error:<br>
OpenDBXMacOSX(Object)&gt;&gt;externalCallFailed<br>
OpenDBXMacOSX(OpenDBXUnix)&gt;&gt;apiInitialize:backend:host:port:<br>
DBXPostgresPlatform(DBXPlatform)&gt;&gt;createConnection:<br>
DBXConnection&gt;&gt;connect<br>
SqueakDBXDriver&gt;&gt;connect:<br>
[] in SqueakDatabaseAccessor&gt;&gt;loginIfError:<br>
BlockClosure&gt;&gt;on:do:<br>
SqueakDatabaseAccessor(DatabaseAccessor)&gt;&gt;execute:ifError:<br>
SqueakDatabaseAccessor&gt;&gt;loginIfError:<br>
SqueakDatabaseAccessor(DatabaseAccessor)&gt;&gt;login<br>
GlorpDatabaseLoginResource&gt;&gt;setUp<br>
GlorpDatabaseLoginResource(TestResource)&gt;&gt;initialize<br>
GlorpDatabaseLoginResource class(Behavior)&gt;&gt;new<br>
GlorpDatabaseLoginResource class(TestResource class)&gt;&gt;current<br>
GlorpDemoTablePopulatorResource&gt;&gt;setUp<br>
GlorpDemoTablePopulatorResource(TestResource)&gt;&gt;initialize<br>
GlorpDemoTablePopulatorResource class(Behavior)&gt;&gt;new<br>
GlorpDemoTablePopulatorResource class(TestResource class)&gt;&gt;current<br>
GlorpSessionResource&gt;&gt;glorpTestsSystem<br>
GlorpSessionResource&gt;&gt;setUp<br>
GlorpSessionResource(TestResource)&gt;&gt;initialize<br>
GlorpSessionResource class(Behavior)&gt;&gt;new<br>
GlorpSessionResource class(TestResource class)&gt;&gt;current<br>
GlorpSessionResource class(TestResource class)&gt;&gt;isAvailable<br>
[] in TestRunner&gt;&gt;basicSetUpSuite:<br>
Set&gt;&gt;do:<br>
TestRunner&gt;&gt;basicSetUpSuite:<br>
TestRunner&gt;&gt;basicRunSuite:do:<br>
TestRunner&gt;&gt;runSuite:<br>
TestRunner&gt;&gt;runAll<br>
UndefinedObject&gt;&gt;DoIt<br>
Compiler&gt;&gt;evaluate:in:to:notifying:ifFail:logged:<br>
[] in TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;evaluateSelection<br>
BlockClosure&gt;&gt;on:do:<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;evaluateSelection<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;doIt<br>
[] in TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;doIt:<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;terminateAndInitializeAround:<br>
  - - - - - - - - - - - - - - -<br>
                        - - - - - - - - - - - - - - - - - -<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;doIt:<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;dispatchOnKeyEvent:with:<br>
TextMorphForShoutEditor(TextMorphEditor)&gt;&gt;dispatchOnKeyEvent:with:<br>
TextMorphForShoutEditor(ParagraphEditor)&gt;&gt;keystroke:<br>
TextMorphForShoutEditor(TextMorphEditor)&gt;&gt;keystroke:<br>
[] in [] in TextMorphForShout(TextMorph)&gt;&gt;keyStroke:<br>
TextMorphForShout(TextMorph)&gt;&gt;handleInteraction:<br>
TextMorphForShout(TextMorphForEditView)&gt;&gt;handleInteraction:<br>
[] in TextMorphForShout(TextMorph)&gt;&gt;keyStroke:<br>
ECToolSet class&gt;&gt;codeCompletionAround:textMorph:keyStroke:<br>
DEVToolSet class&gt;&gt;codeCompletionAround:textMorph:keyStroke:<br>
ToolSet class&gt;&gt;codeCompletionAround:textMorph:keyStroke:<br>
TextMorphForShout(TextMorph)&gt;&gt;keyStroke:<br>
TextMorphForShout(TextMorphForEditView)&gt;&gt;keyStroke:<br>
TextMorphForShout(TextMorph)&gt;&gt;handleKeystroke:<br>
KeyboardEvent&gt;&gt;sentTo:<br>
TextMorphForShout(Morph)&gt;&gt;handleEvent:<br>
TextMorphForShout(Morph)&gt;&gt;handleFocusEvent:<br>
[] in HandMorph&gt;&gt;sendFocusEvent:to:clear:<br>
[] in PasteUpMorph&gt;&gt;becomeActiveDuring:<br>
BlockClosure&gt;&gt;on:do:<br>
PasteUpMorph&gt;&gt;becomeActiveDuring:<br>
HandMorph&gt;&gt;sendFocusEvent:to:clear:<br>
HandMorph&gt;&gt;sendEvent:focus:clear:<br>
HandMorph&gt;&gt;sendKeyboardEvent:<br>
HandMorph&gt;&gt;handleEvent:<br>
HandMorph&gt;&gt;processEvents<br>
[] in WorldState&gt;&gt;doOneCycleNowFor:<br>
Array(SequenceableCollection)&gt;&gt;do:<br>
WorldState&gt;&gt;handsDo:<br>
WorldState&gt;&gt;doOneCycleNowFor:<br>
WorldState&gt;&gt;doOneCycleFor:<br>
PasteUpMorph&gt;&gt;doOneCycle<br>
[] in Project class&gt;&gt;spawnNewProcess<br>
[] in BlockClosure&gt;&gt;newProcess<br>
<br>
<br>
_______________________________________________<br>
Pharo-project mailing list<br>
<a href="mailto:Pharo-project@lists.gforge.inria.fr" target="_blank">Pharo-project@lists.gforge.inria.fr</a><br>
<a href="http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project" target="_blank">http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project</a><br>
</blockquote></div></div></div><br>
</div><br>