summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/lib/oeqa/selftest/cases/wic.py73
1 files changed, 55 insertions, 18 deletions
diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py
index 3c5be2f501..46cd98b193 100644
--- a/meta/lib/oeqa/selftest/cases/wic.py
+++ b/meta/lib/oeqa/selftest/cases/wic.py
@@ -44,6 +44,24 @@ def only_for_arch(archs, image='core-image-minimal'):
44 return wrapped_f 44 return wrapped_f
45 return wrapper 45 return wrapper
46 46
47def extract_files(debugfs_output):
48 """
49 extract file names from the output of debugfs -R 'ls -p',
50 which looks like this:
51
52 /2/040755/0/0/.//\n
53 /2/040755/0/0/..//\n
54 /11/040700/0/0/lost+found^M//\n
55 /12/040755/1002/1002/run//\n
56 /13/040755/1002/1002/sys//\n
57 /14/040755/1002/1002/bin//\n
58 /80/040755/1002/1002/var//\n
59 /92/040755/1002/1002/tmp//\n
60 """
61 # NOTE the occasional ^M in file names
62 return [line.split('/')[5].strip() for line in \
63 debugfs_output.strip().split('/\n')]
64
47 65
48class WicTestCase(OESelftestTestCase): 66class WicTestCase(OESelftestTestCase):
49 """Wic test class.""" 67 """Wic test class."""
@@ -393,24 +411,6 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
393 runCmd("dd if=%s of=%s skip=%d count=%d" % 411 runCmd("dd if=%s of=%s skip=%d count=%d" %
394 (wicimg, part_file, start, length)) 412 (wicimg, part_file, start, length))
395 413
396 def extract_files(debugfs_output):
397 """
398 extract file names from the output of debugfs -R 'ls -p',
399 which looks like this:
400
401 /2/040755/0/0/.//\n
402 /2/040755/0/0/..//\n
403 /11/040700/0/0/lost+found^M//\n
404 /12/040755/1002/1002/run//\n
405 /13/040755/1002/1002/sys//\n
406 /14/040755/1002/1002/bin//\n
407 /80/040755/1002/1002/var//\n
408 /92/040755/1002/1002/tmp//\n
409 """
410 # NOTE the occasional ^M in file names
411 return [line.split('/')[5].strip() for line in \
412 debugfs_output.strip().split('/\n')]
413
414 # Test partition 1, should contain the normal root directories, except 414 # Test partition 1, should contain the normal root directories, except
415 # /usr. 415 # /usr.
416 res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % \ 416 res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % \
@@ -451,6 +451,43 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
451 finally: 451 finally:
452 os.environ['PATH'] = oldpath 452 os.environ['PATH'] = oldpath
453 453
454 def test_include_path(self):
455 """Test --include-path wks option."""
456
457 oldpath = os.environ['PATH']
458 os.environ['PATH'] = get_bb_var("PATH", "wic-tools")
459
460 try:
461 include_path = os.path.join(self.resultdir, 'test-include')
462 os.makedirs(include_path)
463 with open(os.path.join(include_path, 'test-file'), 'w') as t:
464 t.write("test\n")
465 wks_file = os.path.join(include_path, 'temp.wks')
466 with open(wks_file, 'w') as wks:
467 rootfs_dir = get_bb_var('IMAGE_ROOTFS', 'core-image-minimal')
468 wks.write("""
469part /part1 --source rootfs --ondisk mmcblk0 --fstype=ext4
470part /part2 --source rootfs --ondisk mmcblk0 --fstype=ext4 --include-path %s"""
471 % (include_path))
472 runCmd("wic create %s -e core-image-minimal -o %s" \
473 % (wks_file, self.resultdir))
474
475 part1 = glob(os.path.join(self.resultdir, 'temp-*.direct.p1'))[0]
476 part2 = glob(os.path.join(self.resultdir, 'temp-*.direct.p2'))[0]
477
478 # Test partition 1, should not contain 'test-file'
479 res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part1))
480 files = extract_files(res.output)
481 self.assertNotIn('test-file', files)
482
483 # Test partition 2, should not contain 'test-file'
484 res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part2))
485 files = extract_files(res.output)
486 self.assertIn('test-file', files)
487
488 finally:
489 os.environ['PATH'] = oldpath
490
454 def test_exclude_path_errors(self): 491 def test_exclude_path_errors(self):
455 """Test --exclude-path wks option error handling.""" 492 """Test --exclude-path wks option error handling."""
456 wks_file = 'temp.wks' 493 wks_file = 'temp.wks'