diff --git a/hosts/ocaml/bin/run_tests.ml b/hosts/ocaml/bin/run_tests.ml index 13b83e47..0462d382 100644 --- a/hosts/ocaml/bin/run_tests.ml +++ b/hosts/ocaml/bin/run_tests.ml @@ -636,7 +636,12 @@ let make_test_env () = bind "foreign-names" (fun _args -> Sx_ref.foreign_names ()); bind "foreign-register!" (fun args -> match args with [String n; spec] -> Sx_ref.foreign_register_b (String n) spec | _ -> Nil); bind "foreign-resolve-binding" (fun args -> match args with [String s] -> Sx_ref.foreign_resolve_binding (String s) | _ -> Nil); - bind "foreign-check-args" (fun args -> match args with [String n; List p; List a] -> Sx_ref.foreign_check_args (String n) (List p) (List a) | _ -> Nil); + bind "foreign-check-args" (fun args -> + let to_list = function List l -> List l | ListRef r -> List !r | v -> v in + match args with + | [String n; (List _ | ListRef _ as p); (List _ | ListRef _ as a)] -> + Sx_ref.foreign_check_args (String n) (to_list p) (to_list a) + | _ -> Nil); bind "foreign-build-lambda" (fun args -> match args with [spec] -> Sx_ref.foreign_build_lambda spec | _ -> Nil); (* Initialize CEK call forward ref — needed by with-capabilities and foreign-dispatch *) diff --git a/spec/tests/test-foreign.sx b/spec/tests/test-foreign.sx index d1b666d6..7b10ebec 100644 --- a/spec/tests/test-foreign.sx +++ b/spec/tests/test-foreign.sx @@ -165,7 +165,7 @@ (deftest "foreign-check-args rejects wrong type" (let - ((err (guard (e (#t (error-message e))) (foreign-check-args "test" (list {:type "number" :name "x"}) (list "not-a-number")) nil))) + ((err (guard (e (true (error-message e))) (foreign-check-args "test" (list {:type "number" :name "x"}) (list "not-a-number")) nil))) (assert (contains? err "expected number")))) (deftest "foreign-check-args accepts any type" @@ -175,5 +175,5 @@ (deftest "foreign-check-args rejects too few args" (let - ((err (guard (e (#t (error-message e))) (foreign-check-args "test" (list {:type "number" :name "x"} {:type "number" :name "y"}) (list 1)) nil))) + ((err (guard (e (true (error-message e))) (foreign-check-args "test" (list {:type "number" :name "x"} {:type "number" :name "y"}) (list 1)) nil))) (assert (contains? err "expected 2 args"))))) \ No newline at end of file