X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=test%2Fexecution%2Fec.py;h=03040146fbc9ac26bedc6a81843730efc37232d1;hb=b769dda475a0b56e7a36e1763a2610990b1c1074;hp=6c44878f1e483499c2674ea799b8508b1ec952bc;hpb=eb111746f316ddd70f6eed77e432151c8ab96fe6;p=nepi.git diff --git a/test/execution/ec.py b/test/execution/ec.py index 6c44878f..03040146 100755 --- a/test/execution/ec.py +++ b/test/execution/ec.py @@ -1,4 +1,23 @@ #!/usr/bin/env python +# +# NEPI, a framework to manage network experiments +# Copyright (C) 2013 INRIA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Author: Alina Quereilhac + from nepi.execution.ec import ExperimentController, ECState from nepi.execution.scheduler import TaskStatus @@ -53,17 +72,23 @@ class ExecuteControllersTestCase(unittest.TestCase): def test_schedule_exception(self): def raise_error(): - raise RuntimeError, "the error" + # When this task is executed and the error raise, + # the FailureManager should set its failure level to + # TASK_FAILURE + raise RuntimeError, "NOT A REAL ERROR. JUST TESTING!" ec = ExperimentController() - ec.schedule("2s", raise_error) - while ec.ecstate not in [ECState.FAILED, ECState.TERMINATED]: - time.sleep(1) + tid = ec.schedule("2s", raise_error, track = True) - self.assertEquals(ec.ecstate, ECState.FAILED) - ec.shutdown() + while True: + task = ec.get_task(tid) + if task.status != TaskStatus.NEW: + break + + time.sleep(1) + self.assertEquals(task.status, TaskStatus.ERROR) if __name__ == '__main__': unittest.main()