diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-07-11 11:07:57 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-12 23:10:15 +0100 |
commit | 89f8348dc58ce69ed566e02acfe2dfbc29cd4131 (patch) | |
tree | 4d60d0105442406e1b507510c37cda9b875187d7 | |
parent | 5c91537ab250e823b362bf5cc94760d26c6a4429 (diff) | |
download | poky-89f8348dc58ce69ed566e02acfe2dfbc29cd4131.tar.gz |
scripts/contrib/devtool-stress: skip incompatible recipes
If devtool returns exit code 4 then record the recipes as "skipped"
rather than "failed" - these are recipes we know cannot work (usually
because they don't provide any source).
(From OE-Core rev: 8fc109f1cb6eb437c12d2d11a6937de6f035e296)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-x | scripts/contrib/devtool-stress.py | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/scripts/contrib/devtool-stress.py b/scripts/contrib/devtool-stress.py index ab77a2d1f6..5fff257f10 100755 --- a/scripts/contrib/devtool-stress.py +++ b/scripts/contrib/devtool-stress.py | |||
@@ -121,14 +121,18 @@ def stress_extract(args): | |||
121 | sys.stdout.write('Testing %s ' % (pn + ' ').ljust(40, '.')) | 121 | sys.stdout.write('Testing %s ' % (pn + ' ').ljust(40, '.')) |
122 | sys.stdout.flush() | 122 | sys.stdout.flush() |
123 | failed = False | 123 | failed = False |
124 | skipped = None | ||
124 | 125 | ||
125 | srctree = os.path.join(tmpdir, pn) | 126 | srctree = os.path.join(tmpdir, pn) |
126 | try: | 127 | try: |
127 | bb.process.run('devtool extract %s %s' % (pn, srctree)) | 128 | bb.process.run('devtool extract %s %s' % (pn, srctree)) |
128 | except bb.process.CmdError as exc: | 129 | except bb.process.ExecutionError as exc: |
129 | failed = True | 130 | if exc.exitcode == 4: |
130 | with open('stress_%s_extract.log' % pn, 'w') as f: | 131 | skipped = 'incompatible' |
131 | f.write(str(exc)) | 132 | else: |
133 | failed = True | ||
134 | with open('stress_%s_extract.log' % pn, 'w') as f: | ||
135 | f.write(str(exc)) | ||
132 | 136 | ||
133 | if os.path.exists(srctree): | 137 | if os.path.exists(srctree): |
134 | shutil.rmtree(srctree) | 138 | shutil.rmtree(srctree) |
@@ -136,6 +140,8 @@ def stress_extract(args): | |||
136 | if failed: | 140 | if failed: |
137 | print('failed') | 141 | print('failed') |
138 | failures += 1 | 142 | failures += 1 |
143 | elif skipped: | ||
144 | print('skipped (%s)' % skipped) | ||
139 | else: | 145 | else: |
140 | print('ok') | 146 | print('ok') |
141 | except KeyboardInterrupt: | 147 | except KeyboardInterrupt: |
@@ -162,29 +168,34 @@ def stress_modify(args): | |||
162 | sys.stdout.flush() | 168 | sys.stdout.flush() |
163 | failed = False | 169 | failed = False |
164 | reset = True | 170 | reset = True |
171 | skipped = None | ||
165 | 172 | ||
166 | srctree = os.path.join(tmpdir, pn) | 173 | srctree = os.path.join(tmpdir, pn) |
167 | try: | 174 | try: |
168 | bb.process.run('devtool modify -x %s %s' % (pn, srctree)) | 175 | bb.process.run('devtool modify -x %s %s' % (pn, srctree)) |
169 | except bb.process.CmdError as exc: | 176 | except bb.process.ExecutionError as exc: |
170 | with open('stress_%s_modify.log' % pn, 'w') as f: | 177 | if exc.exitcode == 4: |
171 | f.write(str(exc)) | 178 | skipped = 'incompatible' |
172 | failed = 'modify' | 179 | else: |
173 | reset = False | 180 | with open('stress_%s_modify.log' % pn, 'w') as f: |
174 | |||
175 | if not failed: | ||
176 | try: | ||
177 | bb.process.run('bitbake -c install %s' % pn) | ||
178 | except bb.process.CmdError as exc: | ||
179 | with open('stress_%s_install.log' % pn, 'w') as f: | ||
180 | f.write(str(exc)) | 181 | f.write(str(exc)) |
181 | failed = 'build' | 182 | failed = 'modify' |
182 | if reset: | 183 | reset = False |
183 | try: | 184 | |
184 | bb.process.run('devtool reset %s' % pn) | 185 | if not skipped: |
185 | except bb.process.CmdError as exc: | 186 | if not failed: |
186 | print('devtool reset failed: %s' % str(exc)) | 187 | try: |
187 | break | 188 | bb.process.run('bitbake -c install %s' % pn) |
189 | except bb.process.CmdError as exc: | ||
190 | with open('stress_%s_install.log' % pn, 'w') as f: | ||
191 | f.write(str(exc)) | ||
192 | failed = 'build' | ||
193 | if reset: | ||
194 | try: | ||
195 | bb.process.run('devtool reset %s' % pn) | ||
196 | except bb.process.CmdError as exc: | ||
197 | print('devtool reset failed: %s' % str(exc)) | ||
198 | break | ||
188 | 199 | ||
189 | if os.path.exists(srctree): | 200 | if os.path.exists(srctree): |
190 | shutil.rmtree(srctree) | 201 | shutil.rmtree(srctree) |
@@ -192,6 +203,8 @@ def stress_modify(args): | |||
192 | if failed: | 203 | if failed: |
193 | print('failed (%s)' % failed) | 204 | print('failed (%s)' % failed) |
194 | failures += 1 | 205 | failures += 1 |
206 | elif skipped: | ||
207 | print('skipped (%s)' % skipped) | ||
195 | else: | 208 | else: |
196 | print('ok') | 209 | print('ok') |
197 | except KeyboardInterrupt: | 210 | except KeyboardInterrupt: |