Navdeep M. Singh

61 papers C 10Journal 24Unranked 27
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans Autom. Sci. Eng.
Hozefa Jesawada, Amol Yerudkar, Yang Liu, Navdeep M. Singh, Carmen Del Vecchio
2025 J jnl
CoRR
M. Parimi, Rachit Mehra, S. R. Wagh, Amol Yerudkar, Navdeep M. Singh
2025 J jnl
CoRR
Rachit Mehra, M. Parimi, S. R. Wagh, Navdeep M. Singh
2024 J jnl
IEEE Control. Syst. Lett.
Revati Gunjal, Syed Shadab Nayyer, Sushama Wagh, Navdeep M. Singh
2024 J jnl
IEEE Trans. Autom. Control.
Sonam Kharade, Sarang Sutavani, Amol Yerudkar, Sushama Wagh, Yang Liu, Carmen Del Vecchio, Navdeep M. Singh
2023 J jnl
IEEE Control. Syst. Lett.
Syed Shadab Nayyer, S. R. Wagh, Navdeep M. Singh
2023 C conf
CoDIT
B. Devangee, C. Wagh, S. R. Wagh, Navdeep M. Singh, Aleksandar M. Stankovic
2022 J jnl
CoRR
Hozefa Jesawada, Amol Yerudkar, Carmen Del Vecchio, Navdeep M. Singh
2022 conf
CDC
Hozefa Jesawada, Amol Yerudkar, Carmen Del Vecchio, Navdeep M. Singh
2022 conf
ANZCC
C. Chaitali, J. Swapnil, Syed Shadab, S. R. Wagh, Navdeep M. Singh
2022 J jnl
CoRR
G. Revati, Syed Shadab, K. Sonam, Sushama R. Wagh, Navdeep M. Singh
2022 conf
ANZCC
Mariya Raphel, Revati Gunjal, S. R. Wagh, Navdeep M. Singh
2022 J jnl
IEEE Access
Syed Shadab Nayyer, Hozefa Jesawada, Revati Gunjal, S. K. Bhil, S. R. Wagh, Navdeep M. Singh
2022 J jnl
CoRR
Syed Shadab Nayyer, G. Revati, S. R. Wagh, Navdeep M. Singh
2022 J jnl
CoRR
Syed Shadab Nayyer, Sushama R. Wagh, Navdeep M. Singh
2021 conf
MED
Hozefa Jesawada, S. Shadab, G. Revati, S. R. Wagh, Navdeep M. Singh
2021 conf
ANZCC
N. Snehal, W. Pooja, K. Sonam, S. R. Wagh, Navdeep M. Singh
2021 conf
ANZCC
W. Pooja, N. Snehal, K. Sonam, S. R. Wagh, Navdeep M. Singh
2021 C conf
ACC
K. Sonam, Sarang Sutavani, S. R. Wagh, F. S. Kazi, Navdeep M. Singh
2021 J jnl
IEEE Access
K. Sonam, Sarang Sutavani, S. R. Wagh, Navdeep M. Singh
2021 conf
MED
G. Revati, Hozefa Jesawada, S. Shadab, Mohd Adil Anwar Sheikh, S. R. Wagh, Navdeep M. Singh
2020 C conf
ACC
D. Vrushabh, Shalini K, K. Sonam, S. R. Wagh, Navdeep M. Singh
2020 conf
ECC
A. Saija, K. Sonam, F. S. Kazi, Navdeep M. Singh
2020 conf
MED
P. Akshay, D. Vrushabh, K. Sonam, S. R. Wagh, Navdeep M. Singh
2020 conf
ANZCC
S. Shadab, Hozefa Jesawada, S. R. Wagh, Navdeep M. Singh
2020 conf
MED
K. Sunny, Mohd Adil Anwar Sheikh, S. R. Wagh, Navdeep M. Singh
2020 conf
MED
D. Vrushabh, P. Akshay, K. Sonam, S. R. Wagh, Navdeep M. Singh
2020 J jnl
IEEE Access
Mohd Adil Anwar Sheikh, V. Kamuni, Asfia Urooj, S. R. Wagh, Navdeep M. Singh, Dhiren Patel
2019 conf
MED
U. Asfia, V. Kamuni, Sarang Sutavani, Mohd Adil Anwar Sheikh, S. R. Wagh, Navdeep M. Singh
2019 J jnl
IEEE Access
Prashant Bansode, Krishna Chaitanya Kosaraju, S. R. Wagh, Ramkrishna Pasumarthy, Navdeep M. Singh
2019 J jnl
CoRR
Sarang Sutavani, K. Sonam, S. R. Wagh, Navdeep M. Singh
2019 conf
ECC
Joseph Moyalan, M. Sawant, U. Bhagyashree, Mohd Adil Anwar Sheikh, S. R. Wagh, Navdeep M. Singh
2019 J jnl
CoRR
Pratik K. Bajaria, Sushama R. Wagh, Navdeep M. Singh
2019 J jnl
IEEE Trans. Control. Syst. Technol.
Ragini V. Meshram, Monika Bhagwat, Shubhangi Khade, Sushama Wagh, Aleksandar M. Stankovic, Navdeep M. Singh
2019 conf
MED
M. Sawant, Joseph Moyalan, U. Bhagyashree, Mohd Adil Anwar Sheikh, S. R. Wagh, Navdeep M. Singh
2019 conf
MED
Kisan Sarda, Amol Yerudkar, Carmen Del Vecchio, Luigi Glielmo, Navdeep M. Singh
2018 J jnl
Adv. Complex Syst.
Aniket Deshpande, Pushpak Jagtap, Prashant Bansode, Arun Mahindrakar, Navdeep M. Singh
2018 C conf
ACC
Krishna Chaitanya Kosaraju, Venkatesh Chinde, Ramkrishna Pasumarthy, Atul G. Kelkar, Navdeep M. Singh
2018 J jnl
CoRR
Krishna Chaitanya Kosaraju, Venkatesh Chinde, Ramkrishna Pasumarthy, Navdeep M. Singh
2018 conf
ECC
Amol Yerudkar, Carmen Del Vecchio, Navdeep M. Singh, Luigi Glielmo
2018 J jnl
IEEE Control. Syst. Lett.
Krishna Chaitanya Kosaraju, Venkatesh Chinde, Ramkrishna Pasumarthy, Atul G. Kelkar, Navdeep M. Singh
2017 J jnl
Autom.
Rachit Mehra, Sumeet G. Satpute, Faruk Kazi, Navdeep M. Singh
2017 conf
ICCSAMA
Prashant Bhopale, Pratik Bajaria, Navdeep M. Singh, Faruk Kazi
2017 J jnl
IEEE Trans. Ind. Electron.
Sneha Mane, Manas Mejari, Faruk Kazi, Navdeep M. Singh
2016 C conf
ACC
Venkatesh Chinde, Krishna Chaitanya Kosaraju, Atul G. Kelkar, Ramkrishna Pasumarthy, S. Sarkar, Navdeep M. Singh
2016 J jnl
IEEE Trans. Smart Grid
Priyanka Dey, Rachit Mehra, Faruk Kazi, Sushama Wagh, Navdeep M. Singh
2016 J jnl
IEEE Trans. Autom. Control.
Alejandro Donaire, Rachit Mehra, Romeo Ortega, Sumeet G. Satpute, José Guadalupe Romero, Faruk Kazi, Navdeep M. Singh
2015 C conf
CCA
Pushpak Jagtap, Aniket Deshpande, Navdeep M. Singh, Faruk Kazi
2015 C conf
ACC
Alejandro Donaire, Rachit Mehra, Romeo Ortega, Sumeet G. Satpute, José Guadalupe Romero, Faruk Kazi, Navdeep M. Singh
2014 conf
MED
Pratik Bajaria, Abhishek Pandey, Amol Yerudkar, Faruk Kazi, Navdeep M. Singh
2013 conf
ICCA
Rachit Mehra, Venkatesh Chinde, Navdeep M. Singh, Faruk Kazi
2013 conf
ICACCI
Isha Wasnik, Rucha Sawlekar, Faruk Kazi, Navdeep M. Singh
2013 conf
CDC
Ramkrishna Pasumarthy, Gourav Saha, Faruk Kazi, Navdeep M. Singh
2013 conf
ICACCI
Rachit Mehra, Viresh Patel, Faruk Kazi, Navdeep M. Singh, S. R. Wagh
2013 conf
ICACCI
Amruta Kulkarni, Faruk Kazi, Navdeep M. Singh
2013 conf
AIR
Ankit Gupta, Manas Mejari, Vishwanath Ketkar, Mandar Datar, Navdeep M. Singh
2013 conf
AIR
Manas Mejari, Ankit Gupta, Navdeep M. Singh, Faruk Kazi
2012 C conf
ICARCV
Abhaya Pal Singh, Faruk Kazi, Navdeep M. Singh, Pallavi Srivastava
2012 C conf
ICARCV
Rachit Mehra, Sumeet G. Satpute, Faruk Kazi, Navdeep M. Singh
2010 conf
CDC
Atul Krishna Kamath, Navdeep M. Singh, Faruk Kazi, Ramkrishna Pasumarthy
2009 C conf
ACC
Atul Krishna Kamath, Navdeep M. Singh
tests/unit/test_decompile_arch.py
← Index tests/unit/test_decompile_arch.py python
"""Unit tests for architecture modules:
- bninja/arch/creator.py
- bninja/arch/x86.py
"""
import sys
import pytest

# Install binaryninja stubs before importing arch modules
from tests.unit.conftest_binja_stubs import install_binja_stubs
install_binja_stubs()

from redb.extractors.decompiler.bninja.arch.creator import ArchitectureCreator
from redb.extractors.decompiler.bninja.arch.x86 import Arch_x86


# ============================================================================
# 3a. ArchitectureCreator
# ============================================================================

class TestArchitectureCreator:
    def test_create_x86(self):
        arch = ArchitectureCreator("x86").get()
        assert isinstance(arch, Arch_x86)

    def test_create_x86_case_insensitive(self):
        for name in ["X86", "x86", "X86"]:
            arch = ArchitectureCreator(name).get()
            assert isinstance(arch, Arch_x86)

    def test_unsupported_arch_raises(self):
        with pytest.raises(ValueError, match="Unsupported architecture"):
            ArchitectureCreator("arm").get()


# ============================================================================
# 3b. Arch_x86
# ============================================================================

class TestArch_x86Registers:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_register_valid(self):
        assert self.arch.is_register("RAX") is True
        assert self.arch.is_register("eax") is True
        assert self.arch.is_register("XMM0") is True

    def test_is_register_invalid(self):
        assert self.arch.is_register("INVALID_REG") is False

    def test_is_general_purpose_register(self):
        assert self.arch.is_general_purpose_register("RAX") is True
        assert self.arch.is_general_purpose_register("XMM0") is False

    def test_is_stack_register(self):
        assert self.arch.is_stack_register("RSP") is True
        assert self.arch.is_stack_register("RBP") is True
        assert self.arch.is_stack_register("RAX") is False

    def test_is_xmm_register(self):
        assert self.arch.is_xmm_register("XMM0") is True
        assert self.arch.is_xmm_register("RAX") is False


class TestArch_x86OpcodeCategories:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_opcode_categories_populated(self):
        assert len(self.arch.opcode_categories) > 0

    def test_opcode_mov_category(self):
        assert self.arch.opcode_categories["MOV"] == "DATA_MOVEMENT"

    def test_opcode_call_category(self):
        assert self.arch.opcode_categories["CALL"] == "CONTROL_FLOW"

    def test_opcode_add_category(self):
        assert self.arch.opcode_categories["ADD"] == "ARITHMETIC"


class TestArch_x86ControlFlow:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_control_flow_instruction_by_mnemonic(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("JMP") is True
        assert self.arch.is_control_flow_instruction_by_mnemonic("MOV") is False

    def test_is_control_flow_instruction_call(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("CALL") is True

    def test_is_control_flow_instruction_ret(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("RET") is True

    def test_is_control_flow_instruction_loop(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("LOOP") is True

    def test_is_control_flow_instruction_empty(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("") is False
        assert self.arch.is_control_flow_instruction_by_mnemonic(None) is False