make/tests/scripts/features
Paul Smith 9e2fa24649 [SV 41273] Allow the directory cache to be invalidated
Each time we invoke a command it's possible that it will change the
filesystem in ways that were not described by the target.  If that
happens but we have cached previous directory contents then we may
make decisions or report results based on obsolete information.

Keep a count of how many commands we've invoked, and remember the
current command count every time we load the contents of a directory.
If we request the directory and the current command count has changed
we know the cache is outdated so reload from scratch.

* NEWS: Announce the change.
* src/makeint.h (command_count): Create a global counter.
* src/main.c (command_count): Ditto.
* src/job.c (reap_children): Increment the counter on job completion.
* src/function.c (func_file): Increment if we write a file.
* src/dir.c (clear_directory_contents): Clear the current contents of
a cached directory.
(struct directory_contents): Remember the counter value.
(struct directory): Remember the counter value for non-existing dirs.
(find_directory): If we have a cached directory and the count hasn't
changed then return it.  Else, clear the previous contents and re-read
from scratch.
* tests/scripts/features/dircache: Add tests of the directory cache.
2020-11-29 17:59:16 -05:00
..
archives tests: Convert %CONFIG_FLAGS to get_config() 2019-10-05 17:47:52 -04:00
comments * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
conditionals * read.c (eval): [SV 47960] Skip record waiting files when ignoring. 2016-05-21 16:22:32 -04:00
default_names Clean up some tests for use on Windows. 2013-10-05 19:30:48 -04:00
dircache [SV 41273] Allow the directory cache to be invalidated 2020-11-29 17:59:16 -05:00
double_colon [SV 47995] Ensure forced double-colon rules work with -j. 2016-05-31 03:17:26 -04:00
echoing Portability changes for the test suite. 2016-12-26 09:01:59 -05:00
errors * job.c (child_error): Modify error message string. 2019-09-22 17:02:57 -04:00
escape Add test suite support to Windows 2017-06-04 18:37:20 -04:00
exec * tests/scripts/features/exec: Don't use $ENV in the description 2020-01-03 02:08:59 -05:00
export Support "unexport" in target-specific variables. 2020-11-29 17:57:33 -05:00
grouped_targets Port grouped_targets test to Solaris 10 2019-09-02 11:11:26 -04:00
include [SV 58735] Define the order that makefiles are rebuilt. 2020-07-19 13:56:23 -04:00
jobserver tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
load tests: Convert %CONFIG_FLAGS to get_config() 2019-10-05 17:47:52 -04:00
loadapi tests: Convert %CONFIG_FLAGS to get_config() 2019-10-05 17:47:52 -04:00
mult_rules Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
mult_targets * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
order_only Make second expansion optional (partial implementation). 2005-10-24 13:01:39 +00:00
output-sync Rename jhelp.pl to thelp.pl and make it a generic test helper. 2019-12-16 09:31:31 -05:00
override - Modify access of config and gnulib Savannah modules to use GIT 2009-06-04 06:30:27 +00:00
parallelism tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
patspecific_vars [SV 39709] Fix some typos. 2013-10-09 01:53:55 -04:00
patternrules * tests/scripts/features/patternrules: Use Windows-compatible quoting 2020-01-03 02:08:59 -05:00
quoting Add test suite support to Windows 2017-06-04 18:37:20 -04:00
recursion [SV 46013] Allow recursive variable overrides from Makefiles 2019-05-19 19:25:50 -04:00
reinvoke Convert [ ... ] to test ... in scripting. 2020-05-03 14:23:56 -04:00
rule_glob [Bug #39310] Parse simple pattern prereqs for globbing. 2013-07-22 02:23:02 -04:00
se_explicit [SV 28456] Don't override $< when no default rule has been defined 2019-07-13 11:47:26 -04:00
se_implicit [SV 54161] Fix second expansion of $* for paths 2019-12-18 09:05:17 -05:00
se_statpat - Rework secondary expansion so we only defer it if there's a possibility 2009-09-24 02:41:44 +00:00
shell_assignment Add new feature: != shell assignment for portability with BSD make. 2011-04-18 01:25:20 +00:00
statipattrules Fixed Savannah bug #16053. 2006-03-17 14:24:20 +00:00
suffixrules [SV 40657] Reinstate old behavior for suffix rules with prereqs 2020-01-19 17:04:52 -05:00
targetvars Support "unexport" in target-specific variables. 2020-11-29 17:57:33 -05:00
utf8 Ignore UTF-8 BOMs. See Savannah bug #36529. 2012-09-09 21:11:00 +00:00
varnesting Save strings we're expanding in case an embedded eval causes them 2011-08-29 16:20:19 +00:00
vpath Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
vpath2 Refresh the test suite framework implementation. 2019-09-16 08:25:33 -04:00
vpath3 [SV 41758]: Fix archive support for VMS. 2014-10-20 01:31:42 -04:00
vpathgpath Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
vpathplus * tests/scripts/features/vpathplus: Fix output for big-endian systems. 2019-09-22 17:35:51 -04:00