mailr27444 - /trunk/test_suite/gui_tests/base_classes.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on February 02, 2015 - 23:34:
Author: bugman
Date: Mon Feb  2 23:34:27 2015
New Revision: 27444

URL: http://svn.gna.org/viewcvs/relax?rev=27444&view=rev
Log:
Big bug fix for the GUI tests on MS Windows systems.

On MS Windows systems, the GUI tests were unable to complete without 
crashing.  This is because each
GUI element requires one 'User object', and MS Windows has a maximum limit of 
10,000 of these
objects.  The GUI tests were taking more than 10,000 and then Windows would 
say - relax, you die
now.

The solution is that after each GUI test, all user function windows are 
destroyed.  The user
function page is a wx.Panel object, so this requires a Destroy() call.  But 
the window is a Uf_page
instance which inherits from Wiz_page which inherits from wx.Dialog.  Calling 
Destroy() on MS
Windows and Linux works fine, but is fatal on Mac OS X systems.  So the 
solution is to call Close()
instead.


Modified:
    trunk/test_suite/gui_tests/base_classes.py

Modified: trunk/test_suite/gui_tests/base_classes.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/gui_tests/base_classes.py?rev=27444&r1=27443&r2=27444&view=diff
==============================================================================
--- trunk/test_suite/gui_tests/base_classes.py  (original)
+++ trunk/test_suite/gui_tests/base_classes.py  Mon Feb  2 23:34:27 2015
@@ -255,5 +255,14 @@
         # Reset relax.
         reset()
 
+        # Destroy all user function windows to save memory (specifically to 
avoid the 10,000 USER Object limit in MS Windows).
+        for name in uf_store:
+            if hasattr(uf_store[name], 'page') and uf_store[name].page != 
None:
+                uf_store[name].page.Destroy()
+                del uf_store[name].page
+            if uf_store[name].wizard != None:
+                uf_store[name].wizard.Close()
+                uf_store[name].wizard = None
+
         # Flush all wx events again to allow the reset event to propagate 
throughout the GUI and the execution lock to be released before the next test 
starts.
         wx.Yield()




Related Messages


Powered by MHonArc, Updated Tue Feb 03 09:40:01 2015