267
267
# Restore subprocess.call
268
268
subprocess.call = subprocess_call
270
def test_reorder(self):
271
'''Test object reordering'''
272
# We don't care about AR_EXTRACT testing, which is done in test_extract
273
config.AR_EXTRACT = ''
275
# ExpandArgsMore does the same as ExpandArgs
276
with ExpandArgsMore(['foo', '-bar'] + self.arg_files + [self.tmpfile('liby', Lib('y'))]) as args:
277
self.assertRelEqual(args, ['foo', '-bar'] + self.files + self.liby_files + self.libx_files)
279
# Use an order containing object files from libraries
280
order_files = [self.libx_files[1], self.libx_files[0], self.liby_files[2], self.files[1]]
281
order = [os.path.splitext(os.path.basename(f))[0] for f in order_files]
282
args.reorder(order[:2] + ['unknown'] + order[2:])
284
# self.files has objects at #1, #2, #4
285
self.assertRelEqual(args[:3], ['foo', '-bar'] + self.files[:1])
286
self.assertRelEqual(args[3:7], order_files)
287
self.assertRelEqual(args[7:9], [self.files[2], self.files[4]])
288
self.assertRelEqual(args[9:11], self.liby_files[:2])
289
self.assertRelEqual(args[11:12], [self.libx_files[2]])
290
self.assertRelEqual(args[12:14], [self.files[3], self.files[5]])
291
self.assertRelEqual(args[14:], [self.liby_files[3]])
270
293
if __name__ == '__main__':
271
294
unittest.main(testRunner=MozTestRunner())