Xiaohong Qian

31 papers B 1Journal 27Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Wujie Zhou, Xinyu Sun, Xiaohong Qian, Meixin Fang
2025 J jnl
Inf. Sci.
Zhangping Tu, Xiaohong Qian, Wujie Zhou
2025 J jnl
IEEE Trans Autom. Sci. Eng.
Zhangping Tu, Xiaohong Qian, Wujie Zhou
2025 conf
ICA3PP (8)
Wenjian Xu, Yuyang Ji, Ke He, Zhengyu Chen, Xiaohong Qian, Jie Huang, Lei Zhang, Jian Wan
2025 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Zhangping Tu, Wujie Zhou, Xiaohong Qian, Weiqing Yan
2025 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Wujie Zhou, Yusen Wang, Xiaohong Qian
2025 J jnl
IEEE Signal Process. Lett.
Zhangping Tu, Xiaohong Qian, Wujie Zhou
2025 J jnl
IEEE Signal Process. Lett.
Yusen Wang, Xiaohong Qian, Wujie Zhou
2025 J jnl
IEEE Trans Autom. Sci. Eng.
Yusen Wang, Wujie Zhou, Xiaohong Qian
2024 J jnl
Expert Syst. Appl.
Xun Yang, Wujie Zhou, Weiqing Yan, Xiaohong Qian
2024 J jnl
IEEE Trans. Intell. Transp. Syst.
Xinyu Sun, Wujie Zhou, Xiaohong Qian
2024 J jnl
Knowl. Based Syst.
Shengying Yang, Lifeng Xie, Xiaoxiao Ran, Jingsheng Lei, Xiaohong Qian
2024 J jnl
Expert Syst. Appl.
Xiaomin Fan, Wujie Zhou, Xiaohong Qian, Weiqing Yan
2023 J jnl
Inf. Fusion
Wujie Zhou, Yuchun Yue, Meixin Fang, Xiaohong Qian, Rongwang Yang, Lu Yu
2023 J jnl
J. Vis. Commun. Image Represent.
Gao Xu, Wujie Zhou, Xiaohong Qian, Lv Ye, Jingsheng Lei, Lu Yu
2023 J jnl
Eng. Appl. Artif. Intell.
Yi Pan, Wujie Zhou, Xiaohong Qian, Shanshan Mao, Rongwang Yang, Lu Yu
2023 J jnl
Eng. Appl. Artif. Intell.
Enquan Yang, Wujie Zhou, Xiaohong Qian, Jingsheng Lei, Lu Yu
2023 J jnl
Eng. Appl. Artif. Intell.
Tingting Gong, Wujie Zhou, Xiaohong Qian, Jingsheng Lei, Lu Yu
2023 B conf
ICIP
Weiyao Pan, Shengying Yang, Xiaohong Qian, Jingsheng Lei, Shuai Zhang
2023 J jnl
Neurocomputing
Junyi Wu, Wujie Zhou, Xiaohong Qian, Jingsheng Lei, Lu Yu, Ting Luo
2023 J jnl
Digit. Signal Process.
Junyi Wu, Wujie Zhou, Xiaohong Qian, Jingsheng Lei, Lu Yu, Ting Luo
2023 J jnl
Digit. Signal Process.
Gao Xu, Wujie Zhou, Xiaohong Qian, Yulai Zhang, Jingsheng Lei, Lu Yu
2023 J jnl
IEEE Access
Shengying Yang, Xu Wang, Xiaohong Qian, Yunxiang Yu, Wuyin Jin
2022 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Jianhui Jin, Wujie Zhou, Lv Ye, Jingsheng Lei, Lu Yu, Xiaohong Qian, Ting Luo
2022 J jnl
Remote. Sens.
Jiabao Ma, Wujie Zhou, Xiaohong Qian, Lu Yu
2022 J jnl
IEEE Signal Process. Lett.
Shaohua Dong, Wujie Zhou, Xiaohong Qian, Lu Yu
2022 J jnl
IEEE Access
Xiaohong Qian, Xu Wang, Shengying Yang, Jingsheng Lei
2019 conf
AIIPCC
Chunyan Liu, Xiaohong Qian
2009 J jnl
BMC Bioinform.
Yan Fu, Wei Jia, Zhuang Lu, Haipeng Wang, Zuofei Yuan, Hao Chi, You Li, Liyun Xiu, Wenping Wang, Chao Liu, Leheng Wang, Ruixiang Sun, Wen Gao, Xiaohong Qian, Si-Min He
2007 J jnl
Res. Comput. Sci.
Hongzhao Dong, Mingfei Guo, Xiaohong Qian, Min Zhou
2006 conf
IEEE SCC
Wei Shi, Jian Wu, Shuiguang Deng, Li Kuang, Huajun Chen, Dongcai Shi, Zhao Xu, Zhiyong Ye, Zhaohui Wu, Xiaohong Qian, Xiuhai Chen, Quanming Xu, Feihu Chen
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