[Notes] [Git][BuildStream/buildstream][jennis/correct_HACKING] 7 commits: .gitlab-ci.yml: Verify that source tarball installs correctly



Title: GitLab

James Ennis pushed to branch jennis/correct_HACKING at BuildStream / buildstream

Commits:

6 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -36,6 +36,11 @@ source_dist:
    36 36
       - tar -ztf dist/*
    
    37 37
       - tarball=$(cd dist && echo $(ls *))
    
    38 38
     
    
    39
    +  # Verify that the source distribution tarball can be installed correctly
    
    40
    +  #
    
    41
    +  - pip3 install dist/*.tar.gz
    
    42
    +  - bst --version
    
    43
    +
    
    39 44
       # unpack tarball as `dist/buildstream` directory
    
    40 45
       - |
    
    41 46
         cat > dist/unpack.sh << EOF
    

  • HACKING.rst
    ... ... @@ -465,12 +465,12 @@ If you want to run a specific test or a group of tests, you
    465 465
     can specify a prefix to match. E.g. if you want to run all of
    
    466 466
     the frontend tests you can do::
    
    467 467
     
    
    468
    -  ./setup.py test --addopts '-k tests/frontend/'
    
    468
    +  ./setup.py test --addopts 'tests/frontend/'
    
    469 469
     
    
    470 470
     Specific tests can be chosen by using the :: delimeter after the test module.
    
    471 471
     If you wanted to run the test_build_track test within frontend/buildtrack.py you could do::
    
    472 472
     
    
    473
    -  ./setup.py test --adopts '-k tests/frontend/buildtrack.py::test_build_track'
    
    473
    +  ./setup.py test --addopts 'tests/frontend/buildtrack.py::test_build_track'
    
    474 474
     
    
    475 475
     We also have a set of slow integration tests that are disabled by
    
    476 476
     default - you will notice most of them marked with SKIP in the pytest
    

  • tests/integration/project/elements/base/base-alpine.bst
    ... ... @@ -7,6 +7,6 @@ description: |
    7 7
     
    
    8 8
     sources:
    
    9 9
       - kind: tar
    
    10
    -    url: sysroot:tarballs/integration-tests-base.v1.x86_64.tar.xz
    
    10
    +    url: alpine:integration-tests-base.v1.x86_64.tar.xz
    
    11 11
         base-dir: ''
    
    12 12
         ref: 3eb559250ba82b64a68d86d0636a6b127aa5f6d25d3601a79f79214dc9703639

  • tests/integration/project/project.conf
    ... ... @@ -2,7 +2,7 @@
    2 2
     name: test
    
    3 3
     element-path: elements
    
    4 4
     aliases:
    
    5
    -  sysroot: https://gnome7.codethink.co.uk/
    
    5
    +  alpine: https://gnome7.codethink.co.uk/tarballs/
    
    6 6
       project_dir: file://{project_dir}
    
    7 7
     options:
    
    8 8
       linux:
    

  • tests/integration/source-determinism.py
    ... ... @@ -2,7 +2,8 @@ import os
    2 2
     import pytest
    
    3 3
     
    
    4 4
     from buildstream import _yaml, utils
    
    5
    -from tests.testutils import cli, create_repo, ALL_REPO_KINDS
    
    5
    +from tests.testutils import create_repo, ALL_REPO_KINDS
    
    6
    +from tests.testutils import cli_integration as cli
    
    6 7
     
    
    7 8
     
    
    8 9
     DATA_DIR = os.path.join(
    
    ... ... @@ -28,7 +29,7 @@ def create_test_directory(*path, mode=0o644):
    28 29
     @pytest.mark.integration
    
    29 30
     @pytest.mark.datafiles(DATA_DIR)
    
    30 31
     @pytest.mark.parametrize("kind", [(kind) for kind in ALL_REPO_KINDS] + ['local'])
    
    31
    -def test_deterministic_source_umask(cli, tmpdir, datafiles, kind):
    
    32
    +def test_deterministic_source_umask(cli, tmpdir, datafiles, kind, integration_cache):
    
    32 33
         project = str(datafiles)
    
    33 34
         element_name = 'list'
    
    34 35
         element_path = os.path.join(project, 'elements', element_name)
    
    ... ... @@ -91,14 +92,16 @@ def test_deterministic_source_umask(cli, tmpdir, datafiles, kind):
    91 92
                     return f.read()
    
    92 93
             finally:
    
    93 94
                 os.umask(old_umask)
    
    94
    -            cli.remove_artifact_from_cache(project, element_name)
    
    95
    +            cache_dir = os.path.join(integration_cache, 'artifacts')
    
    96
    +            cli.remove_artifact_from_cache(project, element_name,
    
    97
    +                                           cache_dir=cache_dir)
    
    95 98
     
    
    96 99
         assert get_value_for_umask(0o022) == get_value_for_umask(0o077)
    
    97 100
     
    
    98 101
     
    
    99 102
     @pytest.mark.integration
    
    100 103
     @pytest.mark.datafiles(DATA_DIR)
    
    101
    -def test_deterministic_source_local(cli, tmpdir, datafiles):
    
    104
    +def test_deterministic_source_local(cli, tmpdir, datafiles, integration_cache):
    
    102 105
         """Only user rights should be considered for local source.
    
    103 106
         """
    
    104 107
         project = str(datafiles)
    
    ... ... @@ -150,6 +153,8 @@ def test_deterministic_source_local(cli, tmpdir, datafiles):
    150 153
                 with open(os.path.join(checkoutdir, 'ls-l'), 'r') as f:
    
    151 154
                     return f.read()
    
    152 155
             finally:
    
    153
    -            cli.remove_artifact_from_cache(project, element_name)
    
    156
    +            cache_dir = os.path.join(integration_cache, 'artifacts')
    
    157
    +            cli.remove_artifact_from_cache(project, element_name,
    
    158
    +                                           cache_dir=cache_dir)
    
    154 159
     
    
    155 160
         assert get_value_for_mask(0o7777) == get_value_for_mask(0o0700)

  • tests/testutils/runcli.py
    ... ... @@ -198,8 +198,10 @@ class Cli():
    198 198
             for key, val in config.items():
    
    199 199
                 self.config[key] = val
    
    200 200
     
    
    201
    -    def remove_artifact_from_cache(self, project, element_name):
    
    202
    -        cache_dir = os.path.join(project, 'cache', 'artifacts')
    
    201
    +    def remove_artifact_from_cache(self, project, element_name,
    
    202
    +                                   *, cache_dir=None):
    
    203
    +        if not cache_dir:
    
    204
    +            cache_dir = os.path.join(project, 'cache', 'artifacts')
    
    203 205
     
    
    204 206
             cache_dir = os.path.join(cache_dir, 'cas', 'refs', 'heads')
    
    205 207
     
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]