1
|
from haizea.core.leases import LeaseWorkload, LeaseAnnotation, LeaseAnnotations, UnmanagedSoftwareEnvironment, DiskImageSoftwareEnvironment, Timestamp
|
2
|
from mx.DateTime import Time, DateTime
|
3
|
from common import *
|
4
|
from haizea.common.utils import reset_lease_id_counter
|
5
|
|
6
|
def get_config():
|
7
|
return load_configfile("base_config_simulator.conf")
|
8
|
|
9
|
def test_annotation1():
|
10
|
reset_lease_id_counter()
|
11
|
lease_workload = LeaseWorkload.from_xml_file("preemption.lwf")
|
12
|
annotations = LeaseAnnotations.from_xml_file("annotations1.lwfa")
|
13
|
leases = lease_workload.get_leases()
|
14
|
|
15
|
annotations.apply_to_leases(leases)
|
16
|
|
17
|
lease1 = leases[0]
|
18
|
lease2 = leases[1]
|
19
|
|
20
|
assert lease1.start.requested == DateTime(0, 1, 1, 10)
|
21
|
assert lease1.deadline == DateTime(0, 1, 1, 20)
|
22
|
assert isinstance(lease1.software, UnmanagedSoftwareEnvironment)
|
23
|
assert lease1.extras["one"] == "1"
|
24
|
assert lease1.extras["two"] == "2"
|
25
|
|
26
|
assert lease2.start.requested == Timestamp.UNSPECIFIED
|
27
|
assert lease2.deadline == None
|
28
|
assert isinstance(lease2.software, DiskImageSoftwareEnvironment)
|
29
|
assert lease2.software.image_id == "annotation.img"
|
30
|
assert lease2.software.image_size == 4096
|
31
|
assert lease2.extras["three"] == "3"
|
32
|
assert lease2.extras["four"] == "4"
|
33
|
|
34
|
def test_annotation_simul():
|
35
|
c= get_config()
|
36
|
c.set("tracefile", "annotationfile", "annotations2.lwfa")
|
37
|
h = load_tracefile(c, PREEMPTION_TRACE)
|
38
|
h.start()
|
39
|
|
40
|
lease1 = h.scheduler.completed_leases.get_lease(1)
|
41
|
lease2 = h.scheduler.completed_leases.get_lease(2)
|
42
|
|
43
|
assert lease1.start.requested == DateTime(2006, 11, 25, 14)
|
44
|
assert lease1.deadline == None
|
45
|
assert isinstance(lease1.software, DiskImageSoftwareEnvironment)
|
46
|
assert lease1.software.image_id == "annotation1.img"
|
47
|
assert lease1.software.image_size == 4096
|
48
|
assert lease1.extras["five"] == "5"
|
49
|
assert lease1.extras["six"] == "6"
|
50
|
|
51
|
assert lease2.start.requested == DateTime(2006, 11, 25, 15, 15)
|
52
|
assert lease2.deadline == None
|
53
|
assert isinstance(lease2.software, DiskImageSoftwareEnvironment)
|
54
|
assert lease2.software.image_id == "annotation2.img"
|
55
|
assert lease2.software.image_size == 4096
|
56
|
assert lease2.extras["seven"] == "7"
|
57
|
assert lease2.extras["eight"] == "8"
|