summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/bldviewer/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/bldviewer/tests.py')
-rw-r--r--bitbake/lib/toaster/bldviewer/tests.py345
1 files changed, 0 insertions, 345 deletions
diff --git a/bitbake/lib/toaster/bldviewer/tests.py b/bitbake/lib/toaster/bldviewer/tests.py
deleted file mode 100644
index 5be0b8bb9e..0000000000
--- a/bitbake/lib/toaster/bldviewer/tests.py
+++ /dev/null
@@ -1,345 +0,0 @@
1"""
2This file demonstrates writing tests using the unittest module. These will pass
3when you run "manage.py test".
4
5Replace this with more appropriate tests for your application.
6"""
7from django.test import TestCase
8from django.test.client import Client
9from django.db.models import Count, Q
10from orm.models import Target, Recipe, Recipe_Dependency, Layer_Version, Target_Installed_Package
11from orm.models import Build, Task, Layer, Package, Package_File, LogMessage, Variable, VariableHistory
12import json, os, re, urllib, shlex
13
14
15class Tests(TestCase):
16 # fixtures = ['orm_views_testdata.json']
17
18 def setUp(self):
19 raise Exception("The %s test data is not longer valid, tests disabled" % __name__)
20
21 def test_builds(self):
22 client = Client()
23 resp = client.get('http://localhost:8000/api/1.0/builds')
24 self.assertEqual(resp.status_code, 200)
25 response = json.loads(resp.content)
26 self.assertTrue(len(json.loads(response['list'])) > 0)
27 for item in json.loads(response['list']):
28 fields = item['fields']
29 self.assertTrue(fields["machine"] == "qemux86")
30 self.assertTrue(fields["distro"] == "poky")
31 self.assertTrue(fields["image_fstypes"] == "tar.bz2 ext3")
32 self.assertTrue(fields["bitbake_version"] == "1.21.1")
33 self.assertTrue("1.5+snapshot-" in fields["distro_version"])
34 self.assertEqual(fields["outcome"], 0)
35 self.assertEqual(fields["errors_no"], 0)
36 log_path = "/tmp/log/cooker/qemux86/"
37 self.assertTrue(log_path in fields["cooker_log_path"])
38 self.assertTrue(".log" in fields["cooker_log_path"])
39
40 def test_targets(self):
41 client = Client()
42 resp = client.get('http://localhost:8000/api/1.0/targets')
43 self.assertEqual(resp.status_code, 200)
44 response = json.loads(resp.content)
45 self.assertTrue(len(json.loads(response['list'])) > 0)
46 for item in json.loads(response['list']):
47 fields = item['fields']
48 self.assertTrue(fields["is_image"] == True)
49 self.assertTrue(fields["target"] == "core-image-minimal")
50
51 def test_tasks(self):
52 client = Client()
53 resp = client.get('http://localhost:8000/api/1.0/tasks')
54 self.assertEqual(resp.status_code, 200)
55 response = json.loads(resp.content)
56 self.assertTrue(len(json.loads(response['list'])) > 0)
57 recipe_id = self.get_recipes_id("pseudo-native")
58 print recipe_id
59 for item in json.loads(response['list']):
60 fields = item['fields']
61 if fields["build"] == 1 and fields["task_name"] == "do_populate_lic_setscene" and fields["recipe"] == recipe_id and fields["task_executed"] == True:
62 self.assertTrue(fields["message"] == "recipe pseudo-native-1.5.1-r4: task do_populate_lic_setscene: Succeeded")
63 self.assertTrue(fields["cpu_usage"] == "6.3")
64 self.assertTrue(fields["disk_io"] == 124)
65 self.assertTrue(fields["script_type"] == 2)
66 self.assertTrue(fields["path_to_sstate_obj"] == "")
67 self.assertTrue(fields["elapsed_time"] == "0.103494")
68 self.assertTrue("tmp/work/i686-linux/pseudo-native/1.5.1-r4/temp/log.do_populate_lic_setscene.5867" in fields["logfile"])
69 self.assertTrue(fields["sstate_result"] == 0)
70 self.assertTrue(fields["outcome"] == 0)
71 if fields["build"] == 1 and fields["task_name"] == "do_populate_lic" and fields["recipe"] == recipe_id and fields["task_executed"] == True:
72 self.assertTrue(fields["cpu_usage"] == None)
73 self.assertTrue(fields["disk_io"] == None)
74 self.assertTrue(fields["script_type"] == 2)
75 self.assertTrue(fields["path_to_sstate_obj"] == "")
76 self.assertTrue(fields["elapsed_time"] == "0")
77 self.assertTrue(fields["logfile"], None)
78 self.assertTrue(fields["sstate_result"] == 3)
79 self.assertTrue(fields["outcome"] == 2)
80
81 def test_layers(self):
82 client = Client()
83 resp = client.get('http://localhost:8000/api/1.0/layers')
84 self.assertEqual(resp.status_code, 200)
85 response = json.loads(resp.content)
86 self.assertTrue(len(json.loads(response['list'])) > 0)
87 for item in json.loads(response['list']):
88 fields = item['fields']
89 if fields["name"] == "meta-yocto-bsp":
90 self.assertTrue(fields["local_path"].endswith("meta-yocto-bsp"))
91 self.assertTrue(fields["layer_index_url"] == "http://layers.openembedded.org/layerindex/layer/meta-yocto-bsp/")
92 elif fields["name"] == "meta":
93 self.assertTrue(fields["local_path"].endswith("/meta"))
94 self.assertTrue(fields["layer_index_url"] == "http://layers.openembedded.org/layerindex/layer/openembedded-core/")
95 elif fields["name"] == "meta-yocto":
96 self.assertTrue(fields["local_path"].endswith("/meta-yocto"))
97 self.assertTrue(fields["layer_index_url"] == "http://layers.openembedded.org/layerindex/layer/meta-yocto/")
98
99 def test_layerversions(self):
100 client = Client()
101 resp = client.get('http://localhost:8000/api/1.0/layerversions')
102 self.assertEqual(resp.status_code, 200)
103 response = json.loads(resp.content)
104 self.assertTrue(len(json.loads(response['list'])) > 0)
105 layer_id = self.get_layer_id("meta")
106 find = False
107 for item in json.loads(response['list']):
108 fields = item['fields']
109 if fields["layer"] == layer_id:
110 find = True
111 self.assertTrue(fields["build"] == 1)
112 self.assertTrue(fields["priority"] == 5)
113 self.assertTrue(fields["branch"] == "master")
114 self.assertTrue(find == True)
115
116 def test_recipes(self):
117 client = Client()
118 resp = client.get('http://localhost:8000/api/1.0/recipes')
119 self.assertEqual(resp.status_code, 200)
120 response = json.loads(resp.content)
121 self.assertTrue(len(json.loads(response['list'])) > 0)
122 find = False
123 for item in json.loads(response['list']):
124 fields = item['fields']
125 if fields["name"] == "busybox":
126 find = True
127 self.assertTrue(fields["version"] == "1.21.1-r0")
128 self.assertTrue(fields["license"] == "GPLv2 & bzip2")
129 self.assertTrue(fields["file_path"].endswith("/meta/recipes-core/busybox/busybox_1.21.1.bb"))
130 self.assertTrue(fields["summary"] == "Tiny versions of many common UNIX utilities in a single small executable.")
131 self.assertTrue(fields["description"] == "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system.")
132 self.assertTrue(fields["bugtracker"] == "https://bugs.busybox.net/")
133 self.assertTrue(fields["homepage"] == "http://www.busybox.net")
134 self.assertTrue(fields["section"] == "base")
135 self.assertTrue(find == True)
136
137 def test_task_dependencies(self):
138 client = Client()
139 resp = client.get('http://localhost:8000/api/1.0/task_dependencies')
140 self.assertEqual(resp.status_code, 200)
141 response = json.loads(resp.content)
142 self.assertTrue(len(json.loads(response['list'])) > 0)
143 ids = self.get_task_id()
144 do_install = ids["do_install"]
145 do_compile = ids["do_compile"]
146 entry = False
147 for item in json.loads(response['list']):
148 fields = item['fields']
149 if fields["task"] == do_install and fields["depends_on"] == do_compile:
150 entry = True
151 self.assertTrue(entry == True)
152
153 def test_target_installed_package(self):
154 client = Client()
155 resp = client.get('http://localhost:8000/api/1.0/target_installed_packages')
156 self.assertEqual(resp.status_code, 200)
157 response = json.loads(resp.content)
158 self.assertTrue(len(json.loads(response['list'])) > 0)
159 package = self.get_package_id("udev-utils")
160 find = False
161 for item in json.loads(response['list']):
162 fields = item['fields']
163 if fields["package"] == package:
164 self.assertTrue(fields["target"], 1)
165 find = True
166 self.assertTrue(find, True)
167
168 def test_packages(self):
169 client = Client()
170 resp = client.get('http://localhost:8000/api/1.0/packages')
171 self.assertEqual(resp.status_code, 200)
172 response = json.loads(resp.content)
173 self.assertTrue(response['count'] > 0)
174 for item in json.loads(response['list']):
175 fields = item['fields']
176 if fields["name"] == "base-files-dev":
177 self.assertTrue(fields["license"] == "GPLv2")
178 self.assertTrue(fields["description"] == "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system. This package contains symbolic links, header files, and related items necessary for software development.")
179 self.assertTrue(fields["summary"] == "Miscellaneous files for the base system. - Development files")
180 self.assertTrue(fields["version"] == "3.0.14")
181 self.assertTrue(fields["build"] == 1)
182 self.assertTrue(fields["section"] == "devel")
183 self.assertTrue(fields["revision"] == "r73")
184 self.assertTrue(fields["size"] == 0)
185 self.assertTrue(fields["installed_size"] == 0)
186 self.assertTrue(self.get_recipe_name(fields["recipe"]) == "base-files")
187
188 def test_package_dependencies(self):
189 client = Client()
190 resp = client.get('http://localhost:8000/api/1.0/package_dependencies')
191 self.assertEqual(resp.status_code, 200)
192 response = json.loads(resp.content)
193 self.assertTrue(len(json.loads(response['list'])) > 0)
194 build_package = self.get_package_id("busybox")
195 build_package_id = self.get_package_id("busybox-syslog")
196 entry = False
197 for item in json.loads(response['list']):
198 fields = item['fields']
199 self.assertTrue(fields["target"] == 1)
200 if fields["package"] == build_package and fields["dep_type"] == 7 and fields["depends_on"] == build_package_id:
201 entry = True
202 self.assertTrue(entry == True)
203
204 def test_recipe_dependencies(self):
205 client = Client()
206 resp = client.get('http://localhost:8000/api/1.0/recipe_dependencies')
207 self.assertEqual(resp.status_code, 200)
208 response = json.loads(resp.content)
209 self.assertTrue(len(json.loads(response['list'])) > 0)
210 depends_on = self.get_recipes_id("autoconf-native")
211 recipe = self.get_recipes_id("ncurses")
212 entry = False
213 for item in json.loads(response['list']):
214 fields = item['fields']
215 if fields["recipe"] == recipe and fields["depends_on"] == depends_on and fields["dep_type"] == 0:
216 entry = True
217 self.assertTrue(entry == True)
218
219 def test_package_files(self):
220 client = Client()
221 resp = client.get('http://localhost:8000/api/1.0/package_files')
222 self.assertEqual(resp.status_code, 200)
223 response = json.loads(resp.content)
224 self.assertTrue(len(json.loads(response['list'])) > 0)
225 build_package = self.get_package_id("base-files")
226 entry = False
227 for item in json.loads(response['list']):
228 fields = item['fields']
229 if fields["path"] == "/etc/motd" and fields["package"] == build_package and fields["size"] == 0:
230 entry = True
231 self.assertTrue(entry == True)
232
233 def test_Variable(self):
234 client = Client()
235 resp = client.get('http://localhost:8000/api/1.0/variables')
236 self.assertEqual(resp.status_code, 200)
237 response = json.loads(resp.content)
238 self.assertTrue(len(json.loads(response['list'])) > 0)
239 for item in json.loads(response['list']):
240 fields = item['fields']
241 self.assertTrue(fields["build"] == 1)
242 if fields["variable_name"] == "USRBINPATH":
243 self.assertTrue(fields["variable_value"] == "/usr/bin")
244 self.assertTrue(fields["changed"] == False)
245 self.assertTrue(fields["description"] == "")
246 if fields["variable_name"] == "PREFERRED_PROVIDER_virtual/libx11":
247 self.assertTrue(fields["variable_value"] == "libx11")
248 self.assertTrue(fields["changed"] == False)
249 self.assertTrue(fields["description"] == "If multiple recipes provide an item, this variable determines which recipe should be given preference.")
250 if fields["variable_name"] == "base_libdir_nativesdk":
251 self.assertTrue(fields["variable_value"] == "/lib")
252
253 def test_VariableHistory(self):
254 client = Client()
255 resp = client.get('http://localhost:8000/api/1.0/variableshistory')
256 self.assertEqual(resp.status_code, 200)
257 response = json.loads(resp.content)
258 self.assertTrue(len(json.loads(response['list'])) > 0)
259 variable_id = self.get_variable_id("STAGING_INCDIR_NATIVE")
260 find = False
261 for item in json.loads(response['list']):
262 fields = item['fields']
263 if fields["variable"] == variable_id:
264 find = True
265 self.assertTrue(fields["file_name"] == "conf/bitbake.conf")
266 self.assertTrue(fields["operation"] == "set")
267 self.assertTrue(fields["line_number"] == 358)
268 self.assertTrue(find == True)
269
270 def get_task_id(self):
271 client = Client()
272 resp = client.get('http://localhost:8000/api/1.0/tasks')
273 self.assertEqual(resp.status_code, 200)
274 response = json.loads(resp.content)
275 self.assertTrue(len(json.loads(response['list'])) > 0)
276 for item in json.loads(response['list']):
277 fields = item['fields']
278 if fields["recipe"] == 7 and fields["task_name"] == "do_install":
279 do_install = item["pk"]
280 if fields["recipe"] == 7 and fields["task_name"] == "do_compile":
281 do_compile = item["pk"]
282 result = {}
283 result["do_install"] = do_install
284 result["do_compile"] = do_compile
285 return result
286
287 def get_recipes_id(self, value):
288 client = Client()
289 resp = client.get('http://localhost:8000/api/1.0/recipes')
290 self.assertEqual(resp.status_code, 200)
291 response = json.loads(resp.content)
292 self.assertTrue(len(json.loads(response['list'])) > 0)
293 for item in json.loads(response['list']):
294 fields = item['fields']
295 if fields["name"] == value:
296 return item["pk"]
297 return None
298
299 def get_recipe_name(self, value):
300 client = Client()
301 resp = client.get('http://localhost:8000/api/1.0/recipes')
302 self.assertEqual(resp.status_code, 200)
303 response = json.loads(resp.content)
304 self.assertTrue(len(json.loads(response['list'])) > 0)
305 for item in json.loads(response['list']):
306 fields = item['fields']
307 if item["pk"] == value:
308 return fields["name"]
309 return None
310
311 def get_layer_id(self, value):
312 client = Client()
313 resp = client.get('http://localhost:8000/api/1.0/layers')
314 self.assertEqual(resp.status_code, 200)
315 response = json.loads(resp.content)
316 self.assertTrue(len(json.loads(response['list'])) > 0)
317 for item in json.loads(response['list']):
318 fields = item['fields']
319 if fields["name"] == value:
320 return item["pk"]
321 return None
322
323 def get_package_id(self, field):
324 client = Client()
325 resp = client.get('http://localhost:8000/api/1.0/packages')
326 self.assertEqual(resp.status_code, 200)
327 response = json.loads(resp.content)
328 self.assertTrue(response['count'] > 0)
329 for item in json.loads(response['list']):
330 fields = item['fields']
331 if fields["name"] == field:
332 return item["pk"]
333 return None
334
335 def get_variable_id(self, field):
336 client = Client()
337 resp = client.get('http://localhost:8000/api/1.0/variables')
338 self.assertEqual(resp.status_code, 200)
339 response = json.loads(resp.content)
340 self.assertTrue(len(json.loads(response['list'])) > 0)
341 for item in json.loads(response['list']):
342 fields = item['fields']
343 if fields["variable_name"] == field:
344 return item["pk"]
345 return None