summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Peck <bpeck@redhat.com>2010-12-23 12:21:46 -0500
committerBill Peck <bpeck@redhat.com>2011-01-03 20:05:36 -0500
commit2945ec27a6550fc2926da24f8f4736e9245d3cfe (patch)
tree1867b7966a3e578207963089b126c18ee648021f
parent6f60ec0a61e03330be7c2674a944f777b573b199 (diff)
Added test_update_status unit test.beaker-distribution-beaker-dogfood-1_1-8
Also added some helpers to data_setup Modified beaker/dogfood test to take optional arguments.
-rw-r--r--Server/bkr/server/test/data_setup.py44
-rw-r--r--Server/bkr/server/test/job_35508.xml352
-rw-r--r--Server/bkr/server/test/job_40214.xml1433
-rwxr-xr-xServer/bkr/server/test/sanitize_xml.py50
-rw-r--r--Server/bkr/server/test/test_update_status.py150
-rw-r--r--Server/setup.py.in2
-rw-r--r--Tasks/distribution/beaker/dogfood/Makefile6
-rwxr-xr-xTasks/distribution/beaker/dogfood/runtest.sh7
8 files changed, 2037 insertions, 7 deletions
diff --git a/Server/bkr/server/test/data_setup.py b/Server/bkr/server/test/data_setup.py
index 40e1a6b..5950812 100644
--- a/Server/bkr/server/test/data_setup.py
+++ b/Server/bkr/server/test/data_setup.py
@@ -27,7 +27,7 @@ from bkr.server.model import LabController, User, Group, Distro, Breed, Arch, \
SystemType, SystemStatus, Recipe, RecipeTask, RecipeTaskResult, \
Device, TaskResult, TaskStatus, Job, RecipeSet, TaskPriority, \
LabControllerDistro, Power, PowerType, TaskExcludeArch, TaskExcludeOSMajor, \
- Permission, RetentionTag, Product
+ Permission, RetentionTag, Product, Watchdog
log = logging.getLogger(__name__)
@@ -171,6 +171,13 @@ def create_task(name=None, exclude_arch=[],exclude_osmajor=[]):
return task
+def create_tasks(xmljob):
+ # Add all tasks that the xml specifies
+ for recipeset in xmljob.iter_recipeSets():
+ for recipe in recipeset.iter_recipes():
+ for task in recipe.iter_tasks():
+ create_task(name=task.name)
+
def create_recipe(system=None, distro=None, task_name=u'/distribution/reservesys',
whiteboard=None):
recipe = MachineRecipe(ttasks=1, system=system, whiteboard=whiteboard,
@@ -231,5 +238,40 @@ def mark_job_complete(job, result=u'Pass', system=None, **kwargs):
recipe.update_status()
log.debug('Marked %s as complete with result %s', job.t_id, result)
+def mark_job_waiting(job, user=None):
+ if user is None:
+ user = create_user()
+ for recipeset in job.recipesets:
+ for recipe in recipeset.recipes:
+ recipe.process()
+ recipe.queue()
+ recipe.schedule()
+ recipe.system = create_system()
+ recipe.system.user = user
+ recipe.watchdog = Watchdog(system=recipe.system)
+ recipe.waiting()
+
+def playback_task_results(task, xmltask):
+ # Start task
+ task.start()
+ # Record Result
+ task._result(xmltask.result,'/',0,'(%s)' % xmltask.result)
+ # Stop task
+ if xmltask.status == u'Aborted':
+ task.abort()
+ elif xmltask.status == u'Cancelled':
+ task.cancel()
+ else:
+ task.stop()
+
+def playback_job_results(job, xmljob):
+ for i, xmlrecipeset in enumerate(xmljob.iter_recipeSets()):
+ for j, xmlrecipe in enumerate(xmlrecipeset.iter_recipes()):
+ for l, xmlguest in enumerate(xmlrecipe.iter_guests()):
+ for k, xmltask in enumerate(xmlguest.iter_tasks()):
+ playback_task_results(job.recipesets[i].recipes[j].guests[l].tasks[k], xmltask)
+ for k, xmltask in enumerate(xmlrecipe.iter_tasks()):
+ playback_task_results(job.recipesets[i].recipes[j].tasks[k], xmltask)
+
def create_device(**kw):
device = Device(**kw)
diff --git a/Server/bkr/server/test/job_35508.xml b/Server/bkr/server/test/job_35508.xml
new file mode 100644
index 0000000..400cddd
--- /dev/null
+++ b/Server/bkr/server/test/job_35508.xml
@@ -0,0 +1,352 @@
+<job result="Fail" status="Completed">
+ <whiteboard/>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task3" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Fail" status="Aborted"/>
+ <task name="/fake/Task/task3" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+</job>
+
diff --git a/Server/bkr/server/test/job_40214.xml b/Server/bkr/server/test/job_40214.xml
new file mode 100644
index 0000000..42dea7f
--- /dev/null
+++ b/Server/bkr/server/test/job_40214.xml
@@ -0,0 +1,1433 @@
+<job result="Fail" status="Completed">
+ <whiteboard/>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task16" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task16" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task16" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task10" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task11" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task12" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task13" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task14" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task15" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task16" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task17" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task18" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task19" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task20" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task21" result="Warn" status="Aborted"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task16" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Aborted"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task3" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task23" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task24" result="Fail" status="Completed"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task3" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task23" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task24" result="Fail" status="Completed"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task15" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task16" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task3" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <guestrecipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Fail" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task23" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task24" result="Fail" status="Completed"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task3" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <guestrecipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task23" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task24" result="Fail" status="Completed"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Fail" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <guestrecipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task3" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task23" result="Fail" status="Completed"/>
+ <task name="/fake/Task/task24" result="Pass" status="Completed"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Pass" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <guestrecipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task3" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <guestrecipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task10" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task23" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task24" result="Pass" status="Completed"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task13" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Pass" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <guestrecipe result="Warn" status="Cancelled" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task1" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task2" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task4" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task5" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task6" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task7" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task8" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <guestrecipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task11" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </guestrecipe>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task22" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task25" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task23" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task24" result="Pass" status="Completed"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task21" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Completed"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe result="Warn" status="Completed" whiteboard="">
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5"/>
+ </distroRequires>
+ <hostRequires/>
+ <task name="/fake/Task/task0" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task1" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task2" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task4" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task5" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task6" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task7" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task8" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task9" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task10" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task11" result="Pass" status="Completed"/>
+ <task name="/fake/Task/task12" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task13" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task14" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task15" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task16" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task17" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task18" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task19" result="Warn" status="Cancelled"/>
+ <task name="/fake/Task/task20" result="Warn" status="Cancelled"/>
+ </recipe>
+ </recipeSet>
+</job>
+
diff --git a/Server/bkr/server/test/sanitize_xml.py b/Server/bkr/server/test/sanitize_xml.py
new file mode 100755
index 0000000..8ae1970
--- /dev/null
+++ b/Server/bkr/server/test/sanitize_xml.py
@@ -0,0 +1,50 @@
+#!/usr/bin/python
+#Simple helper to remove confidential data from xml results
+
+import sys
+import xml.dom.minidom
+
+tasks = {}
+count = 0
+doc = xml.dom.minidom.Document()
+oldjob = xml.dom.minidom.parseString(open(sys.argv[1]).read()).getElementsByTagName('job')[0]
+newjob = doc.createElement('job')
+
+def handle_recipe(element, node):
+ global count
+ new_r = doc.createElement(element)
+ new_r.setAttribute('result', node.getAttribute('result'))
+ new_r.setAttribute('status', node.getAttribute('status'))
+ new_r.setAttribute('whiteboard', '')
+ new_dr = doc.createElement('distroRequires')
+ new_dn = doc.createElement('distro_name')
+ new_dn.setAttribute('op','=')
+ new_dn.setAttribute('value','BlueShoeLinux5-5')
+ new_dr.appendChild(new_dn)
+ new_r.appendChild(new_dr)
+ new_r.appendChild(doc.createElement('hostRequires'))
+ for child in node.childNodes:
+ if child.nodeName == 'guestrecipe':
+ new_r.appendChild(handle_recipe('guestrecipe', child))
+ if child.nodeName == 'task':
+ new_t = doc.createElement('task')
+ if child.getAttribute('name') not in tasks:
+ tasks[child.getAttribute('name')] = '/fake/Task/task%s' % count
+ count += 1
+ new_t.setAttribute('name', tasks[child.getAttribute('name')])
+ new_t.setAttribute('result', child.getAttribute('result'))
+ new_t.setAttribute('status', child.getAttribute('status'))
+ new_r.appendChild(new_t)
+ return new_r
+
+newjob.setAttribute('result', oldjob.getAttribute('result'))
+newjob.setAttribute('status', oldjob.getAttribute('status'))
+newjob.appendChild(doc.createElement('whiteboard'))
+for old_rs in oldjob.getElementsByTagName('recipeSet'):
+ new_rs = doc.createElement('recipeSet')
+ for child in old_rs.childNodes:
+ if child.nodeName == 'recipe':
+ new_r = handle_recipe('recipe', child)
+ new_rs.appendChild(new_r)
+ newjob.appendChild(new_rs)
+print newjob.toprettyxml()
diff --git a/Server/bkr/server/test/test_update_status.py b/Server/bkr/server/test/test_update_status.py
new file mode 100644
index 0000000..48cee99
--- /dev/null
+++ b/Server/bkr/server/test/test_update_status.py
@@ -0,0 +1,150 @@
+
+import unittest
+import xmltramp
+import pkg_resources
+from turbogears.database import session
+from bkr.server.jobxml import XmlJob
+from bkr.server.bexceptions import BX
+from bkr.server.test import data_setup
+from bkr.server.model import TaskStatus, Watchdog
+
+class TestUpdateStatus(unittest.TestCase):
+
+ def setUp(self):
+ from bkr.server.jobs import Jobs
+ self.controller = Jobs()
+ self.user = data_setup.create_user()
+ data_setup.create_distro(name=u'BlueShoeLinux5-5')
+ data_setup.create_task(name=u'/distribution/install')
+ session.flush()
+
+ def test_abort_recipe_bubbles_status_to_job(self):
+ xmljob = XmlJob(xmltramp.parse('''
+ <job>
+ <whiteboard>job </whiteboard>
+ <recipeSet>
+ <recipe>
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5" />
+ </distroRequires>
+ <hostRequires/>
+ <task name="/distribution/install" role="STANDALONE">
+ <params/>
+ </task>
+ </recipe>
+ </recipeSet>
+ <recipeSet>
+ <recipe>
+ <distroRequires>
+ <distro_name op="=" value="BlueShoeLinux5-5" />
+ </distroRequires>
+ <hostRequires/>
+ <task name="/distribution/install" role="STANDALONE">
+ <params/>
+ </task>
+ </recipe>
+ </recipeSet>
+ </job>
+ '''))
+ waiting = TaskStatus.by_name(u'Waiting')
+ aborted = TaskStatus.by_name(u'Aborted')
+ job = self.controller.process_xmljob(xmljob, self.user)
+ session.flush()
+ for recipeset in job.recipesets:
+ for recipe in recipeset.recipes:
+ recipe.process()
+ recipe.queue()
+ recipe.schedule()
+ recipe.waiting()
+
+ # Abort the first recipe.
+ job.recipesets[0].recipes[0].abort()
+
+ # Verify that it and its children are aborted.
+ self.assertEquals(job.recipesets[0].recipes[0].status, aborted)
+ for task in job.recipesets[0].recipes[0].tasks:
+ self.assertEquals(task.status, aborted)
+
+ # Verify that the second recipe and its children are still waiting.
+ self.assertEquals(job.recipesets[1].recipes[0].status, waiting)
+ for task in job.recipesets[1].recipes[0].tasks:
+ self.assertEquals(task.status, waiting)
+
+ # Verify that the job still shows waiting.
+ self.assertEquals(job.status, waiting)
+
+ # Abort the second recipe now.
+ job.recipesets[1].recipes[0].abort()
+
+ # Verify that the whole job shows aborted now.
+ self.assertEquals(job.status, aborted)
+
+ def test_update_status_can_be_roundtripped_35508(self):
+ complete_job_xml = pkg_resources.resource_string('bkr.server.test', 'job_35508.xml')
+ xmljob = XmlJob(xmltramp.parse(complete_job_xml))
+
+ data_setup.create_tasks(xmljob)
+
+ # Import the job xml
+ job = self.controller.process_xmljob(xmljob, self.user)
+ session.flush()
+
+ # Mark job waiting
+ data_setup.mark_job_waiting(job, self.user)
+ session.flush()
+
+ # watchdog's should exist
+ self.assertNotEqual(Watchdog.query().count(), 0)
+
+ # Play back the original jobs results and status
+ data_setup.playback_job_results(job, xmljob)
+ session.flush()
+
+ # Verify that the original status and results match
+ self.assertEquals(xmljob.wrappedEl('status'), job.status.status)
+ self.assertEquals(xmljob.wrappedEl('result'), job.result.result)
+ for i, recipeset in enumerate(xmljob.iter_recipeSets()):
+ for j, recipe in enumerate(recipeset.iter_recipes()):
+ self.assertEquals(recipe.wrappedEl('status'), job.recipesets[i].recipes[j].status.status)
+ self.assertEquals(recipe.wrappedEl('result'), job.recipesets[i].recipes[j].result.result)
+ for k, task in enumerate(recipe.iter_tasks()):
+ self.assertEquals(task.status, job.recipesets[i].recipes[j].tasks[k].status.status)
+ self.assertEquals(task.result, job.recipesets[i].recipes[j].tasks[k].result.result)
+
+ # No watchdog's should exist when the job is complete
+ self.assertEquals(Watchdog.query().count(), 0)
+
+ def test_update_status_can_be_roundtripped_40214(self):
+ complete_job_xml = pkg_resources.resource_string('bkr.server.test', 'job_40214.xml')
+ xmljob = XmlJob(xmltramp.parse(complete_job_xml))
+
+ data_setup.create_tasks(xmljob)
+
+ # Import the job xml
+ job = self.controller.process_xmljob(xmljob, self.user)
+ session.flush()
+
+ # Mark job waiting
+ data_setup.mark_job_waiting(job, self.user)
+ session.flush()
+
+ # watchdog's should exist
+ self.assertNotEqual(Watchdog.query().count(), 0)
+
+ # Play back the original jobs results and status
+ data_setup.playback_job_results(job, xmljob)
+ session.flush()
+
+ # Verify that the original status and results match
+ self.assertEquals(xmljob.wrappedEl('status'), job.status.status)
+ self.assertEquals(xmljob.wrappedEl('result'), job.result.result)
+ for i, recipeset in enumerate(xmljob.iter_recipeSets()):
+ for j, recipe in enumerate(recipeset.iter_recipes()):
+ self.assertEquals(recipe.wrappedEl('status'), job.recipesets[i].recipes[j].status.status)
+ self.assertEquals(recipe.wrappedEl('result'), job.recipesets[i].recipes[j].result.result)
+ for k, task in enumerate(recipe.iter_tasks()):
+ self.assertEquals(task.status, job.recipesets[i].recipes[j].tasks[k].status.status)
+ self.assertEquals(task.result, job.recipesets[i].recipes[j].tasks[k].result.result)
+
+ # No watchdog's should exist when the job is complete
+ self.assertEquals(Watchdog.query().count(), 0)
diff --git a/Server/setup.py.in b/Server/setup.py.in
index 637675d..09d97c7 100644
--- a/Server/setup.py.in
+++ b/Server/setup.py.in
@@ -204,6 +204,8 @@ setup(
'bkr.server.config': ['*.cfg'],
'bkr.server.templates': ['*.kid'],
'bkr.server.test': ['complete-job.xml'],
+ 'bkr.server.test': ['job_35508.xml'],
+ 'bkr.server.test': ['job_40214.xml'],
'bkr.server.test.selenium': ['*.rpm', '*.csv'],
},
keywords=[
diff --git a/Tasks/distribution/beaker/dogfood/Makefile b/Tasks/distribution/beaker/dogfood/Makefile
index 8dbcbfd..c1f093d 100644
--- a/Tasks/distribution/beaker/dogfood/Makefile
+++ b/Tasks/distribution/beaker/dogfood/Makefile
@@ -63,10 +63,14 @@ $(METADATA): Makefile
@echo "License: GPL-2" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Description: Runs Beaker's internal test suite" >> $(METADATA)
- @echo "TestTime: 30m" >> $(METADATA)
+ @echo "TestTime: 4h" >> $(METADATA)
@echo "RunFor: $(PACKAGE_NAME)-server" >> $(METADATA)
@echo "Requires: $(PACKAGE_NAME)-server" >> $(METADATA)
@echo "Requires: python-nose" >> $(METADATA)
@echo "Requires: java-1.6.0-openjdk" >> $(METADATA)
+ @echo "Environment: BEAKER_SERVER_BASE_URL=http://localhost/bkr/" >> $(METADATA)
+# @echo "Environment: BEAKER_SKIP_INIT_DB=1" >> $(METADATA)
+ @echo "Environment: BEAKER_CONFIG_FILE=/etc/beaker/server.cfg" >> $(METADATA)
+ @echo "Environment: NOSEARGS=bkr.server" >> $(METADATA)
rhts-lint $(METADATA)
diff --git a/Tasks/distribution/beaker/dogfood/runtest.sh b/Tasks/distribution/beaker/dogfood/runtest.sh
index 01a9fde..ba56ce9 100755
--- a/Tasks/distribution/beaker/dogfood/runtest.sh
+++ b/Tasks/distribution/beaker/dogfood/runtest.sh
@@ -15,8 +15,5 @@
#
# Author: Dan Callaghan <dcallagh@redhat.com>
-export BEAKER_SERVER_BASE_URL="http://localhost/bkr/"
-export BEAKER_SKIP_INIT_DB=1
-export BEAKER_CONFIG_FILE=/etc/beaker/server.cfg
-
-rhts-run-simple-test $TEST 'nosetests -v bkr.server'
+rhts-run-simple-test $TEST/beakerd_stop "/sbin/service beakerd stop"
+rhts-run-simple-test $TEST "nosetests -v $NOSEARGS"