From cc3e0c1ba4c97b62f407daf75b81012a6b341430 Mon Sep 17 00:00:00 2001 From: Benjamin Schubert Date: Fri, 15 Mar 2019 12:08:54 +0000 Subject: tests:workspace: make deeper tests when trying to build all --- tests/frontend/workspace.py | 25 ++++++++++++++++++---- .../workspaced-build-dep/elements/elem2.bst | 3 +++ .../workspaced-build-dep/elements/elem3.bst | 5 ++--- .../workspaced-build-dep/elements/elem4.bst | 8 +++++++ .../workspaced-build-dep/elements/stack.bst | 3 +-- tests/frontend/workspaced-build-dep/files/file4 | 0 .../workspaced-runtime-dep/elements/elem2.bst | 5 ++--- .../workspaced-runtime-dep/elements/elem3.bst | 5 ++--- .../workspaced-runtime-dep/elements/elem4.bst | 8 +++++++ .../workspaced-runtime-dep/elements/stack.bst | 2 +- tests/frontend/workspaced-runtime-dep/files/file4 | 0 11 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 tests/frontend/workspaced-build-dep/elements/elem4.bst create mode 100644 tests/frontend/workspaced-build-dep/files/file4 create mode 100644 tests/frontend/workspaced-runtime-dep/elements/elem4.bst create mode 100644 tests/frontend/workspaced-runtime-dep/files/file4 diff --git a/tests/frontend/workspace.py b/tests/frontend/workspace.py index 662ef728d..516ef114a 100644 --- a/tests/frontend/workspace.py +++ b/tests/frontend/workspace.py @@ -1236,11 +1236,18 @@ TEST_DIR = os.path.join( @pytest.mark.datafiles(TEST_DIR) -@pytest.mark.parametrize("case", [("workspaced-build-dep"), ("workspaced-runtime-dep")]) +@pytest.mark.parametrize( + ["case", "non_workspaced_elements_state"], + [ + ("workspaced-build-dep", ["waiting", "waiting", "waiting", "waiting"]), + ("workspaced-runtime-dep", ["buildable", "buildable", "waiting", "waiting"]) + ], +) @pytest.mark.parametrize("strict", [("strict"), ("non-strict")]) -def test_build_all(cli, tmpdir, datafiles, case, strict): +def test_build_all(cli, tmpdir, datafiles, case, strict, non_workspaced_elements_state): project = os.path.join(str(datafiles), case) workspace = os.path.join(str(tmpdir), 'workspace') + non_leaf_elements = ["elem2.bst", "elem3.bst", "stack.bst", "elem4.bst"] # Configure strict mode strict_mode = True @@ -1258,9 +1265,19 @@ def test_build_all(cli, tmpdir, datafiles, case, strict): result = cli.run(project=project, args=['workspace', 'open', '--directory', workspace, 'elem1.bst']) result.assert_success() + # Ensure all elements are waiting build the first + assert cli.get_element_state(project, 'elem1.bst') == 'buildable' + assert [ + cli.get_element_state(project, element) + for element in non_leaf_elements + ] == non_workspaced_elements_state + # Now build the target elem3.bst - result = cli.run(project=project, args=['build', 'elem3.bst']) + result = cli.run(project=project, args=['build', 'elem4.bst']) result.assert_success() # Assert that the target is built - assert cli.get_element_state(project, 'elem3.bst') == 'cached' + assert [ + cli.get_element_state(project, element) + for element in ["elem1.bst", *non_leaf_elements] + ] == ["cached"] * (len(non_leaf_elements) + 1) diff --git a/tests/frontend/workspaced-build-dep/elements/elem2.bst b/tests/frontend/workspaced-build-dep/elements/elem2.bst index 1233c0885..78af3ba44 100644 --- a/tests/frontend/workspaced-build-dep/elements/elem2.bst +++ b/tests/frontend/workspaced-build-dep/elements/elem2.bst @@ -1,5 +1,8 @@ kind: import +build-depends: +- elem1.bst + sources: - kind: local path: files/file2 diff --git a/tests/frontend/workspaced-build-dep/elements/elem3.bst b/tests/frontend/workspaced-build-dep/elements/elem3.bst index 4c9bf899c..6e1de0de4 100644 --- a/tests/frontend/workspaced-build-dep/elements/elem3.bst +++ b/tests/frontend/workspaced-build-dep/elements/elem3.bst @@ -1,8 +1,7 @@ kind: import -depends: -- filename: stack.bst - type: build +build-depends: +- elem2.bst sources: - kind: local diff --git a/tests/frontend/workspaced-build-dep/elements/elem4.bst b/tests/frontend/workspaced-build-dep/elements/elem4.bst new file mode 100644 index 000000000..a04f509a6 --- /dev/null +++ b/tests/frontend/workspaced-build-dep/elements/elem4.bst @@ -0,0 +1,8 @@ +kind: import + +build-depends: +- stack.bst + +sources: +- kind: local + path: files/file4 diff --git a/tests/frontend/workspaced-build-dep/elements/stack.bst b/tests/frontend/workspaced-build-dep/elements/stack.bst index 6ba3614be..b4c6002f0 100644 --- a/tests/frontend/workspaced-build-dep/elements/stack.bst +++ b/tests/frontend/workspaced-build-dep/elements/stack.bst @@ -1,5 +1,4 @@ kind: stack depends: -- elem1.bst -- elem2.bst +- elem3.bst diff --git a/tests/frontend/workspaced-build-dep/files/file4 b/tests/frontend/workspaced-build-dep/files/file4 new file mode 100644 index 000000000..e69de29bb diff --git a/tests/frontend/workspaced-runtime-dep/elements/elem2.bst b/tests/frontend/workspaced-runtime-dep/elements/elem2.bst index 5fb90dfc0..a841b9fd0 100644 --- a/tests/frontend/workspaced-runtime-dep/elements/elem2.bst +++ b/tests/frontend/workspaced-runtime-dep/elements/elem2.bst @@ -1,8 +1,7 @@ kind: import -depends: -- filename: elem1.bst - type: runtime +runtime-depends: +- elem1.bst sources: - kind: local diff --git a/tests/frontend/workspaced-runtime-dep/elements/elem3.bst b/tests/frontend/workspaced-runtime-dep/elements/elem3.bst index 4c9bf899c..d817f4bb0 100644 --- a/tests/frontend/workspaced-runtime-dep/elements/elem3.bst +++ b/tests/frontend/workspaced-runtime-dep/elements/elem3.bst @@ -1,8 +1,7 @@ kind: import -depends: -- filename: stack.bst - type: build +runtime-depends: +- elem2.bst sources: - kind: local diff --git a/tests/frontend/workspaced-runtime-dep/elements/elem4.bst b/tests/frontend/workspaced-runtime-dep/elements/elem4.bst new file mode 100644 index 000000000..a04f509a6 --- /dev/null +++ b/tests/frontend/workspaced-runtime-dep/elements/elem4.bst @@ -0,0 +1,8 @@ +kind: import + +build-depends: +- stack.bst + +sources: +- kind: local + path: files/file4 diff --git a/tests/frontend/workspaced-runtime-dep/elements/stack.bst b/tests/frontend/workspaced-runtime-dep/elements/stack.bst index 3e1ea7920..b4c6002f0 100644 --- a/tests/frontend/workspaced-runtime-dep/elements/stack.bst +++ b/tests/frontend/workspaced-runtime-dep/elements/stack.bst @@ -1,4 +1,4 @@ kind: stack depends: -- elem2.bst +- elem3.bst diff --git a/tests/frontend/workspaced-runtime-dep/files/file4 b/tests/frontend/workspaced-runtime-dep/files/file4 new file mode 100644 index 000000000..e69de29bb -- cgit v1.2.1