Javier Jardón pushed to branch master at BuildStream / buildstream
Commits:
-
c87d6e45
by Valentin David at 2018-11-14T11:43:33Z
-
16b01489
by Valentin David at 2018-11-14T11:43:33Z
-
85046b29
by Valentin David at 2018-11-14T11:43:33Z
-
dd5a073b
by Valentin David at 2018-11-14T11:43:33Z
-
c5d72ae7
by Valentin David at 2018-11-14T11:52:53Z
-
264a57f6
by Javier Jardón at 2018-11-14T12:22:03Z
12 changed files:
- .gitlab-ci.yml
- tests/cachekey/cachekey.py
- tests/examples/autotools.py
- tests/examples/developing.py
- tests/examples/flatpak-autotools.py
- tests/examples/integration-commands.py
- tests/examples/junctions.py
- tests/examples/running-commands.py
- tests/format/list-directive-type-error/project.conf
- tests/integration/project/elements/base/base-alpine.bst
- tests/integration/project/project.conf
- tests/testutils/site.py
Changes:
| ... | ... | @@ -79,32 +79,46 @@ source_dist: |
| 79 | 79 |
- cd ../..
|
| 80 | 80 |
- mkdir -p coverage-linux/
|
| 81 | 81 |
- cp dist/buildstream/.coverage coverage-linux/coverage."${CI_JOB_NAME}"
|
| 82 |
- except:
|
|
| 83 |
- - schedules
|
|
| 84 | 82 |
artifacts:
|
| 85 | 83 |
paths:
|
| 86 | 84 |
- coverage-linux/
|
| 87 | 85 |
|
| 88 | 86 |
tests-debian-9:
|
| 89 |
- image: buildstream/testsuite-debian:9-master-119-552f5fc6
|
|
| 87 |
+ image: buildstream/testsuite-debian:9-master-123-7ce6581b
|
|
| 90 | 88 |
<<: *linux-tests
|
| 89 |
+ except:
|
|
| 90 |
+ - schedules
|
|
| 91 | 91 |
|
| 92 | 92 |
tests-fedora-27:
|
| 93 |
- image: buildstream/testsuite-fedora:27-master-119-552f5fc6
|
|
| 93 |
+ image: buildstream/testsuite-fedora:27-master-123-7ce6581b
|
|
| 94 | 94 |
<<: *linux-tests
|
| 95 |
+ except:
|
|
| 96 |
+ - schedules
|
|
| 95 | 97 |
|
| 96 | 98 |
tests-fedora-28:
|
| 97 |
- image: buildstream/testsuite-fedora:28-master-119-552f5fc6
|
|
| 99 |
+ image: buildstream/testsuite-fedora:28-master-123-7ce6581b
|
|
| 98 | 100 |
<<: *linux-tests
|
| 101 |
+ except:
|
|
| 102 |
+ - schedules
|
|
| 99 | 103 |
|
| 100 | 104 |
tests-ubuntu-18.04:
|
| 101 |
- image: buildstream/testsuite-ubuntu:18.04-master-119-552f5fc6
|
|
| 105 |
+ image: buildstream/testsuite-ubuntu:18.04-master-123-7ce6581b
|
|
| 102 | 106 |
<<: *linux-tests
|
| 107 |
+ except:
|
|
| 108 |
+ - schedules
|
|
| 109 |
+ |
|
| 110 |
+overnight-fedora-28-aarch64:
|
|
| 111 |
+ image: buildstream/testsuite-fedora:aarch64-28-master-123-7ce6581b
|
|
| 112 |
+ tags:
|
|
| 113 |
+ - aarch64
|
|
| 114 |
+ <<: *linux-tests
|
|
| 115 |
+ only:
|
|
| 116 |
+ - schedules
|
|
| 103 | 117 |
|
| 104 | 118 |
tests-unix:
|
| 105 | 119 |
# Use fedora here, to a) run a test on fedora and b) ensure that we
|
| 106 | 120 |
# can get rid of ostree - this is not possible with debian-8
|
| 107 |
- image: buildstream/testsuite-fedora:27-master-119-552f5fc6
|
|
| 121 |
+ image: buildstream/testsuite-fedora:27-master-123-7ce6581b
|
|
| 108 | 122 |
stage: test
|
| 109 | 123 |
variables:
|
| 110 | 124 |
BST_FORCE_BACKEND: "unix"
|
| ... | ... | @@ -36,7 +36,7 @@ |
| 36 | 36 |
# the result.
|
| 37 | 37 |
#
|
| 38 | 38 |
from tests.testutils.runcli import cli
|
| 39 |
-from tests.testutils.site import HAVE_BZR, HAVE_GIT, HAVE_OSTREE, IS_LINUX
|
|
| 39 |
+from tests.testutils.site import HAVE_BZR, HAVE_GIT, HAVE_OSTREE, IS_LINUX, MACHINE_ARCH
|
|
| 40 | 40 |
from buildstream.plugin import CoreWarnings
|
| 41 | 41 |
from buildstream import _yaml
|
| 42 | 42 |
import os
|
| ... | ... | @@ -144,6 +144,8 @@ DATA_DIR = os.path.join( |
| 144 | 144 |
# The cache key test uses a project which exercises all plugins,
|
| 145 | 145 |
# so we cant run it at all if we dont have them installed.
|
| 146 | 146 |
#
|
| 147 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 148 |
+ reason='Cache keys depend on architecture')
|
|
| 147 | 149 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 148 | 150 |
@pytest.mark.skipif(HAVE_BZR is False, reason="bzr is not available")
|
| 149 | 151 |
@pytest.mark.skipif(HAVE_GIT is False, reason="git is not available")
|
| ... | ... | @@ -3,7 +3,7 @@ import pytest |
| 3 | 3 |
|
| 4 | 4 |
from tests.testutils import cli_integration as cli
|
| 5 | 5 |
from tests.testutils.integration import assert_contains
|
| 6 |
-from tests.testutils.site import IS_LINUX
|
|
| 6 |
+from tests.testutils.site import IS_LINUX, MACHINE_ARCH
|
|
| 7 | 7 |
|
| 8 | 8 |
pytestmark = pytest.mark.integration
|
| 9 | 9 |
|
| ... | ... | @@ -13,6 +13,8 @@ DATA_DIR = os.path.join( |
| 13 | 13 |
|
| 14 | 14 |
|
| 15 | 15 |
# Tests a build of the autotools amhello project on a alpine-linux base runtime
|
| 16 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 17 |
+ reason='Examples are writtent for x86_64')
|
|
| 16 | 18 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 17 | 19 |
@pytest.mark.datafiles(DATA_DIR)
|
| 18 | 20 |
def test_autotools_build(cli, tmpdir, datafiles):
|
| ... | ... | @@ -36,6 +38,8 @@ def test_autotools_build(cli, tmpdir, datafiles): |
| 36 | 38 |
|
| 37 | 39 |
|
| 38 | 40 |
# Test running an executable built with autotools.
|
| 41 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 42 |
+ reason='Examples are writtent for x86_64')
|
|
| 39 | 43 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 40 | 44 |
@pytest.mark.datafiles(DATA_DIR)
|
| 41 | 45 |
def test_autotools_run(cli, tmpdir, datafiles):
|
| ... | ... | @@ -4,7 +4,7 @@ import pytest |
| 4 | 4 |
import tests.testutils.patch as patch
|
| 5 | 5 |
from tests.testutils import cli_integration as cli
|
| 6 | 6 |
from tests.testutils.integration import assert_contains
|
| 7 |
-from tests.testutils.site import IS_LINUX
|
|
| 7 |
+from tests.testutils.site import IS_LINUX, MACHINE_ARCH
|
|
| 8 | 8 |
|
| 9 | 9 |
pytestmark = pytest.mark.integration
|
| 10 | 10 |
|
| ... | ... | @@ -14,6 +14,8 @@ DATA_DIR = os.path.join( |
| 14 | 14 |
|
| 15 | 15 |
|
| 16 | 16 |
# Test that the project builds successfully
|
| 17 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 18 |
+ reason='Examples are writtent for x86_64')
|
|
| 17 | 19 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 18 | 20 |
@pytest.mark.datafiles(DATA_DIR)
|
| 19 | 21 |
def test_autotools_build(cli, tmpdir, datafiles):
|
| ... | ... | @@ -35,6 +37,8 @@ def test_autotools_build(cli, tmpdir, datafiles): |
| 35 | 37 |
|
| 36 | 38 |
|
| 37 | 39 |
# Test the unmodified hello command works as expected.
|
| 40 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 41 |
+ reason='Examples are writtent for x86_64')
|
|
| 38 | 42 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 39 | 43 |
@pytest.mark.datafiles(DATA_DIR)
|
| 40 | 44 |
def test_run_unmodified_hello(cli, tmpdir, datafiles):
|
| ... | ... | @@ -66,6 +70,8 @@ def test_open_workspace(cli, tmpdir, datafiles): |
| 66 | 70 |
|
| 67 | 71 |
|
| 68 | 72 |
# Test making a change using the workspace
|
| 73 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 74 |
+ reason='Examples are writtent for x86_64')
|
|
| 69 | 75 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 70 | 76 |
@pytest.mark.datafiles(DATA_DIR)
|
| 71 | 77 |
def test_make_change_in_workspace(cli, tmpdir, datafiles):
|
| ... | ... | @@ -3,7 +3,7 @@ import pytest |
| 3 | 3 |
|
| 4 | 4 |
from tests.testutils import cli_integration as cli
|
| 5 | 5 |
from tests.testutils.integration import assert_contains
|
| 6 |
-from tests.testutils.site import IS_LINUX
|
|
| 6 |
+from tests.testutils.site import IS_LINUX, MACHINE_ARCH
|
|
| 7 | 7 |
|
| 8 | 8 |
|
| 9 | 9 |
pytestmark = pytest.mark.integration
|
| ... | ... | @@ -32,6 +32,8 @@ def workaround_setuptools_bug(project): |
| 32 | 32 |
|
| 33 | 33 |
# Test that a build upon flatpak runtime 'works' - we use the autotools sample
|
| 34 | 34 |
# amhello project for this.
|
| 35 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 36 |
+ reason='Examples are writtent for x86_64')
|
|
| 35 | 37 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 36 | 38 |
@pytest.mark.datafiles(DATA_DIR)
|
| 37 | 39 |
def test_autotools_build(cli, tmpdir, datafiles):
|
| ... | ... | @@ -55,6 +57,8 @@ def test_autotools_build(cli, tmpdir, datafiles): |
| 55 | 57 |
|
| 56 | 58 |
|
| 57 | 59 |
# Test running an executable built with autotools
|
| 60 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 61 |
+ reason='Examples are writtent for x86_64')
|
|
| 58 | 62 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 59 | 63 |
@pytest.mark.datafiles(DATA_DIR)
|
| 60 | 64 |
def test_autotools_run(cli, tmpdir, datafiles):
|
| ... | ... | @@ -3,7 +3,7 @@ import pytest |
| 3 | 3 |
|
| 4 | 4 |
from tests.testutils import cli_integration as cli
|
| 5 | 5 |
from tests.testutils.integration import assert_contains
|
| 6 |
-from tests.testutils.site import IS_LINUX
|
|
| 6 |
+from tests.testutils.site import IS_LINUX, MACHINE_ARCH
|
|
| 7 | 7 |
|
| 8 | 8 |
|
| 9 | 9 |
pytestmark = pytest.mark.integration
|
| ... | ... | @@ -12,6 +12,8 @@ DATA_DIR = os.path.join( |
| 12 | 12 |
)
|
| 13 | 13 |
|
| 14 | 14 |
|
| 15 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 16 |
+ reason='Examples are writtent for x86_64')
|
|
| 15 | 17 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 16 | 18 |
@pytest.mark.datafiles(DATA_DIR)
|
| 17 | 19 |
def test_integration_commands_build(cli, tmpdir, datafiles):
|
| ... | ... | @@ -23,6 +25,8 @@ def test_integration_commands_build(cli, tmpdir, datafiles): |
| 23 | 25 |
|
| 24 | 26 |
|
| 25 | 27 |
# Test running the executable
|
| 28 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 29 |
+ reason='Examples are writtent for x86_64')
|
|
| 26 | 30 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 27 | 31 |
@pytest.mark.datafiles(DATA_DIR)
|
| 28 | 32 |
def test_integration_commands_run(cli, tmpdir, datafiles):
|
| ... | ... | @@ -3,7 +3,7 @@ import pytest |
| 3 | 3 |
|
| 4 | 4 |
from tests.testutils import cli_integration as cli
|
| 5 | 5 |
from tests.testutils.integration import assert_contains
|
| 6 |
-from tests.testutils.site import IS_LINUX
|
|
| 6 |
+from tests.testutils.site import IS_LINUX, MACHINE_ARCH
|
|
| 7 | 7 |
|
| 8 | 8 |
pytestmark = pytest.mark.integration
|
| 9 | 9 |
|
| ... | ... | @@ -13,6 +13,8 @@ DATA_DIR = os.path.join( |
| 13 | 13 |
|
| 14 | 14 |
|
| 15 | 15 |
# Test that the project builds successfully
|
| 16 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 17 |
+ reason='Examples are writtent for x86_64')
|
|
| 16 | 18 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 17 | 19 |
@pytest.mark.datafiles(DATA_DIR)
|
| 18 | 20 |
def test_build(cli, tmpdir, datafiles):
|
| ... | ... | @@ -23,6 +25,8 @@ def test_build(cli, tmpdir, datafiles): |
| 23 | 25 |
|
| 24 | 26 |
|
| 25 | 27 |
# Test the callHello script works as expected.
|
| 28 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 29 |
+ reason='Examples are writtent for x86_64')
|
|
| 26 | 30 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 27 | 31 |
@pytest.mark.datafiles(DATA_DIR)
|
| 28 | 32 |
def test_shell_call_hello(cli, tmpdir, datafiles):
|
| ... | ... | @@ -3,7 +3,7 @@ import pytest |
| 3 | 3 |
|
| 4 | 4 |
from tests.testutils import cli_integration as cli
|
| 5 | 5 |
from tests.testutils.integration import assert_contains
|
| 6 |
-from tests.testutils.site import IS_LINUX
|
|
| 6 |
+from tests.testutils.site import IS_LINUX, MACHINE_ARCH
|
|
| 7 | 7 |
|
| 8 | 8 |
|
| 9 | 9 |
pytestmark = pytest.mark.integration
|
| ... | ... | @@ -12,6 +12,8 @@ DATA_DIR = os.path.join( |
| 12 | 12 |
)
|
| 13 | 13 |
|
| 14 | 14 |
|
| 15 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 16 |
+ reason='Examples are writtent for x86_64')
|
|
| 15 | 17 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 16 | 18 |
@pytest.mark.datafiles(DATA_DIR)
|
| 17 | 19 |
def test_running_commands_build(cli, tmpdir, datafiles):
|
| ... | ... | @@ -23,6 +25,8 @@ def test_running_commands_build(cli, tmpdir, datafiles): |
| 23 | 25 |
|
| 24 | 26 |
|
| 25 | 27 |
# Test running the executable
|
| 28 |
+@pytest.mark.skipif(MACHINE_ARCH != 'x86_64',
|
|
| 29 |
+ reason='Examples are writtent for x86_64')
|
|
| 26 | 30 |
@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
|
| 27 | 31 |
@pytest.mark.datafiles(DATA_DIR)
|
| 28 | 32 |
def test_running_commands_run(cli, tmpdir, datafiles):
|
| ... | ... | @@ -4,4 +4,4 @@ options: |
| 4 | 4 |
arch:
|
| 5 | 5 |
type: arch
|
| 6 | 6 |
description: Example architecture option
|
| 7 |
- values: [ x86_32, x86_64 ]
|
|
| 7 |
+ values: [ x86_32, x86_64, aarch64 ]
|
| ... | ... | @@ -7,6 +7,11 @@ description: | |
| 7 | 7 |
|
| 8 | 8 |
sources:
|
| 9 | 9 |
- kind: tar
|
| 10 |
- url: alpine:integration-tests-base.v1.x86_64.tar.xz
|
|
| 11 | 10 |
base-dir: ''
|
| 12 |
- ref: 3eb559250ba82b64a68d86d0636a6b127aa5f6d25d3601a79f79214dc9703639
|
|
| 11 |
+ (?):
|
|
| 12 |
+ - arch == "x86_64":
|
|
| 13 |
+ ref: 3eb559250ba82b64a68d86d0636a6b127aa5f6d25d3601a79f79214dc9703639
|
|
| 14 |
+ url: "alpine:integration-tests-base.v1.x86_64.tar.xz"
|
|
| 15 |
+ - arch == "aarch64":
|
|
| 16 |
+ ref: 431fb5362032ede6f172e70a3258354a8fd71fcbdeb1edebc0e20968c792329a
|
|
| 17 |
+ url: "alpine:integration-tests-base.v1.aarch64.tar.xz"
|
| ... | ... | @@ -9,6 +9,12 @@ options: |
| 9 | 9 |
type: bool
|
| 10 | 10 |
description: Whether to expect a linux platform
|
| 11 | 11 |
default: True
|
| 12 |
+ arch:
|
|
| 13 |
+ type: arch
|
|
| 14 |
+ description: Current architecture
|
|
| 15 |
+ values:
|
|
| 16 |
+ - x86_64
|
|
| 17 |
+ - aarch64
|
|
| 12 | 18 |
split-rules:
|
| 13 | 19 |
test:
|
| 14 | 20 |
- |
|
| ... | ... | @@ -49,3 +49,5 @@ except ImportError: |
| 49 | 49 |
HAVE_ARPY = False
|
| 50 | 50 |
|
| 51 | 51 |
IS_LINUX = os.getenv('BST_FORCE_BACKEND', sys.platform).startswith('linux')
|
| 52 |
+ |
|
| 53 |
+_, _, _, _, MACHINE_ARCH = os.uname()
|
