summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim MacArthur <jim.macarthur@codethink.co.uk>2018-09-28 16:33:42 +0100
committerJim MacArthur <jim.macarthur@codethink.co.uk>2018-09-28 16:33:42 +0100
commitb9ffdd29005efe31c5dfbcef3fc17f13904934aa (patch)
treec51aea19bc88d0a1117209b6b0540466307b8690
parentab0a38cb200c5732666966aa1445f47d2eb60367 (diff)
downloadbuildstream-jmac/vdir_import_test_backup.tar.gz
Tests: add test_directory_listingjmac/vdir_import_test_backup
-rw-r--r--tests/storage/virtual_directory_import.py34
1 files changed, 31 insertions, 3 deletions
diff --git a/tests/storage/virtual_directory_import.py b/tests/storage/virtual_directory_import.py
index b0dee41d1..b76fef787 100644
--- a/tests/storage/virtual_directory_import.py
+++ b/tests/storage/virtual_directory_import.py
@@ -3,6 +3,7 @@ import pytest
from tests.testutils import cli
from buildstream.storage import CasBasedDirectory
+from buildstream.storage import FileBasedDirectory
class FakeContext():
@@ -57,12 +58,19 @@ def file_contents_are(path, contents):
return file_contents(path) == contents
-def create_new_vdir(root_number, fake_context, tmpdir):
+def create_new_casdir(root_number, fake_context, tmpdir):
d = CasBasedDirectory(fake_context)
d.import_files(os.path.join(tmpdir, "content", "root{}".format(root_number)))
assert d.ref.hash != empty_hash_ref
return d
+def create_new_filedir(root_number, tmpdir):
+ root = os.path.join(tmpdir, "vdir")
+ os.makedirs(root)
+ d = FileBasedDirectory(root)
+ d.import_files(os.path.join(tmpdir, "content", "root{}".format(root_number)))
+ return d
+
def combinations(integer_range):
for x in integer_range:
@@ -110,8 +118,8 @@ def test_cas_import(cli, tmpdir, original, overlay):
# Create some fake content
generate_import_roots(tmpdir)
- d = create_new_vdir(original, fake_context, tmpdir)
- d2 = create_new_vdir(overlay, fake_context, tmpdir)
+ d = create_new_casdir(original, fake_context, tmpdir)
+ d2 = create_new_casdir(overlay, fake_context, tmpdir)
d.import_files(d2)
d.export_files(os.path.join(tmpdir, "output"))
@@ -135,3 +143,23 @@ def test_cas_import(cli, tmpdir, original, overlay):
elif typename == 'D':
# Note that isdir accepts symlinks to dirs, so a symlink to a dir is acceptable.
assert os.path.isdir(realpath)
+
+
+@pytest.mark.parametrize("root", [1, 2, 3, 4, 5])
+def test_directory_listing(cli, tmpdir, root):
+ fake_context = FakeContext()
+ fake_context.artifactdir = tmpdir
+ # Create some fake content
+ generate_import_roots(tmpdir)
+
+ d = create_new_filedir(root, tmpdir)
+ filelist = list(d.list_relative_paths())
+
+ d2 = create_new_casdir(root, fake_context, tmpdir)
+ filelist2 = list(d2.list_relative_paths())
+
+ print("filelist for root {} via FileBasedDirectory:".format(root))
+ print("{}".format(filelist))
+ print("filelist for root {} via CasBasedDirectory:".format(root))
+ print("{}".format(filelist2))
+ assert(filelist==filelist2)