From 24efb23a1074b920fe32763ae455a4694410eb6e Mon Sep 17 00:00:00 2001 From: Julien Olivain Date: Mon, 12 Feb 2024 23:17:30 +0100 Subject: [PATCH] support/testing: add git runtime test Signed-off-by: Julien Olivain --- DEVELOPERS | 1 + support/testing/tests/package/test_git.py | 57 +++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 support/testing/tests/package/test_git.py diff --git a/DEVELOPERS b/DEVELOPERS index c080608bcf..44f7684c97 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1900,6 +1900,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 diff --git a/support/testing/tests/package/test_git.py b/support/testing/tests/package/test_git.py new file mode 100644 index 0000000000..878c4c8092 --- /dev/null +++ b/support/testing/tests/package/test_git.py @@ -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)