Rakesh Tripathi

49 papers C 1Misc 4Journal 33Unranked 10
YearRankTypeTitle / Venue / Authors
2026 J jnl
Ad Hoc Networks
Anjali Rajak, Rakesh Tripathi
2025 J jnl
Internet Technol. Lett.
Anjali Rajak, Rakesh Tripathi
2024 J jnl
Comput. Stand. Interfaces
Anjali Rajak, Rakesh Tripathi
2024 conf
ICCCNT
Priyanka Dass, Anjali Rajak, Rakesh Tripathi
2024 conf
OCIT
Upendra, Rakesh Tripathi, Tirath Prasad Sahu
2023 J jnl
J. Parallel Distributed Comput.
Prabhat Kumar, Randhir Kumar, Govind P. Gupta, Rakesh Tripathi, Alireza Jolfaei, A. K. M. Najmul Islam
2023 conf
ICCCNT
Hrishikesh Khandare, Anjali Rajak, Rakesh Tripathi
2023 J jnl
Autom. Control. Comput. Sci.
Anjali Rajak, Rakesh Tripathi
2023 J jnl
IEEE Trans. Intell. Transp. Syst.
Prabhat Kumar, Govind P. Gupta, Rakesh Tripathi, Sahil Garg, Mohammad Mehedi Hassan
2023 J jnl
Knowl. Inf. Syst.
Dasari Anantha Reddy, Swarup Roy, Sanjay Kumar, Rakesh Tripathi
2023 conf
ICMLDE
Dasari Anantha Reddy, Swarup Roy, Sanjay Kumar, Rakesh Tripathi, Neel Prabha
2023 J jnl
Comput. Commun.
Balaprakasa Rao Killi, Rakesh Tripathi, Venkatarami Reddy Chintapalli
2022 J jnl
IEEE Trans. Intell. Transp. Syst.
Randhir Kumar, Prabhat Kumar, Rakesh Tripathi, Govind P. Gupta, Neeraj Kumar, Mohammad Mehedi Hassan
2022 J jnl
J. Parallel Distributed Comput.
Randhir Kumar, Prabhat Kumar, Rakesh Tripathi, Govind P. Gupta, Sahil Garg, Mohammad Mehedi Hassan
2022 J jnl
IEEE Trans. Green Commun. Netw.
Prabhat Kumar, Randhir Kumar, Govind P. Gupta, Rakesh Tripathi
2022 J jnl
IEEE Internet Things J.
Randhir Kumar, Prabhat Kumar, Rakesh Tripathi, Govind P. Gupta, Sahil Garg, Mohammad Mehedi Hassan
2022 J jnl
IEEE Trans. Green Commun. Netw.
Rakesh Tripathi, Vignesh Sivaraman, Venkatesh Tamarapalli
2022 J jnl
IEEE Trans. Intell. Transp. Syst.
Randhir Kumar, Prabhat Kumar, Rakesh Tripathi, Govind P. Gupta, Neeraj Kumar
2022 J jnl
IEEE Trans. Ind. Informatics
Prabhat Kumar, Randhir Kumar, Govind P. Gupta, Rakesh Tripathi, Gautam Srivastava
2022 J jnl
IEEE Micro
Prabhat Kumar, Govind P. Gupta, Rakesh Tripathi
2022 J jnl
IEEE Trans. Ind. Informatics
Randhir Kumar, Prabhat Kumar, Rakesh Tripathi, Govind P. Gupta, A. K. M. Najmul Islam, Mohammad Shorfuzzaman
2021 J jnl
J. Netw. Syst. Manag.
Moustafa Najm, Rakesh Tripathi, Mohammad Shadi Al Hakeem, Venkatesh Tamarapalli
2021 J jnl
Trans. Emerg. Telecommun. Technol.
Prabhat Kumar, Randhir Kumar, Govind P. Gupta, Rakesh Tripathi
2021 J jnl
J. Ambient Intell. Humaniz. Comput.
Prabhat Kumar, Govind P. Gupta, Rakesh Tripathi
2021 J jnl
J. Parallel Distributed Comput.
Randhir Kumar, Rakesh Tripathi, Ningrinla Marchang, Gautam Srivastava, Thippa Reddy Gadekallu, Neal N. Xiong
2021 J jnl
Comput. Commun.
Prabhat Kumar, Govind P. Gupta, Rakesh Tripathi
2021 J jnl
Trans. Emerg. Telecommun. Technol.
Randhir Kumar, Rakesh Tripathi
2021 J jnl
Int. J. Inf. Secur. Priv.
Randhir Kumar, Rakesh Tripathi
2021 J jnl
Autom. Control. Comput. Sci.
Prabhat Kumar, Govind P. Gupta, Rakesh Tripathi
2021 conf
ICDCN (Adjunct Volume)
Prabhat Kumar, Rakesh Tripathi, Govind P. Gupta
2021 J jnl
IEEE Trans. Netw. Sci. Eng.
Prabhat Kumar, Randhir Kumar, Gautam Srivastava, Govind P. Gupta, Rakesh Tripathi, Thippa Reddy Gadekallu, Neal N. Xiong
2021 J jnl
Comput. Networks
Randhir Kumar, Prabhat Kumar, Rakesh Tripathi, Govind P. Gupta, Thippa Reddy Gadekallu, Gautam Srivastava
2021 J jnl
J. Ambient Intell. Humaniz. Comput.
Randhir Kumar, Rakesh Tripathi
2021 J jnl
J. Syst. Archit.
Prabhat Kumar, Govind P. Gupta, Rakesh Tripathi
2021 J jnl
J. Supercomput.
Randhir Kumar, Rakesh Tripathi
2020 Misc conf
COMSNETS
Randhir Kumar, Ningrinla Marchang, Rakesh Tripathi
2020 ch.
Blockchain Cybersecurity, Trust and Privacy
Randhir Kumar, Rakesh Tripathi
2019 Misc conf
COMSNETS
Randhir Kumar, Rakesh Tripathi
2017 J jnl
IEEE Trans. Netw. Serv. Manag.
Rakesh Tripathi, S. Vignesh, Venkatesh Tamarapalli, Deep Medhi
2017 J jnl
J. Parallel Distributed Comput.
Rakesh Tripathi, S. Vignesh, Venkatesh Tamarapalli, Anthony T. Chronopoulos, Hajar Siar
2017 J jnl
IEEE Commun. Lett.
Rakesh Tripathi, S. Vignesh, Venkatesh Tamarapalli
2016 Misc conf
COMSNETS
Rakesh Tripathi, S. Vignesh, Venkatesh Tamarapalli
2016 conf
ICC
Rakesh Tripathi, S. Vignesh, Venkatesh Tamarapalli
2016 conf
ANTS
S. Vignesh, Rakesh Tripathi, Venkatesh Tamarapalli
2016 conf
ANTS
Rakesh Tripathi, S. Vignesh, Venkatesh Tamarapalli
2008 conf
ISPAN
Nityananda Sarma, Sukumar Nandi, Rakesh Tripathi
2007 conf
PReMI
Rakesh Tripathi, R. Aravind
2005 Misc conf
ICDCIT
Rakesh Tripathi, Rajib Mall
2005 C conf
APSEC
Rakesh Tripathi, Rajib Mall
tests/unit/test_extractor_registry.py
← Index tests/unit/test_extractor_registry.py python
"""
Unit tests for the extractor registry (redb/extractor_registry.py).

Verifies that all file-type groups load correctly, return the expected
extractors, and that lookup/filtering logic works as intended.
"""
import pytest

from redb.extractor_registry import (
    get_filetype_modules,
    get_extractor_class,
    FILETYPE_TO_GROUP,
    _REGISTRY,
)

pytestmark = [pytest.mark.unit]


# ============================================================================
# get_filetype_modules — group loading
# ============================================================================

class TestGetFiletypeModules:

    @pytest.mark.parametrize("filetype,expected_names", [
        ("pebin", [
            "PEFeaturesExtractor", "PEImportExtractor", "PEResourceExtractor",
            "PEOverlayExtractor", "PESectionExtractor", "PESignatureExtractor",
            "PEExtraFindings", "PEInconstistencyTestsExtractor", "PEDotNetExtractor",
        ]),
        ("elf", [
            "ELFFeaturesExtractor", "ELFSegmentExtractor", "ELFSectionExtractor",
            "ELFDependencyExtractor", "ELFSymbolExtractor", "ELFImportExtractor",
            "ELFExportExtractor", "ELFRelocationExtractor", "ELFNotesExtractor",
        ]),
        ("macho", [
            "MachOFeaturesExtractor", "MachOSegmentExtractor",
            "MachOImportExtractor", "MachOExportExtractor",
            "MachODylibExtractor", "MachOSignatureExtractor",
        ]),
        ("apk", [
            "APKFeaturesExtractor", "APKManifestExtractor",
            "APKPermissionsExtractor", "APKSignatureExtractor",
            "APKDexExtractor", "APKResourceExtractor",
            "APKNativeLibExtractor", "APKInconsistencyTestsExtractor",
        ]),
    ])
    def test_loads_all_extractors_for_filetype(self, filetype, expected_names):
        """Each filetype group should return all its registered extractors."""
        modules = get_filetype_modules(filetype)
        names = [m.__name__ for m in modules]
        for expected in expected_names:
            assert expected in names, f"{expected} missing from {filetype} modules"

    def test_apk_excludes_decompilers(self):
        """get_filetype_modules should not include DecompileAPK."""
        modules = get_filetype_modules("apk")
        names = [m.__name__ for m in modules]
        assert "DecompileAPK" not in names

    def test_unknown_filetype_returns_empty(self):
        """An unrecognized filetype should return an empty list."""
        assert get_filetype_modules("unknown_format") == []

    def test_returned_classes_are_callable(self):
        """All returned extractor classes should be callable (i.e., actual classes)."""
        for filetype in FILETYPE_TO_GROUP:
            for cls in get_filetype_modules(filetype):
                assert callable(cls), f"{cls} is not callable"


# ============================================================================
# get_extractor_class — single lookup
# ============================================================================

class TestGetExtractorClass:

    def test_finds_pe_extractor(self):
        cls = get_extractor_class("PEFeaturesExtractor")
        assert cls is not None
        assert cls.__name__ == "PEFeaturesExtractor"

    def test_finds_elf_extractor(self):
        cls = get_extractor_class("ELFSectionExtractor")
        assert cls is not None
        assert cls.__name__ == "ELFSectionExtractor"

    def test_finds_macho_extractor(self):
        cls = get_extractor_class("MachOSignatureExtractor")
        assert cls is not None
        assert cls.__name__ == "MachOSignatureExtractor"

    def test_finds_apk_extractor(self):
        cls = get_extractor_class("APKDexExtractor")
        assert cls is not None
        assert cls.__name__ == "APKDexExtractor"

    def test_finds_decompile_apk(self):
        cls = get_extractor_class("DecompileAPK")
        assert cls is not None
        assert cls.__name__ == "DecompileAPK"

    def test_returns_none_for_unknown(self):
        assert get_extractor_class("NonExistentExtractor") is None


# ============================================================================
# Registry completeness
# ============================================================================

class TestRegistryCompleteness:

    def test_all_filetypes_have_registry_group(self):
        """Every filetype in FILETYPE_TO_GROUP should map to a valid registry group."""
        for filetype, group in FILETYPE_TO_GROUP.items():
            assert group in _REGISTRY, f"filetype {filetype} maps to unknown group {group}"

    def test_all_registry_groups_are_reachable(self):
        """Every registry group should be reachable via at least one filetype."""
        reachable = set(FILETYPE_TO_GROUP.values())
        for group in _REGISTRY:
            assert group in reachable, f"registry group {group} has no filetype mapping"


# ============================================================================
# Integration with workers.get_module_by_name
# ============================================================================

class TestWorkersGetModuleByName:

    def test_resolves_common_extractor(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("BasicPropertiesExtractor")
        assert cls is not None
        assert cls.__name__ == "BasicPropertiesExtractor"

    def test_resolves_type_specific_extractor(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("PEFeaturesExtractor")
        assert cls is not None
        assert cls.__name__ == "PEFeaturesExtractor"

    def test_resolves_decompile_apk(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("DecompileAPK")
        assert cls is not None

    def test_returns_none_for_unknown(self):
        from redb.workers import get_module_by_name
        assert get_module_by_name("BogusExtractor") is None