support/testing: add git runtime test

Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit 24efb23a10)
This commit is contained in:
Julien Olivain
2024-02-12 23:17:30 +01:00
committed by Arnout Vandecappelle
parent 9b24a8272b
commit ba59edc803
2 changed files with 58 additions and 0 deletions

View File

@@ -1897,6 +1897,7 @@ F: support/testing/tests/package/test_fwts.py
F: support/testing/tests/package/test_gawk.py
F: support/testing/tests/package/test_ghostscript.py
F: support/testing/tests/package/test_ghostscript/
F: support/testing/tests/package/test_git.py
F: support/testing/tests/package/test_glslsandbox_player.py
F: support/testing/tests/package/test_glslsandbox_player/
F: support/testing/tests/package/test_gnupg2.py

View File

@@ -0,0 +1,57 @@
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)