Author: bugman Date: Mon Feb 24 14:17:58 2014 New Revision: 22282 URL: http://svn.gna.org/viewcvs/relax?rev=22282&view=rev Log: Merged revisions 22279-22281 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r22279 | tlinnet | 2014-02-24 13:59:49 +0100 (Mon, 24 Feb 2014) | 3 lines Renamed unit test, to follow previous namings of unit tests. Regarding bug #21665, (https://gna.org/bugs/?21665) - Running a CPMG analysis with two fields at two delay times. ........ r22280 | bugman | 2014-02-24 14:14:02 +0100 (Mon, 24 Feb 2014) | 11 lines Fix for the relaxation dispersion auto-analysis to improve its behaviour in the test suite. The problem is that the auto-analysis acquires the execution lock (status.exec_lock) but if the analysis cannot complete due to a bug, the lock is never released. This causes nasty problems for many subsequent tests, resulting in a cascade of test failures. This is especially problematic in the GUI tests where the execution lock controls many aspects of the interface. The solution was simply to run the auto-analysis run() method within a try-finally statement. The release of the lock occurs in the 'finally' clause, guaranteeing its release. ........ r22281 | bugman | 2014-02-24 14:16:36 +0100 (Mon, 24 Feb 2014) | 7 lines Improvement for GUI test base tearDown() clean up method. A wx.Yield() call has been added to allow all GUI operations after a relax reset to complete prior to the next test starting. This should avoid certain racing conditions which can cause a cascade of tests to fail. ........ Modified: branches/double_rotor/ (props changed) branches/double_rotor/auto_analyses/relax_disp.py branches/double_rotor/test_suite/gui_tests/base_classes.py branches/double_rotor/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py Propchange: branches/double_rotor/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Mon Feb 24 14:17:58 2014 @@ -1,1 +1,1 @@ -/trunk:1-22277 +/trunk:1-22281 Modified: branches/double_rotor/auto_analyses/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/double_rotor/auto_analyses/relax_disp.py?rev=22282&r1=22281&r2=22282&view=diff ============================================================================== --- branches/double_rotor/auto_analyses/relax_disp.py (original) +++ branches/double_rotor/auto_analyses/relax_disp.py Mon Feb 24 14:17:58 2014 @@ -113,12 +113,14 @@ self.interpreter.on(verbose=False) # Execute. - self.run() + try: + self.run() # Finish and unlock execution. - status.auto_analysis[self.pipe_bundle].fin = True - status.current_analysis = None - status.exec_lock.release() + finally: + status.auto_analysis[self.pipe_bundle].fin = True + status.current_analysis = None + status.exec_lock.release() def is_model_for_selection(self, model=None): Modified: branches/double_rotor/test_suite/gui_tests/base_classes.py URL: http://svn.gna.org/viewcvs/relax/branches/double_rotor/test_suite/gui_tests/base_classes.py?rev=22282&r1=22281&r2=22282&view=diff ============================================================================== --- branches/double_rotor/test_suite/gui_tests/base_classes.py (original) +++ branches/double_rotor/test_suite/gui_tests/base_classes.py Mon Feb 24 14:17:58 2014 @@ -196,3 +196,6 @@ # Reset relax. reset() + + # 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() Modified: branches/double_rotor/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py URL: http://svn.gna.org/viewcvs/relax/branches/double_rotor/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py?rev=22282&r1=22281&r2=22282&view=diff ============================================================================== --- branches/double_rotor/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py (original) +++ branches/double_rotor/test_suite/unit_tests/_specific_analyses/_relax_disp/test_disp_data.py Mon Feb 24 14:17:58 2014 @@ -195,7 +195,7 @@ disp_index += 1 - def test_loop_exp_frq_offset_point_time(self): + def test_loop_exp_frq_offset_point_time_setup(self): """U{Bug #21665<https://gna.org/bugs/?21665>} catch, the failure due to a a CPMG analysis recorded at two fields at two delay times, using calc().""" # Load the state.