Katarzyna Rycerz

42 papers B 1C 2Misc 9Journal 16Unranked 13
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Arkadiusz Wolk, Karol Capala, Katarzyna Rycerz
2026 J jnl
IEEE Trans. Netw. Sci. Eng.
Joan Falcó-Roget, Kacper Jurek, Barbara Wojtarowicz, Karol Capala, Katarzyna Rycerz
2025 J jnl
Inf. Softw. Technol.
Tomasz Lamza, Justyna Zawalska, Kacper Jurek, Mariusz Sterzel, Katarzyna Rycerz
2025 J jnl
CoRR
Marcin Kroczek, Justyna Zawalska, Katarzyna Rycerz
2024 conf
SC Workshops
Justyna Zawalska, Minh Chung, Katarzyna Rycerz, Laura Brandon Schulz, Martin Schulz, Dieter Kranzlmüller
2024 J jnl
CoRR
Joan Falcó-Roget, Kacper Jurek, Barbara Wojtarowicz, Karol Capala, Katarzyna Rycerz
2024 J jnl
CoRR
Tomasz Lamza, Justyna Zawalska, Kacper Jurek, Mariusz Sterzel, Katarzyna Rycerz
2023 conf
ICCS (5)
Tomasz Lamza, Justyna Zawalska, Mariusz Sterzel, Katarzyna Rycerz
2022 J jnl
Quantum Inf. Process.
Piotr Frackiewicz, Katarzyna Rycerz, Marek Szopa
2022 conf
PPAM (2)
Piotr Kotara, Tomasz Zawadzki, Katarzyna Rycerz
2022 conf
PPAM (2)
Justyna Zawalska, Katarzyna Rycerz
2021 J jnl
Comput. Informatics
Julia Plewa, Joanna Sienko, Katarzyna Rycerz
2020 J jnl
Quantum Inf. Process.
Katarzyna Rycerz, Piotr Frackiewicz
2020 conf
ICCS (6)
Dawid Tomasiewicz, Maciej Pawlik, Maciej Malawski, Katarzyna Rycerz
2019 conf
ICCS (2)
Michal Krok, Katarzyna Rycerz, Marian Bubak
2019 conf
ICCS (5)
Marcin Przewiezlikowski, Michal Grabowski, Dariusz Kurzyk, Katarzyna Rycerz
2018 J jnl
Simul. Model. Pract. Theory
Grazyna Skiba, Mateusz Starzec, Aleksander Byrski, Katarzyna Rycerz, Marek Kisiel-Dorohinicki, Wojciech Turek, Daniel Krzywicki, Tom Lenaerts, Juan C. Burguillo
2018 J jnl
Future Gener. Comput. Syst.
Aleksander Byrski, Katarzyna Rycerz, John Hughes, Kevin Hammond
2015 J jnl
Future Gener. Comput. Syst.
Katarzyna Rycerz, Marian Bubak, Eryk Ciepiela, Daniel Harezlak, Tomasz Gubala, Jan Meizner, Maciej Pawlik, Bartosz Wilk
2015 Misc conf
ICCS
Katarzyna Rycerz, Joanna Patrzyk, Bartlomiej Patrzyk, Marian Bubak
2015 J jnl
Comput. Sci.
Joanna Patrzyk, Bartlomiej Patrzyk, Katarzyna Rycerz, Marian Bubak
2015 conf
PPAM (1)
Katarzyna Rycerz, Marian Bubak
2014 ch.
PL-Grid
Katarzyna Rycerz, Marian Bubak, Eryk Ciepiela, Maciej Pawlik, Olivier Hoenen, Daniel Harezlak, Bartosz Wilk, Tomasz Gubala, Jan Meizner, David Coster
2013 Misc conf
ICCS
Mohamed Ben Belgacem, Bastien Chopard, Joris Borgdorff, Mariusz Mamonski, Katarzyna Rycerz, Daniel Harezlak
2013 Misc conf
ICCS
Katarzyna Rycerz, Eryk Ciepiela, Grzegorz Dyk, Derek Groen, Tomasz Gubala, Daniel Harezlak, Maciej Pawlik, James J. Suter, Stefan J. Zasada, Peter V. Coveney, Marian Bubak
2012 Misc conf
ICCS
Joris Borgdorff, Carles Bona-Casas, Mariusz Mamonski, Krzysztof Kurowski, Tomasz Piontek, Bartosz Bosak, Katarzyna Rycerz, Eryk Ciepiela, Tomasz Gubala, Daniel Harezlak, Marian Bubak, Eric Lorenz, Alfons G. Hoekstra
2011 conf
e-Science Workshops
Katarzyna Rycerz, Marcin Nowak, Pawel Pierzchala, Eryk Ciepiela, Daniel Harezlak, Marian Bubak
2011 C conf
SIMULTECH
Katarzyna Rycerz, Marian Bubak
2008 conf
ICCS (2)
Katarzyna Rycerz, Marian Bubak, Peter M. A. Sloot
2007 J jnl
Int. J. High Perform. Comput. Appl.
Katarzyna Rycerz, Alfredo Tirado-Ramos, Alessia Gualandris, Simon Portegies Zwart, Marian Bubak, Peter M. A. Sloot
2007 Misc conf
PPAM
Katarzyna Rycerz, Marian Bubak, Peter M. A. Sloot
2006 B conf
e-Science
Katarzyna Rycerz, Marian Bubak, Maciej Malawski, Peter M. A. Sloot
2006 conf
CoreGRID Integration Workshop
Katarzyna Rycerz, Marian Bubak, Peter M. A. Sloot, Vladimir Getov
2005 J jnl
Simul.
Katarzyna Rycerz, Marian Bubak, Maciej Malawski, Peter M. A. Sloot
2005 Misc conf
PPAM
Katarzyna Rycerz, Marian Bubak, Maciej Malawski, Peter M. A. Sloot
2005 Misc conf
PPAM
Tomasz Gubala, Marian Bubak, Maciej Malawski, Katarzyna Rycerz
2005 J jnl
Future Gener. Comput. Syst.
Marian Bubak, Tomasz Gubala, Michal Kapalka, Maciej Malawski, Katarzyna Rycerz
2004 Misc conf
International Conference on Computational Science
Marian Bubak, Tomasz Gubala, Michal Kapalka, Maciej Malawski, Katarzyna Rycerz
2004 C conf
DS-RT
Katarzyna Rycerz, Bartosz Balis, Robert Szymacha, Marian Bubak, Peter M. A. Sloot
2004 conf
European Across Grids Conference
Marian Bubak, Maciej Malawski, Grzegorz Mlynarczyk, Piotr Nowakowski, Robert Pajak, Katarzyna Rycerz, Michal Turala
2004 Misc conf
International Conference on Computational Science
Katarzyna Rycerz, Marian Bubak, Maciej Malawski, Peter M. A. Sloot
2004 conf
PVM/MPI
Tomasz Szepieniec, Marcin Radecki, Katarzyna Rycerz, Marian Bubak, Maciej Malawski
tests/integration/test_pe_extractor.py
← Index tests/integration/test_pe_extractor.py python
"""
Integration tests for the PEExtractor base class.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock

pytestmark = [pytest.mark.integration, pytest.mark.pe]


class TestPEExtractorInitialization:
    """Tests for PEExtractor initialization."""

    def test_pe_extractor_with_valid_pe(self, pe_binary_path, mock_logger):
        """Test PEExtractor initialization with valid PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            assert extractor.pe is not None
            assert extractor.filepath == pe_binary_path

    def test_pe_extractor_with_provided_pe_object(self, pe_binary_path, mock_logger, pe_object):
        """Test PEExtractor initialization with pre-existing PE object."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger, pe=pe_object)

            # Should use the provided PE object, not create a new one
            assert extractor.pe is pe_object

    def test_pe_extractor_with_invalid_file(self, elf_binary_path, mock_logger):
        """Test PEExtractor initialization with non-PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(elf_binary_path, mock_logger)

            # Should return None for pe when file is not a valid PE
            assert extractor.pe is None
            # Logger should have recorded an error
            assert mock_logger.error.called


class TestPEExtractorMethods:
    """Tests for PEExtractor helper methods."""

    def test_check_dotnet_true(self, pe_binary_path, mock_logger):
        """Test _check_dotnet returns True for .NET PE."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            # The test PE file is a .NET binary
            if extractor.pe is not None:
                result = extractor._check_dotnet()
                # d8637bdbcfc9112fcb1f0167b398e771 is a .NET binary
                assert result is True

    def test_check_dotnet_false(self, elf_binary_path, mock_logger):
        """Test _check_dotnet returns False for non-PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(elf_binary_path, mock_logger)

            # Should return False when PE is None
            result = extractor._check_dotnet()
            assert result is False

    def test_is_signed_false(self, pe_binary_path, mock_logger):
        """Test _is_signed method."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                result = extractor._is_signed()
                # Result depends on the actual binary
                assert isinstance(result, bool)

    def test_has_overlay(self, pe_binary_path, mock_logger):
        """Test _has_overlay method."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                result = extractor._has_overlay()
                assert isinstance(result, bool)


class TestGeneratePEFileObject:
    """Tests for _generate_pefile_object method."""

    def test_generate_pefile_object_valid(self, pe_binary_path, mock_logger):
        """Test _generate_pefile_object with valid PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            # The PE object should be created successfully
            assert extractor.pe is not None

    def test_generate_pefile_object_invalid(self, temp_text_file, mock_logger):
        """Test _generate_pefile_object with invalid file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(temp_text_file, mock_logger)

            # Should return None for invalid PE
            assert extractor.pe is None


class TestGenerateDotNetFileObject:
    """Tests for _generate_dotnetfile_object method."""

    def test_generate_dotnetfile_object_valid(self, pe_binary_path, mock_logger):
        """Test _generate_dotnetfile_object with .NET PE file."""
        from redb.extractors.pe_extractors.pe_dotnet import PEDotNetExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEDotNetExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None and extractor._check_dotnet():
                dotnet, error = extractor._generate_dotnetfile_object()
                # Should create dotnet object for .NET PE
                assert dotnet is not None
                assert error is None

    def test_generate_dotnetfile_object_invalid(self, elf_binary_path, mock_logger):
        """Test _generate_dotnetfile_object with non-.NET file."""
        from redb.extractors.pe_extractors.pe_dotnet import PEDotNetExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEDotNetExtractor(elf_binary_path, mock_logger)

            dotnet, error = extractor._generate_dotnetfile_object()
            # Should return error for non-.NET file
            assert dotnet is None
            assert error is not None


class TestPEExtractorTag:
    """Tests for tag method in PE extractors."""

    def test_pe_features_tag(self, pe_binary_path, mock_logger):
        """Test that PEFeaturesExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_FEATURES.value

    def test_pe_import_tag(self, pe_binary_path, mock_logger):
        """Test that PEImportExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_imports import PEImportExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEImportExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_IMPORT.value

    def test_pe_section_tag(self, pe_binary_path, mock_logger):
        """Test that PESectionExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_sections import PESectionExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PESectionExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_SECTION.value


class TestPEExtractorClickHouseTable:
    """Tests for get_clickhouse_table method in PE extractors."""

    def test_pe_features_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PEFeaturesExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_features"

    def test_pe_import_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PEImportExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_imports import PEImportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEImportExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_imports"

    def test_pe_section_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PESectionExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_sections import PESectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PESectionExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_sections"


class TestPEExtractorPrepareExportData:
    """Tests for prepare_export_data method in PE extractors."""

    def test_pe_features_prepare_export_elasticsearch(self, pe_binary_path, mock_logger):
        """Test prepare_export_data for Elasticsearch."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                # First extract
                extractor.extract()
                result = extractor.prepare_export_data("ElasticsearchExporter")
                # Should return the pe_features dataclass
                assert result is extractor.pe_features

    def test_pe_features_prepare_export_clickhouse(self, pe_binary_path, mock_logger):
        """Test prepare_export_data for ClickHouse."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                # First extract
                extractor.extract()
                result = extractor.prepare_export_data("ClickHouseExporter")

                # Should return tuple of (data, column_names, column_type_names)
                assert isinstance(result, tuple)
                assert len(result) == 3
                data, column_names, column_type_names = result
                assert isinstance(data, list)
                assert isinstance(column_names, list)
                assert isinstance(column_type_names, list)
                # Column names and types should match in length
                assert len(column_names) == len(column_type_names)