示例#1
0
  def testReadConfiguration(self):
    """Tests the _ReadConfiguration function."""
    test_data = [
        '                        Name="Release|Win32"',
        ('                        OutputDirectory='
         '"$(SolutionDir)$(ConfigurationName)"'),
        '                        IntermediateDirectory="$(ConfigurationName)"',
        '                        ConfigurationType="2"',
        '                        CharacterSet="1"',
        '                        >',
        '                </Configuration>']

    file_reader = readers.VS2008ProjectFileReader()

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)

    project_configuration = file_reader._ReadConfiguration('<Configuration')
    self.assertIsNotNone(project_configuration)

    self.assertEqual(project_configuration.character_set, '1')
    self.assertEqual(project_configuration.output_type, '2')

    project_configuration = file_reader._ReadConfiguration('')
    self.assertIsNone(project_configuration)
示例#2
0
    def _GetProjectFileReader(self, input_version):
        """Retrieves a Visual Studio project file reader.

    Args:
      input_version (str): input version of the Visual Studio solution.

    Returns:
      VSProjectFileReader: Visual Studio project file reader or None if version
          is not supported.
    """
        if input_version == '2008':
            return readers.VS2008ProjectFileReader()
        if input_version == '2010':
            return readers.VS2010ProjectFileReader()
        if input_version == '2012':
            return readers.VS2012ProjectFileReader()
        if input_version == '2013':
            return readers.VS2013ProjectFileReader()
        if input_version == '2015':
            return readers.VS2015ProjectFileReader()
        if input_version == '2017':
            return readers.VS2017ProjectFileReader()
        if input_version == '2019':
            return readers.VS2019ProjectFileReader()

        return None
示例#3
0
  def testReadFiles(self):
    """Tests the _ReadFiles function."""
    test_data = [
        '        <Files>',
        '                <Filter',
        '                        Name="Source Files"',
        ('                        Filter='
         '"cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"'),
        ('                        UniqueIdentifier='
         '"{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"'),
        '                        >',
        '                        <File',
        '                                RelativePath="test.c"',
        '                                >',
        '                        </File>',
        '                </Filter>',
        '        </Files>']

    project_information = resources.VSProjectInformation()

    file_reader = readers.VS2008ProjectFileReader()

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)
    file_reader._ReadFiles(project_information)
示例#4
0
  def testParseConfigurationOption(self):
    """Tests the _ParseConfigurationOption function."""
    project_configuration = resources.VSProjectConfiguration()

    file_reader = readers.VS2008ProjectFileReader()

    line = 'Optimization="0"'
    file_reader._ParseConfigurationOption(
        project_configuration, 'Optimization', 'optimization', line)
    self.assertEqual(project_configuration.optimization, '0')
示例#5
0
  def testReadProject(self):
    """Tests the ReadProject function."""
    file_reader = readers.VS2008ProjectFileReader()

    path = self._GetTestFilePath(['2008.vcproj'])
    file_reader.Open(path)

    file_reader.ReadHeader()
    file_reader.ReadProject()

    file_reader.Close()
示例#6
0
  def testReadProjectInformation(self):
    """Tests the _ReadProjectInformation function."""
    test_data = [
        '        Name="libcerror"',
        '        ProjectGUID="{C42F5217-137D-4F10-9D6A-3C6D44E43453}"',
        '        RootNamespace="libcerror"',
        '        TargetFrameworkVersion="131072"',
        '        >']

    project_information = resources.VSProjectInformation()

    file_reader = readers.VS2008ProjectFileReader()

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)
    file_reader._ReadProjectInformation(project_information)
示例#7
0
  def testReadHeader(self):
    """Tests the ReadHeader function."""
    test_data = [
        '<?xml version="1.0" encoding="Windows-1252"?>',
        '<VisualStudioProject',
        '        ProjectType="Visual C++"',
        '        Version="9,00"']

    file_reader = readers.VS2008ProjectFileReader()

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)
    result = file_reader.ReadHeader()
    self.assertTrue(result)

    test_data[3] = ''

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)
    result = file_reader.ReadHeader()
    self.assertFalse(result)

    test_data[2] = ''

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)
    result = file_reader.ReadHeader()
    self.assertFalse(result)

    test_data[1] = ''

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)
    result = file_reader.ReadHeader()
    self.assertFalse(result)

    test_data[0] = ''

    file_data = '\n'.join(test_data).encode('utf-8')
    file_reader._file = io.BytesIO(file_data)
    result = file_reader.ReadHeader()
    self.assertFalse(result)