Lines Matching full:self

22     def setUp(self):  argument
23 self.d = bb.data.init()
25 def setEmptyVars(self, varlist): argument
27 self.d.setVar(k, "")
29 def setValues(self, values): argument
31 self.d.setVar(k, v)
33 def assertReferences(self, refs): argument
34 self.assertEqual(self.references, refs)
36 def assertExecs(self, execs): argument
37 self.assertEqual(self.execs, execs)
39 def assertContains(self, contains): argument
40 self.assertEqual(self.contains, contains)
44 def parseExpression(self, exp): argument
45 parsedvar = self.d.expandWithRefs(exp, None)
46 self.references = parsedvar.references
48 def test_simple_reference(self): argument
49 self.setEmptyVars(["FOO"])
50 self.parseExpression("${FOO}")
51 self.assertReferences(set(["FOO"]))
53 def test_nested_reference(self): argument
54 self.setEmptyVars(["BAR"])
55 self.d.setVar("FOO", "BAR")
56 self.parseExpression("${${FOO}}")
57 self.assertReferences(set(["FOO", "BAR"]))
59 def test_python_reference(self): argument
60 self.setEmptyVars(["BAR"])
61 self.parseExpression("${@d.getVar('BAR') + 'foo'}")
62 self.assertReferences(set(["BAR"]))
66 def parseExpression(self, exp): argument
67 parsedvar = self.d.expandWithRefs(exp, None)
71 self.references = parsedvar.references
72 self.execs = parser.execs
74 def test_quotes_inside_assign(self): argument
75 self.parseExpression('foo=foo"bar"baz')
76 self.assertReferences(set([]))
78 def test_quotes_inside_arg(self): argument
79 self.parseExpression('sed s#"bar baz"#"alpha beta"#g')
80 self.assertExecs(set(["sed"]))
82 def test_arg_continuation(self): argument
83 self.parseExpression("sed -i -e s,foo,bar,g \\\n *.pc")
84 self.assertExecs(set(["sed"]))
86 def test_dollar_in_quoted(self): argument
87 self.parseExpression('sed -i -e "foo$" *.pc')
88 self.assertExecs(set(["sed"]))
90 def test_quotes_inside_arg_continuation(self): argument
91 self.setEmptyVars(["bindir", "D", "libdir"])
92 self.parseExpression("""
97 self.assertReferences(set(["bindir", "D", "libdir"]))
99 def test_assign_subshell_expansion(self): argument
100 self.parseExpression("foo=$(echo bar)")
101 self.assertExecs(set(["echo"]))
103 def test_shell_unexpanded(self): argument
104 self.setEmptyVars(["QT_BASE_NAME"])
105 self.parseExpression('echo "${QT_BASE_NAME}"')
106 self.assertExecs(set(["echo"]))
107 self.assertReferences(set(["QT_BASE_NAME"]))
109 def test_incomplete_varexp_single_quotes(self): argument
110 self.parseExpression("sed -i -e 's:IP{:I${:g' $pc")
111 self.assertExecs(set(["sed"]))
113 def test_parameter_expansion_modifiers(self): argument
118 self.parseExpression("${%s}" % name)
119 self.assertNotIn(name, self.references)
121 def test_until(self): argument
122 self.parseExpression("until false; do echo true; done")
123 self.assertExecs(set(["false", "echo"]))
124 self.assertReferences(set())
126 def test_case(self): argument
127 self.parseExpression("""
134 self.assertExecs(set(["bar"]))
135 self.assertReferences(set())
137 def test_assign_exec(self): argument
138 self.parseExpression("a=b c='foo bar' alpha 1 2 3")
139 self.assertExecs(set(["alpha"]))
141 def test_redirect_to_file(self): argument
142 self.setEmptyVars(["foo"])
143 self.parseExpression("echo foo >${foo}/bar")
144 self.assertExecs(set(["echo"]))
145 self.assertReferences(set(["foo"]))
147 def test_heredoc(self): argument
148 self.setEmptyVars(["theta"])
149 self.parseExpression("""
156 self.assertReferences(set(["theta"]))
158 def test_redirect_from_heredoc(self): argument
160 self.setEmptyVars(v)
161 self.parseExpression("""
170 self.assertReferences(set(v))
171 self.assertExecs(set(["cat"]))
173 # def test_incomplete_command_expansion(self):
174 # self.assertRaises(reftracker.ShellSyntaxError, reftracker.execs,
175 # bbvalue.shparse("cp foo`", self.d), self.d)
177 # def test_rogue_dollarsign(self):
178 # self.setValues({"D" : "/tmp"})
179 # self.parseExpression("install -d ${D}$")
180 # self.assertReferences(set(["D"]))
181 # self.assertExecs(set(["install"]))
186 def setUp(self): argument
187 self.d = bb.data.init()
189 self.context = bb.utils._context
192 self.context = builtins.__dict__
194 def parseExpression(self, exp): argument
195 parsedvar = self.d.expandWithRefs(exp, None)
199 self.references = parsedvar.references | parser.references
200 self.execs = parser.execs
201 self.contains = parser.contains
209 def test_getvar_reference(self): argument
210 self.parseExpression("d.getVar('foo')")
211 self.assertReferences(set(["foo"]))
212 self.assertExecs(set())
214 def test_getvar_computed_reference(self): argument
215 self.parseExpression("d.getVar('f' + 'o' + 'o')")
216 self.assertReferences(set())
217 self.assertExecs(set())
219 def test_getvar_exec_reference(self): argument
220 self.parseExpression("eval('d.getVar(\"foo\")')")
221 self.assertReferences(set())
222 self.assertExecs(set(["eval"]))
224 def test_var_reference(self): argument
225 self.context["foo"] = lambda x: x
226 self.setEmptyVars(["FOO"])
227 self.parseExpression("foo('${FOO}')")
228 self.assertReferences(set(["FOO"]))
229 self.assertExecs(set(["foo"]))
230 del self.context["foo"]
232 def test_var_exec(self): argument
234 self.d.setVar("do_something", "echo 'hi mom! ${FOO}'")
235 self.d.setVarFlag("do_something", etype, True)
236 self.parseExpression("bb.build.exec_func('do_something', d)")
237 self.assertReferences(set([]))
238 self.assertExecs(set(["do_something"]))
240 def test_function_reference(self): argument
241 self.context["testfunc"] = lambda msg: bb.msg.note(1, None, msg)
242 self.d.setVar("FOO", "Hello, World!")
243 self.parseExpression("testfunc('${FOO}')")
244 self.assertReferences(set(["FOO"]))
245 self.assertExecs(set(["testfunc"]))
246 del self.context["testfunc"]
248 def test_qualified_function_reference(self): argument
249 self.parseExpression("time.time()")
250 self.assertExecs(set(["time.time"]))
252 def test_qualified_function_reference_2(self): argument
253 self.parseExpression("os.path.dirname('/foo/bar')")
254 self.assertExecs(set(["os.path.dirname"]))
256 def test_qualified_function_reference_nested(self): argument
257 self.parseExpression("time.strftime('%Y%m%d',time.gmtime())")
258 self.assertExecs(set(["time.strftime", "time.gmtime"]))
260 def test_function_reference_chained(self): argument
261 self.context["testget"] = lambda: "\tstrip me "
262 self.parseExpression("testget().strip()")
263 self.assertExecs(set(["testget"]))
264 del self.context["testget"]
266 def test_contains(self): argument
267 self.parseExpression('bb.utils.contains("TESTVAR", "one", "true", "false", d)')
268 self.assertContains({'TESTVAR': {'one'}})
270 def test_contains_multi(self): argument
271 self.parseExpression('bb.utils.contains("TESTVAR", "one two", "true", "false", d)')
272 self.assertContains({'TESTVAR': {'one two'}})
274 def test_contains_any(self): argument
275 self.parseExpression('bb.utils.contains_any("TESTVAR", "hello", "true", "false", d)')
276 self.assertContains({'TESTVAR': {'hello'}})
278 def test_contains_any_multi(self): argument
279self.parseExpression('bb.utils.contains_any("TESTVAR", "one two three", "true", "false", d)')
280 self.assertContains({'TESTVAR': {'one', 'two', 'three'}})
282 def test_contains_filter(self): argument
283 self.parseExpression('bb.utils.filter("TESTVAR", "hello there world", d)')
284 self.assertContains({'TESTVAR': {'hello', 'there', 'world'}})
311 def test_python(self): argument
312 self.d.setVar("FOO", self.pydata)
313 self.setEmptyVars(["inexpand", "a", "test2", "test"])
314 self.d.setVarFlags("FOO", {
321 … deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
323self.assertEqual(deps, set(["somevar", "bar", "something", "inexpand", "test", "test2", "a"]))
359 def test_shell(self): argument
361 self.d.setVar("somevar", "heh")
362 self.d.setVar("inverted", "echo inverted...")
363 self.d.setVarFlag("inverted", "func", True)
364 self.d.setVar("FOO", self.shelldata)
365 self.d.setVarFlags("FOO", {"func": True})
366 self.setEmptyVars(execs)
368 … deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
370 self.assertEqual(deps, set(["somevar", "inverted"] + execs))
373 def test_vardeps(self): argument
374 self.d.setVar("oe_libinstall", "echo test")
375 self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
376 self.d.setVarFlag("FOO", "vardeps", "oe_libinstall")
378 … deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
380 self.assertEqual(deps, set(["oe_libinstall"]))
382 def test_vardeps_expand(self): argument
383 self.d.setVar("oe_libinstall", "echo test")
384 self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
385 self.d.setVarFlag("FOO", "vardeps", "${@'oe_libinstall'}")
387 … deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
389 self.assertEqual(deps, set(["oe_libinstall"]))
391 def test_contains_vardeps(self): argument
396 parsedvar = self.d.expandWithRefs(expr, None)
398self.assertEqual(parsedvar.contains, {'TESTVAR': {'testval2 testval3', 'anothervalue', 'somevalue'…
400 self.d.setVar('ANOTHERVAR', expr)
401 self.d.setVar('TESTVAR', 'anothervalue testval testval2')
402 …, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), self.…
403 self.assertEqual(sorted(values.splitlines()),
413self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['anothervalue', 'yetanothervalue', 'lastone…
415 def test_contains_vardeps_excluded(self): argument
418 self.d.setVar('ANOTHERVAR', varval)
419 self.d.setVar('TESTVAR', 'anothervalue testval testval2')
420 self.d.setVar('TESTVAR2', 'testval3')
421 …es = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(["TESTVAR"]),
422 self.assertEqual(sorted(values.splitlines()), sorted([varval]))
423 self.assertEqual(deps, set(["TESTVAR2"]))
424 self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
427 self.d.setVarFlag('ANOTHERVAR', 'vardepsexclude', 'TESTVAR')
428 …, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), self.…
429 self.assertEqual(sorted(values.splitlines()), sorted([varval]))
430 self.assertEqual(deps, set(["TESTVAR2"]))
431 self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
434 #def test_vardeps_wildcards(self):
435 # self.d.setVar("oe_libinstall", "echo test")
436 # self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
437 # self.d.setVarFlag("FOO", "vardeps", "oe_*")
438 # self.assertEquals(deps, set(["oe_libinstall"]))