Wei-Hsin Chen

18 papers B 2C 5Journal 7Unranked 4
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Hung-Shuo Chang, Yue-Cheng Yang, Yu-Hsi Chen, Wei-Hsin Chen, Chien-Yao Wang, James C. Liao, Chien-Chang Chen, Hen-Hsen Huang, Hong-Yuan Mark Liao
2025 J jnl
CoRR
Yu-Hsi Chen, Wei-Hsin Chen, Chien-Yao Wang, Hong-Yuan Mark Liao, James C. Liao, Chien-Chang Chen
2021 conf
ISPACS
Der-Chin Chen, Feng-Ming Yeh, Shyang Lin, Yung-Fu Liu, Ya-Hui Hsieh, Wei-Hsin Chen
2019 conf
ISPACS
Der-Chin Chen, Jih-Yi Liao, Wei-Hsin Chen, Po-Ting Liu, Shih-Tsung Chang
2015 J jnl
Artif. Life Robotics
Cheng-Wei Huang, Wei-Hsin Chen, Heng-Hui Chu, Bernard C. Jiang, Maysam Abbod, Jiann-Shing Shieh
2014 C conf
Healthcom
Te-Wei Ho, Horng-Yih Lai, Yu-Jie Wang, Wei-Hsin Chen, Feipei Lai, Yi-Lwun Ho, Chi-Sheng Hung
2013 C conf
Healthcom
Han-Ping Chen, Wei-Hsin Chen, Xing-Yu Su, Feipei Lai, Yi-Ju Chen, Kuo-Chin Huang
2013 conf
EFMI-STC
Yi-Ju Tseng, Jung-Hsuan Wu, Hui-Chi Lin, Hsiang-Ju Chiu, Bo-Chiang Huang, Rung-Ji Shang, Ming-yuan Chen, Wei-Hsin Chen, Huai-Te Chen, Feipei Lai, Yee-Chun Chen
2012 J jnl
J. Medical Syst.
Chia-Ping Shen, Chinburen Jigjidsuren, Sarangerel Dorjgochoo, Chi-Huang Chen, Wei-Hsin Chen, Chih-Kuo Hsu, Jin-Ming Wu, Chih-wen Hsueh, Mei-Shu Lai, Ching-Ting Tan, Erdenebaatar Altangerel, Feipei Lai
2012 J jnl
J. Medical Syst.
Wei-Hsin Chen, Yu-Wen Lu, Feipei Lai, Yin-Hsiu Chien, Wuh-Liang Hwu
2012 B conf
ASONAM
Wei-Hsin Chen, Han-Ping Chen, Yi-Ju Tseng, Kai-Ping Hsu, Sheau-Ling Hsieh, Yin-Hsiu Chien, Wuh-Liang Hwu, Feipei Lai
2009 C conf
BIBE
Sung-Huai Hsieh, Yin-Hsiu Chien, Chia-Ping Shen, Wei-Hsin Chen, Po-Hao Chen, Sheau-Ling Hsieh, Po-Hsun Cheng, Feipei Lai
2009 C conf
BIBE
Sung-Huai Hsieh, Sheau-Ling Hsieh, Chia-Ping Shen, Wei-Hsin Chen, Po-Hsun Cheng, Kai-Ping Hsu, Chi-Huang Chen, Feipei Lai
2008 J jnl
Inf. Sci.
Jeng-Chung Chen, Wei-Hsin Chen
2007 B conf
SMC
Bing-Fei Wu, Wei-Hsin Chen, Chai-Wei Chang, Chih-Chun Liu, Chao-Jung Chen
2006 C conf
ISCAS
Wen-Chung Kao, Sheng-Hong Wang, Wei-Hsin Chen, Lien-Yang Chen, Sheng-Yuan Lin
2006 conf
APCCAS
Wen-Chung Kao, Chun-Kuo Yu, Chia-Ping Shen, Wei-Hsin Chen, Pei-Yung Hsiao
2005 J jnl
IEEE Trans. Consumer Electron.
Wen-Chung Kao, Wei-Hsin Chen, Chun-Kuo Yu, Chin-Ming Hong, Sheng-Yuan Lin
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