This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
|
|
@ -0,0 +1,60 @@
|
|||
This test checks if rule that do not list all of its dependencies cannot
|
||||
permanently corrupt internal data structures, and by that we mean that after
|
||||
the rule is replaced with a valid one the target will be rebuild.
|
||||
|
||||
$ mkdir some_directory
|
||||
$ touch some_directory/foo.1
|
||||
$ touch some_directory/foo.2
|
||||
|
||||
Create a dune file with a rule that depends on 'some_directory/' directory
|
||||
listing but reports that depends only on listing of 'some_directory/*.1'.
|
||||
|
||||
$ cat> dune <<EOF
|
||||
> (rule
|
||||
> (target some_target)
|
||||
> (deps (glob_files some_directory/*.1))
|
||||
> (action
|
||||
> (progn
|
||||
> (bash "ls -1 some_directory > some_target"))))
|
||||
> \
|
||||
> (rule
|
||||
> (alias some_alias)
|
||||
> (deps (universe))
|
||||
> (action (cat some_target)))
|
||||
> EOF
|
||||
|
||||
Force foo.{1,2} to be copied to _build directory. That can
|
||||
happen in "real world" as a part of building other rules.
|
||||
|
||||
$ dune build some_directory/foo.1 some_directory/foo.2
|
||||
|
||||
Build some_target and print its content.
|
||||
|
||||
$ dune build @some_alias
|
||||
foo.1
|
||||
foo.2
|
||||
|
||||
Replace the rule with valid one and remove the some_directory/foo.1 file
|
||||
so that list of files "seen" by glob does not change, but the content
|
||||
of some_target should change.
|
||||
|
||||
$ cat> dune <<EOF
|
||||
> (rule
|
||||
> (target some_target)
|
||||
> (deps (glob_files some_directory/*))
|
||||
> (action
|
||||
> (progn
|
||||
> (bash "ls -1 some_directory > some_target"))))
|
||||
> \
|
||||
> (rule
|
||||
> (alias some_alias)
|
||||
> (deps (universe))
|
||||
> (action (cat some_target)))
|
||||
> EOF
|
||||
|
||||
$ rm some_directory/foo.2
|
||||
|
||||
Rule should be rerun and some_target should change.
|
||||
|
||||
$ dune build @some_alias
|
||||
foo.1
|
||||
Loading…
Add table
Add a link
Reference in a new issue