protected async Task DumpSubspace(IFdbReadOnlyTransaction tr, ISubspaceLocation location)
        {
            var subspace = await location.Resolve(tr);

            if (subspace != null)
            {
                await TestHelpers.DumpSubspace(tr, subspace);
            }
            else
            {
                Log($"# Location {location} not found!");
            }
        }
        public static async Task DumpLocation(IFdbDatabase db, ISubspaceLocation path, CancellationToken ct)
        {
            Assert.That(db, Is.Not.Null);

            using (var tr = await db.BeginTransactionAsync(ct))
            {
                tr.StopLogging();

                var subspace = await path.Resolve(tr);

                if (subspace == null)
                {
                    FdbTest.Log($"Dumping content of subspace {path}:");
                    FdbTest.Log("> EMPTY!");
                    return;
                }

                await DumpSubspace(tr, subspace).ConfigureAwait(false);

                if (path.Prefix.Count == 0)
                {
                    var names = await db.DirectoryLayer.TryListAsync(tr, path.Path);

                    if (names != null)
                    {
                        foreach (var name in names)
                        {
                            var child = await db.DirectoryLayer.TryOpenAsync(tr, path.Path[name]);

                            if (child != null)
                            {
                                await DumpSubspace(tr, child);
                            }
                        }
                    }
                }
            }
        }