mte/unikernel/duniverse/ocaml-caqti/testsuite/dune
2025-11-11 02:07:51 +01:00

186 lines
4.5 KiB
Text

; Generate default file containing DB URIs to test against, if not present.
(rule
(targets uris.conf)
(mode fallback)
(action (write-file %{targets} "sqlite3:test.db?busy_timeout=60000\n")))
(executable
(name deps_of_uris)
(modules deps_of_uris)
(libraries testlib testlib_tls uri))
(rule
(target dune.uri-deps-blocking)
(deps
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(action
; FIXME: Do we need to work around missing TLS?
(with-stdout-to %{target}
(run %{dep:deps_of_uris.exe} --profile %{profile} -U %{U}))))
(rule
(target dune.uri-deps-eio)
(deps
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(action
(with-stdout-to %{target}
(run %{dep:deps_of_uris.exe} --profile %{profile} -U %{U}
--tls-library caqti-tls-eio))))
(rule
(target dune.uri-deps-lwt)
(deps
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(action
(with-stdout-to %{target}
(run %{dep:deps_of_uris.exe} --profile %{profile} -U %{U}
--tls-library caqti-tls-lwt.unix))))
(rule
(target dune.uri-deps-async)
(deps
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(action
(with-stdout-to %{target}
(run %{dep:deps_of_uris.exe} --profile %{profile} -U %{U}
--tls-library caqti-tls-async))))
(rule
(target dune.uri-deps-miou-unix)
(deps
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(action
(with-stdout-to
%{target}
(run
%{dep:deps_of_uris.exe}
--profile
%{profile}
-U
%{U}
--tls-library
caqti-tls-miou))))
; The generic testsuite as a library.
(library
(name testsuite)
(wrapped false)
(flags (:standard -alert -caqti_unstable))
(modules
test_connect
test_error_cause
test_failure
test_parallel
test_param
test_sql)
(libraries caqti caqti.platform ptime.clock.os testlib testlib_tls))
; Instantiations of the testsuite.
(executable
(name main_blocking)
(modules main_blocking)
(libraries
caqti caqti.blocking caqti.plugin
alcotest testlib testlib_blocking testsuite))
(rule
(alias runtest)
; This breaks the scheme of placing tests under the platform packages in order
; to avoid a cyclic with-test dependency.
(package caqti-driver-sqlite3)
(deps
(:test main_blocking.exe)
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(include dune.uri-deps-blocking)
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(locks /db/testsuite)
(action (run %{test} -U %{U})))
(executable
(name main_eio_unix)
(enabled_if (>= %{ocaml_version} "5.0"))
(modules main_eio_unix)
(libraries
caqti caqti-eio.unix caqti.plugin
alcotest eio eio_main mirage-crypto-rng.unix
testlib testlib_eio_unix testsuite))
(rule
(alias runtest)
(package caqti-eio)
(enabled_if (>= %{ocaml_version} "5.0"))
(deps
(:test main_eio_unix.exe)
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(include dune.uri-deps-eio)
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(locks /db/testsuite)
(action (run %{test} -U %{U})))
(executable
(name main_miou_unix)
(enabled_if
(>= %{ocaml_version} "5.0"))
(modules main_miou_unix)
(libraries
caqti
caqti-miou.unix
caqti.plugin
alcotest
threads
mirage-crypto-rng-miou-unix
testlib
testlib_miou_unix
testsuite))
(rule
(alias runtest)
(package caqti-miou)
(enabled_if
(>= %{ocaml_version} "5.0"))
(deps
(:test main_miou_unix.exe)
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(include dune.uri-deps-miou-unix)
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(locks /db/testsuite)
(action
(run %{test} -U %{U})))
(executable
(name main_async)
(modules main_async)
(libraries
caqti caqti.platform caqti.plugin caqti-async
alcotest-async testlib testlib_async testsuite))
(rule
(alias runtest)
(package caqti-async)
(deps
(:test main_async.exe)
(:U %{env:CAQTI_TEST_URIS_FILE=uris.conf})
(include dune.uri-deps-async)
(env_var CAQTI_TEST_X509_AUTHENTICATOR))
(locks /db/testsuite)
(action (run %{test} -U %{U})))
(executable
(name main_lwt_unix)
(modules main_lwt_unix)
(libraries
caqti caqti.platform caqti.plugin
caqti-lwt caqti-lwt.unix
alcotest-lwt testlib testlib_lwt_unix testsuite))
(rule
(alias runtest)
(package caqti-lwt)
(deps (:test main_lwt_unix.exe) (include dune.uri-deps-lwt) uris.conf)
(locks /db/testsuite)
(action (run %{test})))