78 lines
2.5 KiB
Bash
Executable File
78 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Verify UniFFI C ABI symbols exist in the static library.
|
|
# Run after build-ios.sh or independently to diagnose FFI issues.
|
|
set -e
|
|
|
|
LIB="${1:-bindings/ios/simulator/libzx_document_ffi.a}"
|
|
|
|
if [ ! -f "$LIB" ]; then
|
|
echo "ERROR: Library not found: $LIB"
|
|
exit 1
|
|
fi
|
|
|
|
echo "==> Checking UniFFI C ABI symbols in $LIB..."
|
|
|
|
PASS=0
|
|
FAIL=0
|
|
|
|
check() {
|
|
if nm "$LIB" 2>/dev/null | grep -q "_$1"; then
|
|
PASS=$((PASS + 1))
|
|
else
|
|
echo " MISSING: _$1"
|
|
FAIL=$((FAIL + 1))
|
|
fi
|
|
}
|
|
|
|
# API dispatch functions
|
|
check uniffi_zx_document_ffi_fn_func_detect_material_type
|
|
check uniffi_zx_document_ffi_fn_func_parse_markdown
|
|
check uniffi_zx_document_ffi_fn_func_parse_text
|
|
check uniffi_zx_document_ffi_fn_func_read_image_meta
|
|
check uniffi_zx_document_ffi_fn_func_read_text_stats
|
|
check uniffi_zx_document_ffi_fn_func_search_markdown_blocks
|
|
check uniffi_zx_document_ffi_fn_func_search_text_content
|
|
check uniffi_zx_document_ffi_fn_func_create_note_anchor
|
|
check uniffi_zx_document_ffi_fn_func_push_reading_event
|
|
check uniffi_zx_document_ffi_fn_func_update_reading_position
|
|
check uniffi_zx_document_ffi_fn_func_export_pending_events
|
|
check uniffi_zx_document_ffi_fn_func_clear_exported_events
|
|
|
|
# V2 session lifecycle
|
|
check uniffi_zx_document_ffi_fn_func_start_reading_session_v2
|
|
check uniffi_zx_document_ffi_fn_func_pause_reading_session_v2
|
|
check uniffi_zx_document_ffi_fn_func_resume_reading_session_v2
|
|
check uniffi_zx_document_ffi_fn_func_close_reading_session_v2
|
|
|
|
# V2 event push
|
|
check uniffi_zx_document_ffi_fn_func_push_material_opened_v2
|
|
check uniffi_zx_document_ffi_fn_func_push_material_closed_v2
|
|
check uniffi_zx_document_ffi_fn_func_push_position_changed_v2
|
|
check uniffi_zx_document_ffi_fn_func_push_heartbeat_v2
|
|
check uniffi_zx_document_ffi_fn_func_push_marked_as_read_v2
|
|
|
|
# V2 buffer management
|
|
check uniffi_zx_document_ffi_fn_func_export_pending_events_v2
|
|
check uniffi_zx_document_ffi_fn_func_ack_events_v2
|
|
check uniffi_zx_document_ffi_fn_func_mark_events_failed_v2
|
|
check uniffi_zx_document_ffi_fn_func_reload_stale_events_v2
|
|
check uniffi_zx_document_ffi_fn_func_get_event_buffer_state_v2
|
|
check uniffi_zx_document_ffi_fn_func_cleanup_stale_sessions_ffi
|
|
|
|
# Buffer management
|
|
check ffi_zx_document_ffi_rustbuffer_alloc
|
|
check ffi_zx_document_ffi_rustbuffer_from_bytes
|
|
check ffi_zx_document_ffi_rustbuffer_free
|
|
check ffi_zx_document_ffi_rustbuffer_reserve
|
|
check ffi_zx_document_ffi_uniffi_contract_version
|
|
|
|
echo ""
|
|
echo "Results: $PASS passed, $FAIL missing"
|
|
|
|
if [ "$FAIL" -gt 0 ]; then
|
|
echo "ERROR: $FAIL required symbol(s) missing."
|
|
exit 1
|
|
fi
|
|
|
|
echo "All symbols OK!"
|