You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ro...@apache.org on 2020/12/29 13:29:10 UTC

[buildstream] 05/09: Adding Tests for Out of Source Build examples

This is an automated email from the ASF dual-hosted git repository.

root pushed a commit to branch willsalmon/simpleOutSource
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit a774a3450ec568176e415f0be4cd4cae6d54129b
Author: William Salmon <wi...@codethink.co.uk>
AuthorDate: Mon Sep 10 16:54:31 2018 +0100

    Adding Tests for Out of Source Build examples
    
    For issue #512 in Gitlab.
---
 tests/examples/autotools-outofsource.py  | 50 ++++++++++++++++++++++++++++++++
 tests/examples/cmake.py                  | 45 ++++++++++++++++++++++++++++
 tests/examples/helloworld-outofsource.py | 45 ++++++++++++++++++++++++++++
 3 files changed, 140 insertions(+)

diff --git a/tests/examples/autotools-outofsource.py b/tests/examples/autotools-outofsource.py
new file mode 100644
index 0000000..91262ea
--- /dev/null
+++ b/tests/examples/autotools-outofsource.py
@@ -0,0 +1,50 @@
+import os
+import pytest
+
+from tests.testutils import cli_integration as cli
+from tests.testutils.integration import assert_contains
+from tests.testutils.site import IS_LINUX
+
+pytestmark = pytest.mark.integration
+
+DATA_DIR = os.path.join(
+    os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples',
+    'out-of-source-autotool-in-source-tree'
+)
+
+
+# Tests a build of the autotools amhello project on a alpine-linux base runtime
+@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
+@pytest.mark.datafiles(DATA_DIR)
+def test_autotools_build(cli, tmpdir, datafiles):
+    project = os.path.join(datafiles.dirname, datafiles.basename)
+    checkout = os.path.join(cli.directory, 'checkout')
+
+    # Check that the project can be built correctly.
+    result = cli.run(project=project, args=['build', 'hello.bst'])
+    result.assert_success()
+
+    result = cli.run(project=project, args=['checkout', 'hello.bst', checkout])
+    result.assert_success()
+
+    assert_contains(checkout, ['/usr', '/usr/lib', '/usr/bin',
+                               '/usr/share', '/usr/lib/debug',
+                               '/usr/lib/debug/usr', '/usr/lib/debug/usr/bin',
+                               '/usr/lib/debug/usr/bin/hello',
+                               '/usr/bin/hello',
+                               '/usr/share/doc', '/usr/share/doc/amhello',
+                               '/usr/share/doc/amhello/README'])
+
+
+# Test running an executable built with autotools.
+@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
+@pytest.mark.datafiles(DATA_DIR)
+def test_autotools_run(cli, tmpdir, datafiles):
+    project = os.path.join(datafiles.dirname, datafiles.basename)
+
+    result = cli.run(project=project, args=['build', 'hello.bst'])
+    result.assert_success()
+
+    result = cli.run(project=project, args=['shell', 'hello.bst', 'hello'])
+    result.assert_success()
+    assert result.output == 'Hello World!\nThis is amhello 1.0.\n'
diff --git a/tests/examples/cmake.py b/tests/examples/cmake.py
new file mode 100644
index 0000000..656cfb0
--- /dev/null
+++ b/tests/examples/cmake.py
@@ -0,0 +1,45 @@
+import os
+import pytest
+
+from tests.testutils import cli_integration as cli
+from tests.testutils.integration import assert_contains
+from tests.testutils.site import IS_LINUX
+
+pytestmark = pytest.mark.integration
+
+DATA_DIR = os.path.join(
+    os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples', 'cmake'
+)
+
+
+# Tests a build using cmake with the C complier from alpine-linux base runtime
+@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
+@pytest.mark.datafiles(DATA_DIR)
+def test_autotools_build(cli, tmpdir, datafiles):
+    project = os.path.join(datafiles.dirname, datafiles.basename)
+    checkout = os.path.join(cli.directory, 'checkout')
+
+    # Check that the project can be built correctly.
+    result = cli.run(project=project, args=['build', 'hello.bst'])
+    result.assert_success()
+
+    result = cli.run(project=project, args=['checkout', 'hello.bst', checkout])
+    result.assert_success()
+
+    assert_contains(checkout, ['/usr', '/usr/lib', '/usr/bin',
+                               '/usr/share',
+                               '/bin/hello_buildstream'])
+
+
+# Test running an executable built with cmake.
+@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
+@pytest.mark.datafiles(DATA_DIR)
+def test_autotools_run(cli, tmpdir, datafiles):
+    project = os.path.join(datafiles.dirname, datafiles.basename)
+
+    result = cli.run(project=project, args=['build', 'hello.bst'])
+    result.assert_success()
+
+    result = cli.run(project=project, args=['shell', 'hello.bst', 'hello_buildstream'])
+    result.assert_success()
+    assert result.output == 'Hello, World!\n'
diff --git a/tests/examples/helloworld-outofsource.py b/tests/examples/helloworld-outofsource.py
new file mode 100644
index 0000000..4bb900f
--- /dev/null
+++ b/tests/examples/helloworld-outofsource.py
@@ -0,0 +1,45 @@
+import os
+import pytest
+
+from tests.testutils import cli_integration as cli
+from tests.testutils.integration import assert_contains
+from tests.testutils.site import IS_LINUX
+
+pytestmark = pytest.mark.integration
+
+DATA_DIR = os.path.join(
+    os.path.dirname(os.path.realpath(__file__)), '..', '..', 'doc', 'examples',
+    'out-of-source-build-helloworld'
+)
+
+
+# Tests a build of the autotools amhello project on a alpine-linux base runtime
+@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
+@pytest.mark.datafiles(DATA_DIR)
+def test_autotools_build(cli, tmpdir, datafiles):
+    project = os.path.join(datafiles.dirname, datafiles.basename)
+    checkout = os.path.join(cli.directory, 'checkout')
+
+    # Check that the project can be built correctly.
+    result = cli.run(project=project, args=['build', 'hello.bst'])
+    result.assert_success()
+
+    result = cli.run(project=project, args=['checkout', 'hello.bst', checkout])
+    result.assert_success()
+
+    assert_contains(checkout, ['/usr', '/usr/bin',
+                               '/usr/bin/hello'])
+
+
+# Test running an executable built with autotools.
+@pytest.mark.skipif(not IS_LINUX, reason='Only available on linux')
+@pytest.mark.datafiles(DATA_DIR)
+def test_autotools_run(cli, tmpdir, datafiles):
+    project = os.path.join(datafiles.dirname, datafiles.basename)
+
+    result = cli.run(project=project, args=['build', 'hello.bst'])
+    result.assert_success()
+
+    result = cli.run(project=project, args=['shell', 'hello.bst', '--', 'hello', 'bob'])
+    result.assert_success()
+    assert result.output == 'Hello bob\n'