Vanessa Agredo Delgado

26 papers Journal 3Unranked 15
YearRankTypeTitle / Venue / Authors
2026 J jnl
J. Ind. Inf. Integr.
Andrés Felipe Solis Pino, Daniel Steven Moran Pizarro, Pablo H. Ruiz, Vanessa Agredo Delgado, César A. Collazos, Fernando Moreira
2025 ed.
HCI-COLLAB
Vanessa Agredo Delgado, Pablo H. Ruiz, Carlos Augusto Meneses Escobar
2024 conf
HCI-COLLAB
Ingrith C. Muñoz, Vanessa Agredo Delgado, César A. Collazos, Pablo H. Ruiz, Andrés Felipe Solis Pino
2024 conf
HCI-COLLAB
Jarnelly Valentina Chamizo Quiñones, Isabella Rodríguez Bautista, Vanessa Agredo Delgado, Pablo H. Ruiz
2024 ed.
HCI-COLLAB
Pablo H. Ruiz, Vanessa Agredo Delgado, Alicia Mon
2024 conf
HCI-COLLAB
Carlos Andrés Casas Domínguez, Andrés Felipe Solis Pino, Pablo H. Ruiz, César A. Collazos, Vanessa Agredo Delgado, Fernando Moreira
2023 conf
HCI-COLLAB
Jazmín Gómez, Pablo H. Ruiz, Vanessa Agredo Delgado, Marta Cecilia Camacho
2023 conf
HCI-COLLAB
Andrés Felipe Solis Pino, Pablo H. Ruiz, Vanessa Agredo Delgado, Alicia Mon, César Alberto Collazos Ordóñez
2023 ed.
REHAB
Vanessa Agredo Delgado, Pablo H. Ruiz, César A. Collazos
2023 ed.
HCI-COLLAB
Vanessa Agredo Delgado, Pablo H. Ruiz, Omar Correa Madrigal, César A. Collazos
2023 conf
HCI-COLLAB
Vanessa Agredo Delgado, Leandro Antonelli, César A. Collazos, Alejandro Fernández, Pascale Zaraté, Guy Camilleri, Julio Ariel Hurtado, Mario Lezoche, Regina Motz, Hervé Panetto, Diego Torres
2022 J jnl
Informatics
Vanessa Agredo Delgado, Pablo H. Ruiz, César A. Collazos, Fernando Moreira
2022 J jnl
Comput. Math. Organ. Theory
Vanessa Agredo Delgado, Pablo H. Ruiz, Alicia Mon, César A. Collazos, Fernando Moreira, Habib M. Fardoun
2022 conf
CITIE
Olger Gutierrez-Aguilar, Bertha Chicana-Huanca, Maximo Postigo-Coaguila, Vanessa Agredo Delgado, Sandra Chicana-Huanca
2021 conf
WorldCIST (4)
Pablo H. Ruiz, Vanessa Agredo Delgado, Alicia Mon, César A. Collazos, Fernando Moreira, Julio Ariel Hurtado
2021 ed.
HCI-COLLAB
Pablo H. Ruiz, Vanessa Agredo Delgado, André Luiz Satoshi Kawamoto
2020 ed.
HCI-COLLAB
Vanessa Agredo Delgado, Pablo H. Ruiz, Klinge Orlando Villalba-Condori
2020 conf
HCI-COLLAB
Vanessa Agredo Delgado, Pablo H. Ruiz, Alicia Mon, César A. Collazos, Habib M. Fardoun
2020 conf
HCI-COLLAB
Carlos Andrés Casas Domínguez, David Oidor Mina, Vanessa Agredo Delgado, Pablo H. Ruiz, Deema M. Alsekait
2020 conf
WorldCIST (3)
Vanessa Agredo Delgado, Pablo H. Ruiz, Alicia Mon, César A. Collazos, Fernando Moreira, Habib M. Fardoun
2019 conf
HCI-COLLAB
Vanessa Agredo Delgado, Pablo H. Ruiz, César A. Collazos, Habib M. Fardoun
2019 ed.
HCI-COLLAB
Vanessa Agredo Delgado, Pablo H. Ruiz
2019 ed.
HCI-COLLAB
Pablo H. Ruiz, Vanessa Agredo Delgado
2019 conf
HCI-COLLAB
Vanessa Agredo Delgado, Juan David Pinto-Corredor, César A. Collazos, Pablo H. Ruiz, Habib M. Fardoun
2018 conf
HCI (24)
Vanessa Agredo Delgado, Pablo H. Ruiz, César A. Collazos, Daniyal M. Alghazzawi, Habib M. Fardoun
2017 conf
HCI (13)
Vanessa Agredo Delgado, César A. Collazos, Habib M. Fardoun, Nehme Safa
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