diff options
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oeqa/selftest/devtool.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/meta/lib/oeqa/selftest/devtool.py b/meta/lib/oeqa/selftest/devtool.py index 92cd0e230d..baa56d6dc1 100644 --- a/meta/lib/oeqa/selftest/devtool.py +++ b/meta/lib/oeqa/selftest/devtool.py | |||
@@ -723,6 +723,77 @@ class DevtoolTests(DevtoolBase): | |||
723 | self.assertEqual(expectedlines, f.readlines()) | 723 | self.assertEqual(expectedlines, f.readlines()) |
724 | # Deleting isn't expected to work under these circumstances | 724 | # Deleting isn't expected to work under these circumstances |
725 | 725 | ||
726 | @testcase(1173) | ||
727 | def test_devtool_update_recipe_local_files(self): | ||
728 | """Check that local source files are copied over instead of patched""" | ||
729 | testrecipe = 'makedevs' | ||
730 | recipefile = get_bb_var('FILE', testrecipe) | ||
731 | # Setup srctree for modifying the recipe | ||
732 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') | ||
733 | self.track_for_cleanup(tempdir) | ||
734 | self.track_for_cleanup(self.workspacedir) | ||
735 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') | ||
736 | # (don't bother with cleaning the recipe on teardown, we won't be | ||
737 | # building it) | ||
738 | result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) | ||
739 | # Check git repo | ||
740 | self._check_src_repo(tempdir) | ||
741 | # Edit / commit local source | ||
742 | runCmd('echo "/* Foobar */" >> oe-local-files/makedevs.c', cwd=tempdir) | ||
743 | runCmd('echo "Foo" > oe-local-files/new-local', cwd=tempdir) | ||
744 | runCmd('echo "Bar" > new-file', cwd=tempdir) | ||
745 | runCmd('git add new-file', cwd=tempdir) | ||
746 | runCmd('git commit -m "Add new file"', cwd=tempdir) | ||
747 | self.add_command_to_tearDown('cd %s; git clean -fd .; git checkout .' % | ||
748 | os.path.dirname(recipefile)) | ||
749 | runCmd('devtool update-recipe %s' % testrecipe) | ||
750 | expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)), | ||
751 | (' M', '.*/makedevs/makedevs.c$'), | ||
752 | ('??', '.*/makedevs/new-local$'), | ||
753 | ('??', '.*/makedevs/0001-Add-new-file.patch$')] | ||
754 | self._check_repo_status(os.path.dirname(recipefile), expected_status) | ||
755 | |||
756 | @testcase(1174) | ||
757 | def test_devtool_update_recipe_local_files_2(self): | ||
758 | """Check local source files support when oe-local-files is in Git""" | ||
759 | testrecipe = 'lzo' | ||
760 | recipefile = get_bb_var('FILE', testrecipe) | ||
761 | # Setup srctree for modifying the recipe | ||
762 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') | ||
763 | self.track_for_cleanup(tempdir) | ||
764 | self.track_for_cleanup(self.workspacedir) | ||
765 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') | ||
766 | result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) | ||
767 | # Check git repo | ||
768 | self._check_src_repo(tempdir) | ||
769 | # Add oe-local-files to Git | ||
770 | runCmd('rm oe-local-files/.gitignore', cwd=tempdir) | ||
771 | runCmd('git add oe-local-files', cwd=tempdir) | ||
772 | runCmd('git commit -m "Add local sources"', cwd=tempdir) | ||
773 | # Edit / commit local sources | ||
774 | runCmd('echo "# Foobar" >> oe-local-files/acinclude.m4', cwd=tempdir) | ||
775 | runCmd('git commit -am "Edit existing file"', cwd=tempdir) | ||
776 | runCmd('git rm oe-local-files/run-ptest', cwd=tempdir) | ||
777 | runCmd('git commit -m"Remove file"', cwd=tempdir) | ||
778 | runCmd('echo "Foo" > oe-local-files/new-local', cwd=tempdir) | ||
779 | runCmd('git add oe-local-files/new-local', cwd=tempdir) | ||
780 | runCmd('git commit -m "Add new local file"', cwd=tempdir) | ||
781 | runCmd('echo "Gar" > new-file', cwd=tempdir) | ||
782 | runCmd('git add new-file', cwd=tempdir) | ||
783 | runCmd('git commit -m "Add new file"', cwd=tempdir) | ||
784 | self.add_command_to_tearDown('cd %s; git clean -fd .; git checkout .' % | ||
785 | os.path.dirname(recipefile)) | ||
786 | # Checkout unmodified file to working copy -> devtool should still pick | ||
787 | # the modified version from HEAD | ||
788 | runCmd('git checkout HEAD^ -- oe-local-files/acinclude.m4', cwd=tempdir) | ||
789 | runCmd('devtool update-recipe %s' % testrecipe) | ||
790 | expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)), | ||
791 | (' M', '.*/acinclude.m4$'), | ||
792 | (' D', '.*/run-ptest$'), | ||
793 | ('??', '.*/new-local$'), | ||
794 | ('??', '.*/0001-Add-new-file.patch$')] | ||
795 | self._check_repo_status(os.path.dirname(recipefile), expected_status) | ||
796 | |||
726 | @testcase(1163) | 797 | @testcase(1163) |
727 | def test_devtool_extract(self): | 798 | def test_devtool_extract(self): |
728 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') | 799 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') |