Xi Wei

23 papers A 1B 1Misc 1Journal 9Unranked 11
YearRankTypeTitle / Venue / Authors
2025 J jnl
Biomed. Signal Process. Control.
Xuewei Li, Yaqiao Zhu, Yilong Fan, Xi Wei, Ruixuan Zhang, Yuan Tian, Zhiqiang Liu
2024 Misc conf
ICASSP
Xuewei Li, Yilong Fan, Hao Zheng, Jie Gao, Xi Wei, Mei Yu
2024 conf
MICCAI (4)
Ruixuan Zhang, Wenhuan Lu, Cuntai Guan, Jie Gao, Xi Wei, Xuewei Li
2024 A conf
ICME
Zijian Zhang, Ruiguo Yu, Xi Wei, Jie Gao, Mei Yu, Xuewei Li, Zhiqiang Liu
2023 B conf
IJCNN
Xuewei Li, Pinjie Li, Ruixuan Zhang, Chenhan Wang, Xi Wei, Mankun Zhao
2023 J jnl
Inf. Sci.
Ruixuan Zhang, Wenhuan Lu, Jie Gao, Yuan Tian, Xi Wei, Chenhan Wang, Xuewei Li, Mei Yu
2023 J jnl
CoRR
Xuewei Li, Yaqiao Zhu, Jie Gao, Xi Wei, Ruixuan Zhang, Yuan Tian, Mei Yu
2022 J jnl
IEEE J. Biomed. Health Informatics
Ruixuan Zhang, Wenhuan Lu, Xi Wei, Jialin Zhu, Han Jiang, Zhiqiang Liu, Jie Gao, Xuewei Li, Jian Yu, Mei Yu, Ruiguo Yu
2022 J jnl
Comput. Biol. Medicine
Mei Yu, Ming Han, Xuewei Li, Xi Wei, Han Jiang, Huiling Chen, Ruiguo Yu
2022 J jnl
Comput. Biol. Medicine
Mei Yu, Kaijie Pei, Xuewei Li, Xi Wei, Chenhan Wang, Jie Gao
2022 J jnl
Comput. Biol. Medicine
Ruiguo Yu, Yuan Tian, Jie Gao, Zhiqiang Liu, Xi Wei, Han Jiang, Yuxiao Huang, Xuewei Li
2022 conf
WASA (1)
Xiang Ying, Zhen Liu, Jie Gao, Ruixuan Zhang, Han Jiang, Xi Wei
2021 conf
BIBM
Tao Luo, Tong Xu, Jian Yu, Xuewei Li, Xi Wei, Mei Yu, Ruixuan Zhang, Jie Gao, Ruiguo Yu
2021 conf
BIBM
Mei Yu, Ming Han, Xuewei Li, Xi Wei, Jialin Zhu, Han Jiang, Zhiqiang Liu, Ruixuan Zhang, Ruiguo Yu
2020 conf
BIBM
Ruiguo Yu, Jiachen Hu, Mei Yu, Xi Wei, Han Jiang, Jialin Zhu, Zhiqiang Liu, Jie Gao, Xuewei Li
2020 J jnl
Medical Biol. Eng. Comput.
Xiang Ying, Yulin Zhang, Mei Yu, Xi Wei, Jialin Zhu, Jie Gao, Zhiqiang Liu, Hongqian Shen, Ruixuan Zhang, Xuewei Li, Ruiguo Yu
2020 conf
ICONIP (1)
Ruiguo Yu, Jiachen Hu, Xi Wei, Mei Yu, Jialin Zhu, Jie Gao, Zhiqiang Liu, Xuewei Li
2020 conf
BIBM
Xiang Ying, Yulin Zhang, Xi Wei, Mei Yu, Jialin Zhu, Jie Gao, Zhiqiang Liu, Xuewei Li, Ruiguo Yu
2019 J jnl
Aust. J. Intell. Inf. Process. Syst.
Jianrong Wang, Ruixuan Zhang, Xi Wei, Xuewei Li, Mei Yu, Jian Yu, Jialin Zhu, Jie Gao, Hongqian Shen, Zhiqiang Liu, Ruiguo Yu
2019 conf
BIBM
Jianrong Wang, Ruixuan Zhang, Xi Wei, Xuewei Li, Mei Yu, Jialin Zhu, Jie Gao, Zhiqiang Liu, Ruiguo Yu
2019 conf
BIBM
Xuewei Li, Ruiguo Yu, Hongqian Shen, Mei Yu, Xi Wei, Han Jiang, Jialin Zhu, Jie Gao, Zhiqiang Liu, Yulin Zhang
2018 conf
HPCC/SmartCity/DSS
Xuewei Li, Shuaijie Wang, Xi Wei, Jialin Zhu, Ruiguo Yu, Mankun Zhao, Mei Yu, Zhiqiang Liu, Shupei Liu
2018 conf
WASA
Ruiguo Yu, Kai Liu, Xi Wei, Jialin Zhu, Xuewei Li, Jianrong Wang, Xiang Ying, Zhihui Yu
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