R. Maheswar

26 papers Journal 15Unranked 4
YearRankTypeTitle / Venue / Authors
2022 book
IoT and WSN based Smart Cities
Shalli Rani, Vyasa Sai, R. Maheswar
2022 J jnl
Intell. Autom. Soft Comput.
D. Nageswari, R. Maheswar, P. Jayarajan
2022 book
Satish R. Jondhale, R. Maheswar, Jaime Lloret
2021 J jnl
Wirel. Pers. Commun.
R. Maheswar, P. Jayarajan, A. Sampathkumar, G. R. Kanagachidambaresan, M. H. D. Nour Hindia, Valmik Tilwari, Kaharudin Dimyati, Henry Ojukwu, Iraj Sadegh Amiri
2020 J jnl
J. Supercomput.
S. Malathy, Ravi Rastogi, R. Maheswar, G. R. Kanagachidambaresan, T. V. P. Sundararajan, Dhasarathan Vigneswaran
2020 J jnl
J. Supercomput.
P. Jayarajan, G. R. Kanagachidambaresan, T. V. P. Sundararajan, K. Sakthipandi, R. Maheswar, A. Karthikeyan
2020 J jnl
J. Intell. Fuzzy Syst.
Ghazanfar Latif, Jaafar M. Alghazo, R. Maheswar, V. Vijayakumar, Mohsin Butt
2020 ch.
Integration of WSN and IoT for Smart Cities
Ghazanfar Latif, Jaafar M. Alghazo, R. Maheswar, P. Jayarajan, A. Sampathkumar
2020 book
Shalli Rani, R. Maheswar, G. R. Kanagachidambaresan, P. Jayarajan
2020 ch.
Integration of WSN and IoT for Smart Cities
Ghazanfar Latif, Jaafar M. Alghazo, R. Maheswar, P. Jayarajan, A. Sampathkumar
2020 J jnl
Wirel. Pers. Commun.
Valmik Tilwari, R. Maheswar, P. Jayarajan, T. V. P. Sundararajan, Mohammad Nour Hindia, Kaharudin Dimyati, Henry Ojukwu, Iraj Sadegh Amiri
2020 conf
ICCCNT
A. Sampathkumar, R. Maheswar, Pon Harshavardhanan, S. Murugan, P. Jayarajan, V. Sivasankaran
2020 J jnl
J. Ambient Intell. Humaniz. Comput.
Varatharaj Kalpana, R. Maheswar, E. Nandakumar
2020 J jnl
Wirel. Networks
R. Maheswar, G. R. Kanagachidambaresan
2020 ch.
Integration of WSN and IoT for Smart Cities
Raluca Maria Aileni, George Suciu, Martin Serrano, R. Maheswar, Carlos Alberto Valderrama Sakuyama, Sever Pasca
2020 J jnl
J. Supercomput.
P. Thirumoorthy, P. Kalyanasundaram, R. Maheswar, P. Jayarajan, G. R. Kanagachidambaresan, Iraj S. Amiri
2020 ch.
Integration of WSN and IoT for Smart Cities
Mahmoud Abu Zaid, Mohamed Faizal, R. Maheswar, Osamah Ibrahiem Abdullaziz
2019 J jnl
J. Intell. Fuzzy Syst.
Rajkumar Rajavel, Kanagachidambaresan Iyer, R. Maheswar, P. Jayarajan, R. Udaiyakumar
2019 conf
ICCCNT
R. Maheswar, Aileni Raluca Maria, Nathirulla Sheriff, V. Mahima, G. R. Kanagachidambaresan, M. Lakshmi
2019 J jnl
Clust. Comput.
P. Jayarajan, R. Maheswar, G. R. Kanagachidambaresan
2019 J jnl
Clust. Comput.
D. Nageswari, R. Maheswar, G. R. Kanagachidambaresan
2018 conf
ICCCNT
R. Maheswar, P. Jayarajan, S. Vimalraj, G. Sivagnanam, V. Sivasankaran, Iraj S. Amiri
2018 J jnl
Wirel. Pers. Commun.
R. Udaiyakumar, Senoj Joseph, T. V. P. Sundararajan, Dhasarathan Vigneswaran, R. Maheswar, Iraj S. Amiri
2018 conf
ICCCNT
P. Jayarajan, R. Maheswar, G. R. Kanagachidambaresan, V. Sivasankaran, M. Balaji, Jagannath Das
2018 J jnl
Wirel. Pers. Commun.
R. Udaiyakumar, Senoj Joseph, T. V. P. Sundararajan, Dhasarathan Vigneswaran, R. Maheswar, Iraj S. Amiri
2014 J jnl
Wirel. Networks
T. V. P. Sundararajan, S. M. Ramesh, R. Maheswar, K. R. Deepak
tests/unit/test_decompile_function_type.py
← Index tests/unit/test_decompile_function_type.py python
"""Unit tests for bninja/function_type.py."""
import sys
import pytest
from unittest.mock import MagicMock

# Install binaryninja stubs before importing
from tests.unit.conftest_binja_stubs import install_binja_stubs, SymbolType
install_binja_stubs()

from redb.extractors.decompiler.bninja.function_type import (
    FunctionType,
    FunctionTypeAnalysis,
)


# ============================================================================
# 4a. FunctionType / FunctionTypeAnalysis
# ============================================================================


class TestFunctionTypeEnum:
    def test_function_type_enum_values(self):
        assert FunctionType.USER.value == "USER"
        assert FunctionType.LIBRARY.value == "LIBRARY"
        assert FunctionType.EXTERNAL.value == "EXTERNAL"
        assert FunctionType.THUNK.value == "THUNK"
        assert FunctionType.UNKNOWN.value == "UNKNOWN"


class TestFunctionTypeAnalysis:
    def _make_function(self, symbol_type=None, is_thunk=False, raise_on_symbol=False):
        func = MagicMock()
        func.is_thunk = is_thunk
        if raise_on_symbol:
            type(func).symbol = property(lambda self: (_ for _ in ()).throw(Exception("no symbol")))
        else:
            func.symbol.type = symbol_type if symbol_type is not None else SymbolType.FunctionSymbol
        return func

    def test_user_function_type(self):
        func = self._make_function(symbol_type=SymbolType.FunctionSymbol)
        analysis = FunctionTypeAnalysis(func)
        assert analysis.get_function_type() == FunctionType.USER

    def test_external_function_type(self):
        func = self._make_function(symbol_type=SymbolType.ImportedFunctionSymbol)
        analysis = FunctionTypeAnalysis(func)
        assert analysis.get_function_type() == FunctionType.EXTERNAL

    def test_library_function_type(self):
        func = self._make_function(symbol_type=SymbolType.LibraryFunctionSymbol)
        analysis = FunctionTypeAnalysis(func)
        assert analysis.get_function_type() == FunctionType.LIBRARY

    def test_thunk_function_type(self):
        # Thunk overrides the symbol type
        func = self._make_function(
            symbol_type=SymbolType.FunctionSymbol, is_thunk=True
        )
        analysis = FunctionTypeAnalysis(func)
        assert analysis.get_function_type() == FunctionType.THUNK

    def test_exception_returns_unknown(self):
        func = self._make_function(raise_on_symbol=True)
        analysis = FunctionTypeAnalysis(func)
        assert analysis.get_function_type() == FunctionType.UNKNOWN