test_speech_backends.hsp

sample\iron\test_speech_backends.hsp » Plain Format

;============================================================
;  test_speech_backends.hsp — SAPI / WinRT / Vosk 軽量テスト
;
;  モデル/音声なしで動く「bad 入力で負ハンドル返却 + close 安全性」を
;  3 バックエンドそれぞれで確認。
;============================================================

#include "hsp3cl_net_64.as"
#include "hspsapi.as"
#include "hspwinrtspeech.as"
#include "hspvosk.as"
#include "iron_test_ex.hsp"

    ; SAPI: 不正な言語名でも open 自体は OK (SAPI の既定を使う)。close 安全性のみ。
    test_case "SAPI close(-1) is safe"
        hspsapi_close -1
        assert_true 1
    test_end

    ; WinRT speech close(-1) 安全性
    test_case "WinRT speech close(-1) is safe"
        hspwinrt_speech_close -1
        assert_true 1
    test_end

    ; Vosk: DLL がロードできて open がクラッシュしないことを確認
    ; (vosk_model_new は bad path でも NULL にならないケースがあるので
    ;  戻り値は assert しない)
    test_case "Vosk open(nonexistent) does not crash"
        h = hspvosk_open("__no_such_model__", 16000)
        ; クリーンアップ: 正なら close、負なら何もしない
        if h >= 0 : hspvosk_close h
        assert_true 1
    test_end

    test_case "Vosk close(-1) is safe"
        hspvosk_close -1
        assert_true 1
    test_end

    end testrt_summary()