sand-headless imports no raylib so that it can run here, and the point of the case is not that a module exists — it is that the number matches native byte for byte, which is only possible because rand-f32 is Flan's rather than libc's. It does, at -O2 and at -O0; -O0 is the cheap way to say the agreement is not a coincidence of how LLVM folded the float arithmetic. values and machine run there too, which is where a 32-bit pointer would have shown. Four separate things can be missing — clang's wasm target, the sysroot, the builtins, a WASI runtime — so the skip is a probe rather than a lookup: build the smallest program and run it, and print what went wrong. A which(1) would go red on the machine where Node is too old, with a reason nobody could read. No wasmtime and no wasmer here, so the runner is node:wasi, with wasmtime and wasmer preferred if either appears. --no-warnings because node:wasi writes to stderr on every run and this harness compares combined output.
25 lines
1.2 KiB
Plaintext
25 lines
1.2 KiB
Plaintext
(tests
|
|
(names test_flan test_acceptance test_reload test_agent test_session test_dev test_emacs test_repl)
|
|
(libraries flan unix)
|
|
; The acceptance programs are part of the test corpus: if the reader, the
|
|
; parser or the checker regresses on them we want to know here, not at the CLI.
|
|
(deps
|
|
(file %{workspace_root}/calc-me.flan)
|
|
(file %{workspace_root}/sand.flan)
|
|
; The sim package and the raylib bindings, because the headless sand case and
|
|
; the FFI case import them and an import reads the directory at build time.
|
|
(glob_files %{workspace_root}/sand-sim/*)
|
|
(glob_files %{workspace_root}/vendor/raylib/*)
|
|
; The dev agent package: its Flan declarations and the C that implements them.
|
|
(glob_files %{workspace_root}/vendor/agent/*)
|
|
(glob_files programs/*.flan)
|
|
; The reload primitive's host: a C main that dlopens what Build.shared made.
|
|
(file reload_host.c)
|
|
; The WASI host the wasm32 case runs its module under, when no wasmtime or
|
|
; wasmer is installed.
|
|
(file wasm-run.mjs)
|
|
; test_dev runs the compiler itself: flan dev launches and owns a program.
|
|
(file %{workspace_root}/bin/main.exe)
|
|
; The Emacs client, which test_emacs drives against a real daemon.
|
|
(glob_files %{workspace_root}/emacs/*.el)))
|