mte/unikernel/duniverse/dune_/test/blackbox-tests/test-cases/dep-on-dir-that-does-not-exist.t/run.t
2025-11-11 02:07:51 +01:00

53 lines
1.6 KiB
Perl

# Here we test that actions depending on a glob correctly
# depend on the directory existence as well.
#
# Currently we do something slightly buggy though.
#
# One of these behaviors would be reasonable instead:
#
# - refuse to run an action if the directory is missing (for a well-
# defined definition of "missing")
# - mkdir the directory unconditionally before running the action
# - track the dependency and rerun it when the directory is created.
$ dune build @print-contents-of-dir-that-is-later-created
listing: ERROR
^ Reasonable
$ mkdir dir-that-is-later-created
$ echo '(alias (name foo) (deps) (action (echo "")))' > dir-that-is-later-created/dune
$ rm -r _build; dune build @print-contents-of-dir-that-is-later-created
listing: ERROR
^ Strange: didn't we create the directory?
$ rm -r _build
$ dune build @dir-that-is-later-created/foo
$ dune build @print-contents-of-dir-that-is-later-created
listing:
^ Wat: unrelated alias caused the listing to succeed.
$ rm -r _build
$ dune build @print-contents-of-dir-that-is-later-created
listing: ERROR
^ Yeah, clearly a bug: the output depends on whether or not the unrelated
alias is forced.
$ rm -r _build
$ dune build @print-contents-of-dir-that-is-later-created
listing: ERROR
$ dune build @dir-that-is-later-created/foo
$ dune build @print-contents-of-dir-that-is-later-created
listing: ERROR
^ Also a bug: the value is not recomputed after the directory is created.
$ touch dir-that-is-later-created/blah.txt
$ dune build @print-contents-of-dir-that-is-later-created
listing: blah.txt
^ Ok, if there are some files matching the pattern, then it becomes good.