Jbuilder split runtest for packages


I am trying to create an async backend for the ocaml-redis library. I’ve split the test/jbuild executables section into 3 different executables to align with the 3 different backends the library supports.

My problem now is that when I try to build them, a jbuilder runtest -p <pkg> requires both lwt and async, whereas it should just run the test that corresponds to <pkg>.

Any ideas on how to achieve that?

I’m not sure, but I think you should add package to your runtest alias

 ((name   runtest)
  (package _name_)
  (deps   (test_lwt.exe))
  (action (run ${<}))))

I’ve already tried that, but if I do that and run it with -p <pkg> it complains that it can’t find the redis library. On IRC I was told that I am misunderstanding the purpose of the -p flag, which means that it does only considers the packages that I pass. But even when I add -p redis,redis-lwt it then still wants to build the test_async.exe and fails.

Ah, I think you have to separate your executables into the distinct stanzas, since at the moment all of them depend on both redis_sync and redis_lwt. Something like that: