mirror of
				https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
				synced 2025-10-31 00:24:06 +00:00 
			
		
		
		
	autopkgtest: Request separate tests for linux-meta* triggers
If a package gets triggered by several sources, we can ordinarily run just one test for all triggers. But for proposed kernels we want to run a separate test for each, so that the test can run under that particular kernel.
This commit is contained in:
		
							parent
							
								
									16f4d7c8b2
								
							
						
					
					
						commit
						2aa0948250
					
				| @ -462,12 +462,23 @@ class AutoPackageTest(object): | |||||||
|             return res |             return res | ||||||
| 
 | 
 | ||||||
|         def _trigsources(verinfo): |         def _trigsources(verinfo): | ||||||
|             res = set() |             '''Calculate the triggers for a given verinfo map | ||||||
|  | 
 | ||||||
|  |             verinfo is ver -> arch -> {(triggering-src1, ver1), ...}, i. e. an | ||||||
|  |             entry of self.requested_tests[arch] | ||||||
|  | 
 | ||||||
|  |             Return pair of ({kernel_trigger1, ...}, {nonkernel_trigger1, ...}) sets. | ||||||
|  |             ''' | ||||||
|  |             kernel_triggers = set() | ||||||
|  |             nonkernel_triggers = set() | ||||||
|             for archinfo in verinfo.values(): |             for archinfo in verinfo.values(): | ||||||
|                 for triggers in archinfo.values(): |                 for triggers in archinfo.values(): | ||||||
|                     for (t, v) in triggers: |                     for (t, v) in triggers: | ||||||
|                         res.add(t) |                         if t.startswith('linux-meta'): | ||||||
|             return res |                             kernel_triggers.add(t) | ||||||
|  |                         else: | ||||||
|  |                             nonkernel_triggers.add(t) | ||||||
|  |             return (kernel_triggers, nonkernel_triggers) | ||||||
| 
 | 
 | ||||||
|         # build per-queue request strings for new test requests |         # build per-queue request strings for new test requests | ||||||
|         # TODO: Once we support version constraints in AMQP requests, add them |         # TODO: Once we support version constraints in AMQP requests, add them | ||||||
| @ -477,8 +488,17 @@ class AutoPackageTest(object): | |||||||
|             requests = [] |             requests = [] | ||||||
|             for pkg, verinfo in self.requested_tests.items(): |             for pkg, verinfo in self.requested_tests.items(): | ||||||
|                 if arch in _arches(verinfo): |                 if arch in _arches(verinfo): | ||||||
|                     params = {'triggers': sorted(_trigsources(verinfo))} |                     # if a package gets triggered by several sources, we can | ||||||
|                     requests.append((pkg, json.dumps(params))) |                     # run just one test for all triggers; but for proposed | ||||||
|  |                     # kernels we want to run a separate test for each, so that | ||||||
|  |                     # the test runs under that particular kernel | ||||||
|  |                     kernel_triggers, other_triggers = _trigsources(verinfo) | ||||||
|  |                     for kt in sorted(kernel_triggers): | ||||||
|  |                         params = {'triggers': [kt]} | ||||||
|  |                         requests.append((pkg, json.dumps(params))) | ||||||
|  |                     if other_triggers: | ||||||
|  |                         params = {'triggers': sorted(other_triggers)} | ||||||
|  |                         requests.append((pkg, json.dumps(params))) | ||||||
|             arch_queues[arch] = ('debci-%s-%s' % (self.series, arch), requests) |             arch_queues[arch] = ('debci-%s-%s' % (self.series, arch), requests) | ||||||
| 
 | 
 | ||||||
|         amqp_url = self.britney.options.adt_amqp |         amqp_url = self.britney.options.adt_amqp | ||||||
|  | |||||||
| @ -1111,6 +1111,22 @@ lightgreen 1 i386 green 3 | |||||||
|              'linux-meta-lts-grumpy': (False, {'fancy 1': {'amd64': 'RUNNING', 'i386': 'RUNNING'}}) |              'linux-meta-lts-grumpy': (False, {'fancy 1': {'amd64': 'RUNNING', 'i386': 'RUNNING'}}) | ||||||
|             }) |             }) | ||||||
| 
 | 
 | ||||||
|  |         # one separate test should be triggered for each kernel | ||||||
|  |         self.assertEqual( | ||||||
|  |             self.amqp_requests, | ||||||
|  |             set(['debci-series-i386:fancy {"triggers": ["linux-meta"]}', | ||||||
|  |                  'debci-series-amd64:fancy {"triggers": ["linux-meta"]}', | ||||||
|  |                  'debci-series-i386:fancy {"triggers": ["linux-meta-lts-grumpy"]}', | ||||||
|  |                  'debci-series-amd64:fancy {"triggers": ["linux-meta-lts-grumpy"]}'])) | ||||||
|  | 
 | ||||||
|  |         # ... and that they get recorded as pending | ||||||
|  |         expected_pending = '''fancy 1 amd64 linux-meta 1 | ||||||
|  | fancy 1 amd64 linux-meta-lts-grumpy 1 | ||||||
|  | fancy 1 i386 linux-meta 1 | ||||||
|  | fancy 1 i386 linux-meta-lts-grumpy 1 | ||||||
|  | ''' | ||||||
|  |         self.assertEqual(self.pending_requests, expected_pending) | ||||||
|  | 
 | ||||||
|     def test_kernel_triggers_lxc(self): |     def test_kernel_triggers_lxc(self): | ||||||
|         '''LXC test gets triggered by kernel uploads''' |         '''LXC test gets triggered by kernel uploads''' | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user