123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import os
- import infra.basetest
- class TestGit(infra.basetest.BRTest):
- config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
- """
- BR2_PACKAGE_GIT=y
- BR2_TARGET_ROOTFS_CPIO=y
- # BR2_TARGET_ROOTFS_TAR is not set
- """
- def test_run(self):
- cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
- self.emulator.boot(arch="armv5",
- kernel="builtin",
- options=["-initrd", cpio_file])
- self.emulator.login()
- # Check the program can execute.
- self.assertRunOk("git --version")
- # Initialize some git global configuration.
- git_cfg = [
- ("user.name", "Build Root"),
- ("user.email", "build.root@localhost.localdomain"),
- ("color.ui", "false"),
- ("init.defaultBranch", "master"),
- ("core.pager", "")
- ]
- for cfg_name, cfg_value in git_cfg:
- cmd = f"git config --global {cfg_name} '{cfg_value}'"
- self.assertRunOk(cmd)
- # Run a sequence of few git commands.
- commands = [
- "mkdir workdir",
- "cd workdir",
- "git init",
- "echo 'Hello World' > file.txt",
- "git add file.txt",
- "git commit -as -m 'Initial commit'",
- "git checkout -b my_branch",
- "sed -i 's/World/Buildroot/g' file.txt",
- "git status",
- "git commit -as -m 'Replace World by Buildroot'",
- "git format-patch -M -n -s -o patches master",
- "ls -al patches/*.patch",
- "git checkout -b another_branch master",
- "git am patches/*.patch",
- "git diff --exit-code my_branch another_branch",
- "git tag -a -m 'Tagged v1.0' v1.0",
- "git log"
- ]
- for cmd in commands:
- self.assertRunOk(cmd)
|