Xiangdong Huang

39 papers A* 10A 1B 1Journal 24Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
ACM Trans. Database Syst.
Chen Wang, Jialin Qiao, Xiangdong Huang, Shaoxu Song, Haonan Hou, Tian Jiang, Lei Rui, Jianmin Wang, Jiaguang Sun
2025 J jnl
Proc. ACM Manag. Data
Xiaojian Zhang, Xinyu Tan, Shaoxu Song, Xiangdong Huang, Jianmin Wang
2025 J jnl
Proc. ACM Manag. Data
Lei Rui, Xiangdong Huang, Shaoxu Song, Chen Wang, Jianmin Wang, Zhao Cao
2025 J jnl
Int. J. Softw. Informatics
Xingyu Liu, Shaoxu Song, Xiangdong Huang, Jianmin Wang
2025 A* conf
ICML
Yong Liu, Guo Qin, Zhiyuan Shi, Zhi Chen, Caiyin Yang, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2025 J jnl
CoRR
Yong Liu, Guo Qin, Zhiyuan Shi, Zhi Chen, Caiyin Yang, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2025 A* conf
ICLR
Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2024 J jnl
Proc. VLDB Endow.
Xin Zhao, Jialin Qiao, Xiangdong Huang, Chen Wang, Shaoxu Song, Jianmin Wang
2024 A* conf
NeurIPS
Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2024 J jnl
CoRR
Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2024 J jnl
Proc. ACM Manag. Data
Ziling Chen, Haoquan Guan, Shaoxu Song, Xiangdong Huang, Chen Wang, Jianmin Wang
2024 J jnl
Proc. VLDB Endow.
Yunxiang Su, Shaoxu Song, Xiangdong Huang, Chen Wang, Jianmin Wang
2024 J jnl
Int. J. Softw. Informatics
Wendi He, Tianrui Xia, Shaoxu Song, Xiangdong Huang, Jianmin Wang
2024 J jnl
Proc. VLDB Endow.
Chenguang Fang, Zijie Chen, Shaoxu Song, Xiangdong Huang, Chen Wang, Jianmin Wang
2024 A* conf
ICDE
Tian Jiang, Xiangdong Huang, Shaoxu Song, Chen Wang, Jianmin Wang
2024 A* conf
ICDE
Jinzhao Xiao, Wendi He, Shaoxu Song, Xiangdong Huang, Chen Wang, Jianmin Wang
2024 J jnl
Proc. ACM Manag. Data
Lei Rui, Xiangdong Huang, Shaoxu Song, Yuyuan Kang, Chen Wang, Jianmin Wang
2024 J jnl
VLDB J.
Tianrui Xia, Jinzhao Xiao, Yuxiang Huang, Changyu Hu, Shaoxu Song, Xiangdong Huang, Jian-min Wang
2024 J jnl
CoRR
Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2024 A* conf
ICML
Yong Liu, Haoran Zhang, Chenyu Li, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2024 J jnl
CoRR
Yong Liu, Haoran Zhang, Chenyu Li, Xiangdong Huang, Jianmin Wang, Mingsheng Long
2023 J jnl
Proc. ACM Manag. Data
Chen Wang, Jialin Qiao, Xiangdong Huang, Shaoxu Song, Haonan Hou, Tian Jiang, Lei Rui, Jianmin Wang, Jiaguang Sun
2023 A* conf
ICDE
Xiaojian Zhang, Hongyin Zhang, Shaoxu Song, Xiangdong Huang, Chen Wang, Jianmin Wang
2023 J jnl
Proc. ACM Manag. Data
Chenguang Fang, Shaoxu Song, Haoquan Guan, Xiangdong Huang, Chen Wang, Jianmin Wang
2023 A* conf
ICDE
Tian Jiang, Xiangdong Huang, Shaoxu Song, Chen Wang, Jianmin Wang, Ruibo Li, Jincheng Sun
2023 A* conf
ICDE
Jie Liang, Yaoguang Chen, Zhiyong Wu, Jingzhou Fu, Mingzhe Wang, Yu Jiang, Xiangdong Huang, Ting Chen, Jiashui Wang, Jiajia Li
2023 J jnl
Proc. VLDB Endow.
Yuanhui Qiu, Chenguang Fang, Shaoxu Song, Xiangdong Huang, Chen Wang, Jianmin Wang
2022 A* conf
ICDE
Yuyuan Kang, Xiangdong Huang, Shaoxu Song, Lingzhe Zhang, Jialin Qiao, Chen Wang, Jianmin Wang, Julian Feinauer
2022 J jnl
Proc. VLDB Endow.
Jinzhao Xiao, Yuxiang Huang, Changyu Hu, Shaoxu Song, Xiangdong Huang, Jianmin Wang
2020 J jnl
Proc. VLDB Endow.
Chen Wang, Xiangdong Huang, Jialin Qiao, Tian Jiang, Lei Rui, Jinrui Zhang, Rong Kang, Julian Feinauer, Kevin Mcgrail, Peng Wang, Diaohan Luo, Jun Yuan, Jianmin Wang, Jiaguang Sun
2020 J jnl
Inf. Syst.
Jialin Qiao, Xiangdong Huang, Jianmin Wang, Raymond K. Wong
2020 conf
DASFAA (1)
Jialin Qiao, Yuyuan Kang, Xiangdong Huang, Lei Rui, Tian Jiang, Jianmin Wang, Philip S. Yu
2018 J jnl
CoRR
Jialin Qiao, Xiangdong Huang, Lei Rui, Jianmin Wang
2017 J jnl
Concurr. Comput. Pract. Exp.
Xiangdong Huang, Jianmin Wang, Philip S. Yu, Jian Bai, Jinrui Zhang
2017 B conf
Petri Nets
Xiangdong Huang, Jianmin Wang, Jialin Qiao, Liangfan Zheng, Jinrui Zhang, Raymond K. Wong
2016 A conf
CIKM
Xiangdong Huang, Jianmin Wang, Raymond K. Wong, Jinrui Zhang, Chen Wang
2015 conf
UIC/ATC/ScalCom
Xiangdong Huang, Jianmin Wang, Yu Zhong, Philip S. Yu
2015 J jnl
Concurr. Comput. Pract. Exp.
Xiangdong Huang, Jianmin Wang, Yu Zhong, Shaoxu Song, Philip S. Yu
2014 conf
BigData Congress
Xiangdong Huang, Jianmin Wang, Jian Bai, Guiguang Ding, Mingsheng Long
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