From 15a36546bd34361bab3673f5a58913b71f2b23ed Mon Sep 17 00:00:00 2001
From: Jonathan Maw <jonathan.maw@codethink.co.uk>
Date: Fri, 28 Sep 2018 17:52:01 +0100
Subject: [PATCH] element.py: Always clean up the rootdir

We shouldn't need it to persist now that we cache failed build dirs.

This change breaks the test
`tests/integration/shell.py::test_sysroot_workspace_visible`.
I can no longer see a use-case for this test.
AIUI, it tested that the failed build sysroot stored in the builddir has
the workspace's files in, despite the workspace being unmounted.
I believe this behaviour is made redundant by cached buildtrees.
---
 buildstream/element.py     |  4 ++--
 tests/integration/shell.py | 42 --------------------------------------
 2 files changed, 2 insertions(+), 44 deletions(-)

diff --git a/buildstream/element.py b/buildstream/element.py
index aff185405e..5fd635232a 100644
--- a/buildstream/element.py
+++ b/buildstream/element.py
@@ -1682,8 +1682,8 @@ class Element(Plugin):
                             "unable to collect artifact contents"
                             .format(collect))
 
-            # Finally cleanup the build dir
-            cleanup_rootdir()
+                    # Finally cleanup the build dir
+                    cleanup_rootdir()
 
         return artifact_size
 
diff --git a/tests/integration/shell.py b/tests/integration/shell.py
index 947650ff1f..cd3c1a9779 100644
--- a/tests/integration/shell.py
+++ b/tests/integration/shell.py
@@ -302,48 +302,6 @@ def test_workspace_visible(cli, tmpdir, datafiles):
     assert result.output == workspace_hello
 
 
-# Test that we can see the workspace files in a shell
-@pytest.mark.integration
-@pytest.mark.datafiles(DATA_DIR)
-def test_sysroot_workspace_visible(cli, tmpdir, datafiles):
-    project = os.path.join(datafiles.dirname, datafiles.basename)
-    workspace = os.path.join(cli.directory, 'workspace')
-    element_name = 'workspace/workspace-mount-fail.bst'
-
-    # Open a workspace on our build failing element
-    #
-    res = cli.run(project=project, args=['workspace', 'open', element_name, workspace])
-    assert res.exit_code == 0
-
-    # Ensure the dependencies of our build failing element are built
-    result = cli.run(project=project, args=['build', element_name])
-    result.assert_main_error(ErrorDomain.STREAM, None)
-
-    # Discover the sysroot of the failed build directory, after one
-    # failed build, there should be only one directory there.
-    #
-    build_base = os.path.join(cli.directory, 'build')
-    build_dirs = os.listdir(path=build_base)
-    assert len(build_dirs) == 1
-    build_dir = os.path.join(build_base, build_dirs[0])
-
-    # Obtain a copy of the hello.c content from the workspace
-    #
-    workspace_hello_path = os.path.join(cli.directory, 'workspace', 'hello.c')
-    assert os.path.exists(workspace_hello_path)
-    with open(workspace_hello_path, 'r') as f:
-        workspace_hello = f.read()
-
-    # Cat the hello.c file from a bst shell command, and assert
-    # that we got the same content here
-    #
-    result = cli.run(project=project, args=[
-        'shell', '--build', '--sysroot', build_dir, element_name, '--', 'cat', 'hello.c'
-    ])
-    assert result.exit_code == 0
-    assert result.output == workspace_hello
-
-
 # Test system integration commands can access devices in /dev
 @pytest.mark.datafiles(DATA_DIR)
 def test_integration_devices(cli, tmpdir, datafiles):
-- 
GitLab