Cagri Toraman

44 papers A* 1A 1B 1C 3Journal 20Unranked 18
YearRankTypeTitle / Venue / Authors
2025 J jnl
ACM Trans. Intell. Syst. Technol.
Oguzhan Ozcelik, Cagri Toraman, Fazli Can
2025 J jnl
CoRR
Ayse Aysu Cengiz, Ahmet Kaan Sever, Elif Ecem Ümütlü, Naime Seyma Erdem, Burak Aytan, Büsra Tufan, Abdullah Topraksoy, Esra Darici, Cagri Toraman
2025 J jnl
CoRR
Burak Erinç Çetin, Yildirim Özen, Elif Naz Demiryilmaz, Kaan Engür, Cagri Toraman
2024 conf
CASE
Ahmet Kaya, Oguzhan Ozcelik, Cagri Toraman
2024 conf
LREC/COLING
Kaan Büyükdemirci, Izzet Emre Kucukkaya, Eren Ölmez, Cagri Toraman
2024 J jnl
CoRR
Cagri Toraman
2024 conf
LREC/COLING
Cagri Toraman, Oguzhan Ozcelik, Furkan Sahinuç, Fazli Can
2024 conf
LREC/COLING
Arianna Muti, Federico Ruggeri, Cagri Toraman, Alberto Barrón-Cedeño, Samuel Algherini, Lorenzo Musetti, Silvia Ronchi, Gianmarco Saretto, Caterina Zapparoli
2024 J jnl
CoRR
Arianna Muti, Federico Ruggeri, Cagri Toraman, Lorenzo Musetti, Samuel Algherini, Silvia Ronchi, Gianmarco Saretto, Caterina Zapparoli, Alberto Barrón-Cedeño
2023 J jnl
CoRR
Umitcan Sahin, Izzet Emre Kucukkaya, Oguzhan Ozcelik, Cagri Toraman
2023 conf
CLEF (Working Notes)
Umitcan Sahin, Izzet Emre Kucukkaya, Cagri Toraman
2023 J jnl
CoRR
Umitcan Sahin, Izzet Emre Kucukkaya, Cagri Toraman
2023 conf
CLEF (Working Notes)
Izzet Emre Kucukkaya, Umitcan Sahin, Cagri Toraman
2023 J jnl
CoRR
Izzet Emre Kucukkaya, Umitcan Sahin, Cagri Toraman
2023 J jnl
ACM Trans. Asian Low Resour. Lang. Inf. Process.
Cagri Toraman, Eyup Halit Yilmaz, Furkan Sahinuç, Oguzhan Ozcelik
2023 conf
SNAMS
Oguzhan Ozcelik, Cagri Toraman, Fazli Can
2023 J jnl
Signal Image Video Process.
Furkan Sahinuç, Eyup Halit Yilmaz, Cagri Toraman, Aykut Koç
2023 J jnl
CoRR
Cagri Toraman, Izzet Emre Kucukkaya, Oguzhan Ozcelik, Umitcan Sahin
2023 conf
SIU
Umitcan Sahin, Izzet Emre Kucukkaya, Oguzhan Ozcelik, Cagri Toraman
2022 conf
CASE@EMNLP
Umitcan Sahin, Oguzhan Ozcelik, Izzet Emre Kucukkaya, Cagri Toraman
2022 conf
CLEF (Working Notes)
Cagri Toraman, Oguzhan Ozcelik, Furkan Sahinuç, Umitcan Sahin
2022 conf
WebSci
Cagri Toraman, Furkan Sahinuç, Eyup Halit Yilmaz
2022 conf
NAACL-HLT
Eyup Halit Yilmaz, Cagri Toraman
2022 J jnl
CoRR
Cagri Toraman, Eyup Halit Yilmaz, Furkan Sahinuç, Oguzhan Ozcelik
2022 B conf
LREC
Cagri Toraman, Furkan Sahinuç, Eyup Halit Yilmaz
2022 J jnl
CoRR
Cagri Toraman, Furkan Sahinuç, Eyup Halit Yilmaz
2022 J jnl
Inf. Process. Manag.
Oguzhan Ozcelik, Cagri Toraman
2022 J jnl
CoRR
Cagri Toraman, Oguzhan Ozcelik, Furkan Sahinuç, Fazli Can
2022 conf
SIU
Oguzhan Ozcelik, Eyup Halit Yilmaz, Furkan Sahinuç, Cagri Toraman
2022 J jnl
Soc. Netw. Anal. Min.
Cagri Toraman, Furkan Sahinuç, Eyup Halit Yilmaz, Ibrahim Batuhan Akkaya
2021 J jnl
CoRR
Eyup Halit Yilmaz, Cagri Toraman
2021 conf
SIU
Eyup Halit Yilmaz, Cagri Toraman
2021 conf
SIU
Furkan Sahinuç, Cagri Toraman, Aykut Koç
2021 conf
ECIR (2)
Furkan Sahinuç, Cagri Toraman
2021 J jnl
CoRR
Cagri Toraman, Furkan Sahinuç, Eyup Halit Yilmaz
2020 A* conf
SIGIR
Eyup Halit Yilmaz, Cagri Toraman
2019 C conf
ISI
Wingyan Chung, Cagri Toraman, Yifan Huang, Mehul Vora, Jinwei Liu
2019 C conf
ISI
Jinwei Liu, Wingyan Chung, Yifan Huang, Cagri Toraman
2019 C conf
ISI
Mehul Vora, Wingyan Chung, Cagri Toraman, Yifan Huang
2017 J jnl
J. Assoc. Inf. Sci. Technol.
Cagri Toraman, Fazli Can
2017 conf
FDIA
Cagri Toraman
2015 J jnl
J. Inf. Sci.
Cagri Toraman, Fazli Can
2012 A conf
ECIR
Cagri Toraman, Fazli Can
2011 conf
AIRS
Cagri Toraman, Fazli Can
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