Merge pull request #595 from mplegendre/bugfix/issue-573-concretize-compilers
Bugfix/issue 573 concretize compilers
This commit is contained in:
		@@ -241,7 +241,7 @@ def concretize_compiler(self, spec):
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
        #Find the another spec that has a compiler, or the root if none do
 | 
			
		||||
        other_spec = find_spec(spec, lambda(x) : x.compiler)
 | 
			
		||||
        other_spec = spec if spec.compiler else find_spec(spec, lambda(x) : x.compiler)
 | 
			
		||||
        if not other_spec:
 | 
			
		||||
            other_spec = spec.root
 | 
			
		||||
        other_compiler = other_spec.compiler
 | 
			
		||||
@@ -288,7 +288,7 @@ def find_spec(spec, condition):
 | 
			
		||||
    if condition(spec):
 | 
			
		||||
        return spec
 | 
			
		||||
 | 
			
		||||
    return None   # Nohting matched the condition.
 | 
			
		||||
    return None   # Nothing matched the condition.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def cmp_specs(lhs, rhs):
 | 
			
		||||
 
 | 
			
		||||
@@ -309,3 +309,10 @@ def test_find_spec_none(self):
 | 
			
		||||
                      Spec('d')),
 | 
			
		||||
                 Spec('e'))
 | 
			
		||||
        self.assertEqual(None, find_spec(s['b'], lambda s: '+foo' in s))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def test_compiler_child(self):
 | 
			
		||||
        s = Spec('mpileaks%clang ^dyninst%gcc')
 | 
			
		||||
        s.concretize()
 | 
			
		||||
        self.assertTrue(s['mpileaks'].satisfies('%clang'))
 | 
			
		||||
        self.assertTrue(s['dyninst'].satisfies('%gcc'))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user