Exemple #1
0
  def testOpenAndClose(self):
    """Test the open and close functionality."""
    file_system = apfs_container_file_system.APFSContainerFileSystem(
        self._resolver_context, self._apfs_container_path_spec)
    self.assertIsNotNone(file_system)

    file_system.Open()
Exemple #2
0
  def testFileEntryExistsByPathSpec(self):
    """Test the file entry exists by path specification functionality."""
    file_system = apfs_container_file_system.APFSContainerFileSystem(
        self._resolver_context)
    self.assertIsNotNone(file_system)

    file_system.Open(self._apfs_container_path_spec)

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/', parent=self._partition_path_spec)
    self.assertTrue(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        parent=self._partition_path_spec, volume_index=0)
    self.assertTrue(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/apfs1', parent=self._partition_path_spec)
    self.assertTrue(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        parent=self._partition_path_spec, volume_index=9)
    self.assertFalse(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/apfs0', parent=self._partition_path_spec)
    self.assertFalse(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/apfs9', parent=self._partition_path_spec)
    self.assertFalse(file_system.FileEntryExistsByPathSpec(path_spec))

    file_system.Close()
    def NewFileSystem(self, resolver_context):
        """Creates a new file system object.

    Args:
      resolver_context (Context): resolver context.

    Returns:
      APFSContainerFileSystem: file system.
    """
        return apfs_container_file_system.APFSContainerFileSystem(
            resolver_context)
Exemple #4
0
  def testGetRootFileEntry(self):
    """Test the get root file entry functionality."""
    file_system = apfs_container_file_system.APFSContainerFileSystem(
        self._resolver_context, self._apfs_container_path_spec)
    self.assertIsNotNone(file_system)

    file_system.Open()

    file_entry = file_system.GetRootFileEntry()

    self.assertIsNotNone(file_entry)
    self.assertEqual(file_entry.name, '')
  def NewFileSystem(self, resolver_context, path_spec):
    """Creates a new file system object.

    Args:
      resolver_context (Context): resolver context.
      path_spec (PathSpec): a path specification.

    Returns:
      APFSContainerFileSystem: file system.
    """
    return apfs_container_file_system.APFSContainerFileSystem(
        resolver_context, path_spec)
Exemple #6
0
  def testGetFileEntryByPathSpec(self):
    """Tests the GetFileEntryByPathSpec function."""
    file_system = apfs_container_file_system.APFSContainerFileSystem(
        self._resolver_context, self._apfs_container_path_spec)
    self.assertIsNotNone(file_system)

    file_system.Open()

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/',
        parent=self._raw_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNotNone(file_entry)
    self.assertEqual(file_entry.name, '')

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, parent=self._raw_path_spec,
        volume_index=0)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNotNone(file_entry)
    self.assertEqual(file_entry.name, 'apfs1')

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/apfs1',
        parent=self._raw_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNotNone(file_entry)
    self.assertEqual(file_entry.name, 'apfs1')

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, parent=self._raw_path_spec,
        volume_index=9)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNone(file_entry)

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/apfs0',
        parent=self._raw_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNone(file_entry)

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/apfs9',
        parent=self._raw_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNone(file_entry)
    def setUp(self):
        """Sets up the needed objects used throughout the test."""
        self._resolver_context = context.Context()
        test_file = self._GetTestFilePath(['apfs.dmg'])
        path_spec = os_path_spec.OSPathSpec(location=test_file)
        path_spec = raw_path_spec.RawPathSpec(parent=path_spec)
        self._partition_path_spec = tsk_partition_path_spec.TSKPartitionPathSpec(
            location='/p1', parent=path_spec)
        self._apfs_container_path_spec = (
            apfs_container_path_spec.APFSContainerPathSpec(
                location='/', parent=self._partition_path_spec))

        self._file_system = apfs_container_file_system.APFSContainerFileSystem(
            self._resolver_context)
        self._file_system.Open(self._apfs_container_path_spec)
Exemple #8
0
  def testGetFileEntryByPathSpec(self):
    """Tests the GetFileEntryByPathSpec function."""
    file_system = apfs_container_file_system.APFSContainerFileSystem(
        self._resolver_context)
    self.assertIsNotNone(file_system)

    file_system.Open(self._apfs_container_path_spec)

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/', parent=self._partition_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNotNone(file_entry)
    self.assertEqual(file_entry.name, '')

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        parent=self._partition_path_spec, volume_index=0)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNotNone(file_entry)
    self.assertEqual(file_entry.name, 'apfs1')

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/apfs1', parent=self._partition_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNotNone(file_entry)
    self.assertEqual(file_entry.name, 'apfs1')

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        parent=self._partition_path_spec, volume_index=9)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNone(file_entry)

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/apfs0', parent=self._partition_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNone(file_entry)

    path_spec = apfs_container_path_spec.APFSContainerPathSpec(
        location='/apfs9', parent=self._partition_path_spec)
    file_entry = file_system.GetFileEntryByPathSpec(path_spec)

    self.assertIsNone(file_entry)

    file_system.Close()
Exemple #9
0
  def setUp(self):
    """Sets up the needed objects used throughout the test."""
    self._resolver_context = context.Context()
    test_path = self._GetTestFilePath(['apfs.raw'])
    self._SkipIfPathNotExists(test_path)

    test_os_path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_OS, location=test_path)
    self._raw_path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_RAW, parent=test_os_path_spec)
    self._apfs_container_path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/',
        parent=self._raw_path_spec)

    self._file_system = apfs_container_file_system.APFSContainerFileSystem(
        self._resolver_context, self._apfs_container_path_spec)
    self._file_system.Open()
Exemple #10
0
  def testFileEntryExistsByPathSpec(self):
    """Test the file entry exists by path specification functionality."""
    file_system = apfs_container_file_system.APFSContainerFileSystem(
        self._resolver_context, self._apfs_container_path_spec)
    self.assertIsNotNone(file_system)

    file_system.Open()

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/',
        parent=self._raw_path_spec)
    self.assertTrue(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, parent=self._raw_path_spec,
        volume_index=0)
    self.assertTrue(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/apfs1',
        parent=self._raw_path_spec)
    self.assertTrue(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, parent=self._raw_path_spec,
        volume_index=9)
    self.assertFalse(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/apfs0',
        parent=self._raw_path_spec)
    self.assertFalse(file_system.FileEntryExistsByPathSpec(path_spec))

    path_spec = path_spec_factory.Factory.NewPathSpec(
        definitions.TYPE_INDICATOR_APFS_CONTAINER, location='/apfs9',
        parent=self._raw_path_spec)
    self.assertFalse(file_system.FileEntryExistsByPathSpec(path_spec))