diff options
-rw-r--r-- | tests/sources/git.py | 4 | ||||
-rw-r--r-- | tests/testutils/site.py | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/tests/sources/git.py b/tests/sources/git.py index e0560fe5d..f194e9f54 100644 --- a/tests/sources/git.py +++ b/tests/sources/git.py @@ -30,7 +30,7 @@ from buildstream import _yaml from buildstream.plugin import CoreWarnings from tests.testutils import cli, create_repo -from tests.testutils.site import HAVE_GIT +from tests.testutils.site import HAVE_GIT, HAVE_OLD_GIT DATA_DIR = os.path.join( os.path.dirname(os.path.realpath(__file__)), @@ -664,6 +664,7 @@ def test_invalid_submodule(cli, tmpdir, datafiles, fail): @pytest.mark.skipif(HAVE_GIT is False, reason="git is not available") +@pytest.mark.skipif(HAVE_OLD_GIT, reason="old git rm does not update .gitmodules") @pytest.mark.datafiles(os.path.join(DATA_DIR, 'template')) @pytest.mark.parametrize("fail", ['warn', 'error']) def test_track_invalid_submodule(cli, tmpdir, datafiles, fail): @@ -772,6 +773,7 @@ def test_track_fetch(cli, tmpdir, datafiles, ref_format, tag, extra_commit): @pytest.mark.skipif(HAVE_GIT is False, reason="git is not available") +@pytest.mark.skipif(HAVE_OLD_GIT, reason="old git describe lacks --first-parent") @pytest.mark.datafiles(os.path.join(DATA_DIR, 'template')) @pytest.mark.parametrize("ref_storage", [('inline'), ('project.refs')]) @pytest.mark.parametrize("tag_type", [('annotated'), ('lightweight')]) diff --git a/tests/testutils/site.py b/tests/testutils/site.py index 6ef22babb..b7bfa11cf 100644 --- a/tests/testutils/site.py +++ b/tests/testutils/site.py @@ -2,6 +2,7 @@ # so we dont have to repeat this everywhere # import os +import subprocess import sys from buildstream import _site, utils, ProgramNotFoundError @@ -16,8 +17,12 @@ except ProgramNotFoundError: try: utils.get_host_tool('git') HAVE_GIT = True + out = str(subprocess.check_output(['git', '--version']), "utf-8") + version = tuple(int(x) for x in out.split(' ', 2)[2].split('.')) + HAVE_OLD_GIT = version < (1, 8, 5) except ProgramNotFoundError: HAVE_GIT = False + HAVE_OLD_GIT = False try: utils.get_host_tool('ostree') |