Merge lp:~al-maisan/launchpad/buildd-testfix into lp:launchpad

Proposed by Muharem Hrnjadovic
Status: Merged
Approved by: Julian Edwards
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~al-maisan/launchpad/buildd-testfix
Merge into: lp:launchpad
Diff against target: 151 lines (+17/-27)
2 files modified
lib/lp/soyuz/doc/buildd-slavescanner.txt (+15/-26)
lib/lp/soyuz/model/build.py (+2/-1)
To merge this branch: bzr merge lp:~al-maisan/launchpad/buildd-testfix
Reviewer Review Type Date Requested Status
Julian Edwards (community) code Approve
Review via email: mp+15964@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Muharem Hrnjadovic (al-maisan) wrote :

testfix for revno: 10018 that broke buildd-slavescanner.txt

The following tests pass:

    bin/test -vv -t build

Revision history for this message
Julian Edwards (julian-edwards) wrote :

Looks good, thanks.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/soyuz/doc/buildd-slavescanner.txt'
2--- lib/lp/soyuz/doc/buildd-slavescanner.txt 2009-12-03 14:38:48 +0000
3+++ lib/lp/soyuz/doc/buildd-slavescanner.txt 2009-12-10 17:10:27 +0000
4@@ -236,8 +236,8 @@
5
6 Do the test execution:
7
8+ >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem3)
9 >>> buildergroup.updateBuild(bqItem3)
10- >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem3)
11 >>> build.builder is not None
12 True
13 >>> build.datebuilt is not None
14@@ -251,10 +251,6 @@
15 >>> build.buildstate.title
16 'Failed to build'
17
18-Cleanup in preparation for the next test:
19-
20- bqItem3.destroySelf()
21-
22 WAITING - DEPWAIT -> a required dependency is missing, again notice
23 from builder, but Build.buildstate has the right state:
24
25@@ -270,9 +266,9 @@
26
27 Do the test execution:
28
29+ >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem4)
30 >>> buildergroup.updateBuild(bqItem4)
31 CRITICAL:root:***** bob is MANUALDEPWAIT *****
32- >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem4)
33 >>> build.builder is not None
34 True
35 >>> build.datebuilt is not None
36@@ -288,10 +284,6 @@
37 >>> build.buildstate.title
38 'Dependency wait'
39
40-Cleanup in preparation for the next test:
41-
42- bqItem4.destroySelf()
43-
44 WAITING - CHROOTFAIL -> the Chroot for this distroseries is damage, nor
45 builder, but right state stored in Build entry:
46
47@@ -303,9 +295,9 @@
48
49 >>> bqItem5.builder.setSlaveForTesting(
50 ... WaitingSlave('BuildStatus.CHROOTFAIL'))
51+ >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem5)
52 >>> buildergroup.updateBuild(bqItem5)
53 CRITICAL:root:***** bob is CHROOTWAIT *****
54- >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem5)
55 >>> build.builder is not None
56 True
57 >>> build.datebuilt is not None
58@@ -319,10 +311,6 @@
59 >>> build.buildstate.title
60 'Chroot problem'
61
62-Cleanup in preparation for the next test:
63-
64- bqItem5.destroySelf()
65-
66 WAITING - BUILDERFAIL -> builder has failed by internal error, job is
67 available for next build round:
68
69@@ -451,8 +439,8 @@
70 (precisely on binary upload time), the build will be considered
71 FAILEDTOUPLOAD:
72
73+ >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem10)
74 >>> buildergroup.updateBuild(bqItem10)
75- >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem10)
76 >>> build.builder is not None
77 True
78 >>> build.datebuilt is not None
79@@ -509,10 +497,6 @@
80 that can be sorted by modifying the execution order of procedures
81 inside Buildergroup.buildStatus_OK method.
82
83-Cleanup in preparation for the next test:
84-
85- bqItem10.destroySelf()
86-
87
88 === Successfully collected and uploaded (FULLYBUILT) ===
89
90@@ -569,10 +553,6 @@
91 >>> build.upload_log is None
92 True
93
94-Cleanup in preparation for the next test:
95-
96- bqItem10.destroySelf()
97-
98 WAITING -> GIVENBACK - slave requested build record to be rescheduled.
99
100 >>> bqItem11 = a_build.createBuildQueueEntry()
101@@ -625,10 +605,17 @@
102 ...
103 AssertionError: i386 build of mozilla-firefox 0.9 in ubuntu warty RELEASE (2) can not be built for pocket RELEASE: illegal status
104
105+We need 'a_builder' released (from 'bqItem12') so it can be associated with
106+'bqItem10' below.
107+
108+ >>> bqItem12.builder = None
109
110 The buildlog is collected and compressed locally using gzip algorithm,
111 let's see how this method works:
112
113+ >>> bqItem10 = getUtility(IBuildSet).getByBuildID(
114+ ... 6).createBuildQueueEntry()
115+ >>> setupBuildQueue(bqItem10, a_builder)
116 >>> bqItem10.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))
117
118 Before collecting and processing the buildlog we will store the files
119@@ -740,6 +727,9 @@
120 Remove build upload results root
121
122 >>> shutil.rmtree(config.builddmaster.root)
123+ >>> bqItem10.destroySelf()
124+ >>> setupBuildQueue(bqItem12, a_builder)
125+
126
127 == Setup chroots ==
128
129@@ -1283,8 +1273,7 @@
130
131 >>> cprov_archive.private = False
132 >>> cprov_archive.require_virtualized = True
133- >>> build = getUtility(IBuildSet).getByQueueEntry(candidate)
134- >>> for build_file in build.sourcepackagerelease.files:
135+ >>> for build_file in a_build.sourcepackagerelease.files:
136 ... removeSecurityProxy(build_file).libraryfile.restricted = False
137 >>> mark_archive = getUtility(IPersonSet).getByName('mark').archive
138
139
140=== modified file 'lib/lp/soyuz/model/build.py'
141--- lib/lp/soyuz/model/build.py 2009-11-24 07:02:21 +0000
142+++ lib/lp/soyuz/model/build.py 2009-12-10 17:10:27 +0000
143@@ -1232,6 +1232,7 @@
144 result_set = store.find(
145 Build,
146 BuildPackageJob.build == Build.id,
147- BuildPackageJob.job == queue_entry.job)
148+ BuildPackageJob.job == BuildQueue.jobID,
149+ BuildQueue.job == queue_entry.job)
150
151 return result_set.one()