Xiang-Qun Xie

28 papers Journal 28
YearRankTypeTitle / Venue / Authors
2025 J jnl
Comput. Biol. Medicine
Ze-Yu Sun, Tianjian Liang, Yiyang Zhang, Ganqian Hou, Xiaojie Chu, Jing-Zhou Hou, Wei Li, Xiang-Qun Xie, Zhiwei Feng
2024 J jnl
Briefings Bioinform.
Tianjian Liang, Ze-Yu Sun, Margaret G. Hines, Kerri Jo Penrose, Yixuan Hao, Xiaojie Chu, John W. Mellors, Dimiter S. Dimitrov, Xiang-Qun Xie, Wei Li, Zhiwei Feng
2023 J jnl
Comput. Biol. Medicine
Viet Hoang Man, Xibing He, Phuong H. Nguyen, Celeste Sagui, Christopher Roland, Xiang-Qun Xie, Junmei Wang
2022 J jnl
Briefings Bioinform.
Tianjian Liang, Chen Jiang, Jiayi Yuan, Yasmin Othman, Xiang-Qun Xie, Zhiwei Feng
2021 J jnl
Briefings Bioinform.
Tianjian Liang, Hui Chen, Jiayi Yuan, Chen Jiang, Yixuan Hao, Yuanqiang Wang, Zhiwei Feng, Xiang-Qun Xie
2021 J jnl
Briefings Bioinform.
Maozi Chen, Zhiwei Feng, Siyi Wang, Weiwei Lin, Xiang-Qun Xie
2021 J jnl
Briefings Bioinform.
Zhiwei Feng, Maozi Chen, Ying Xue, Tianjian Liang, Hui Chen, Yuehan Zhou, Thomas D. Nolin, Randall B. Smith, Xiang-Qun Xie
2021 J jnl
Briefings Bioinform.
Zhiwei Feng, Maozi Chen, Tianjian Liang, Mingzhe Shen, Hui Chen, Xiang-Qun Xie
2020 J jnl
CoRR
Yuemin Bian, Xiang-Qun Xie
2020 J jnl
J. Chem. Inf. Model.
Zhiwei Feng, Maozi Chen, Mingzhe Shen, Tianjian Liang, Hui Chen, Xiang-Qun Xie
2019 J jnl
J. Comput. Aided Mol. Des.
Xibing He, Viet Hoang Man, Beihong Ji, Xiang-Qun Xie, Junmei Wang
2019 J jnl
J. Chem. Inf. Model.
Maozi Chen, Yankang Jing, Lirong Wang, Zhiwei Feng, Xiang-Qun Xie
2019 J jnl
J. Chem. Inf. Model.
Junmei Wang, Yubin Ge, Xiang-Qun Xie
2019 J jnl
J. Comput. Aided Mol. Des.
Haixia Ge, Yuemin Bian, Xibing He, Xiang-Qun Xie, Junmei Wang
2017 J jnl
J. Chem. Inf. Model.
Si Chen, Zhiwei Feng, Yun Wang, Shifan Ma, Ziheng Hu, Peng Yang, Yifeng Chai, Xiang-Qun Xie
2017 J jnl
J. Chem. Inf. Model.
Nanyi Wang, Lirong Wang, Xiang-Qun Xie
2016 J jnl
J. Chem. Inf. Model.
Jianping Hu, Zhiwei Feng, Shifan Ma, Yu Zhang, Qin Tong, Mohammed Hamed Alqarni, Xiaojun Gou, Xiang-Qun Xie
2016 J jnl
J. Chem. Inf. Model.
Yu Zhang, Lirong Wang, Zhiwei Feng, Haizi Cheng, Terence Francis McGuire, Yahui Ding, Tao Cheng, Yingdai Gao, Xiang-Qun Xie
2015 J jnl
J. Chem. Inf. Model.
Zhiwei Feng, Larry V. Pearce, Xiaomeng Xu, Xiaole Yang, Peng Yang, Peter M. Blumberg, Xiang-Qun Xie
2014 J jnl
J. Chem. Inf. Model.
Haibin Liu, Lirong Wang, Mingliang Lv, Rongrong Pei, Peibo Li, Zhong Pei, Yonggang Wang, Weiwei Su, Xiang-Qun Xie
2014 J jnl
J. Chem. Inf. Model.
Zhiwei Feng, Mohammed Hamed Alqarni, Peng Yang, Qin Tong, Ananda Chowdhury, Lirong Wang, Xiang-Qun Xie
2013 J jnl
J. Chem. Inf. Model.
Chao Ma, Lirong Wang, Peng Yang, Kyaw Z. Myint, Xiang-Qun Xie
2011 J jnl
J. Chem. Inf. Model.
Chao Ma, Lirong Wang, Xiang-Qun Xie
2011 J jnl
J. Chem. Inf. Model.
Chao Ma, Lirong Wang, Xiang-Qun Xie
2011 J jnl
J. Chem. Inf. Model.
Lirong Wang, Zhaojun Xie, Peter Wipf, Xiang-Qun Xie
2008 J jnl
J. Chem. Inf. Model.
Xiang-Qun Xie, Jian-Zhong Chen
2007 J jnl
J. Chem. Inf. Model.
Jian-Zhong Chen, Junmei Wang, Xiang-Qun Xie
2006 J jnl
J. Chem. Inf. Model.
Junmei Wang, George Krudy, Xiang-Qun Xie, Chengde Wu, George Holland
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