54 lines
1.6 KiB
Perl
54 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.
|