make/tests/scripts/features
Paul Smith a581146562 tests [WINDOWS32]: Support Strawberry Perl on Windows
Strawberry Perl has some different behaviors from ActiveState Perl
which impact the test suite:

- Avoid Perl's chomp() as it may not remove CRs; chomp() may remove
  only the final NL but not the CR in a CRNL line ending.
- Strawberry Perl doesn't support ActiveState's system(1, ...) form.
- Strawberry Perl (or msys?) does something weird with "/tmp" when
  provided to exec(), replacing it with the user's %TEMP%.
- Strawberry Perl uses msys paths like /c/foo instead of C:\foo.

* tests/test_driver.pl (get_osname): Strawberry Perl uses 'msys' as
its $^O so if we see that use a port of 'W32'.
(_run_with_timeout): Strawberry Perl doesn't support the special
system(1, ...) form of system() so use POSIX standard fork/exec.
(compare_answer): Paths generated by Strawberry Perl use msys path
format (e.g., /c/foo instead of C:\foo); check for those differences
and compare RE against both the unmodified and modified log.
* tests/run_make_tests.pl (set_defaults): Switch from chomp to s///
to remove CRNL and NL line endings.
* tests/scripts/features/errors: Executing directories on Strawberry
will give an error; translate it to Windows error output format.
* tests/scripts/features/output-sync: Ditto.
* tests/scripts/features/temp_stdin: Ditto.
* tests/scripts/functions/realpath: Ditto.
* tests/scripts/options/dash-I: Ditto.
* tests/scripts/variables/INCLUDE_DIRS: Ditto.
* tests/scripts/misc/close_stdout: /dev/full is reported as existing
on Strawberry Perl, but it doesn't do anything.  Skip the test.
* tests/scripts/variables/MAKEFLAGS: When an argument containing
/tmp is passed to a program via exec(), something replaces it with
the expansion of the %TEMP% variable.  Instead of using /tmp create
a local directory to use.
2022-12-20 02:14:18 -05:00
..
archives * tests/scripts/features/archives: Fix typo 2022-06-04 19:04:37 -04:00
comments
conditionals
default_names Add preprocessor macros for different platforms 2022-10-18 14:20:44 -04:00
dircache
double_colon * tests/scripts/features/double_colon: Update for modern tests. 2022-02-06 18:46:32 -05:00
echoing
errors tests [WINDOWS32]: Support Strawberry Perl on Windows 2022-12-20 02:14:18 -05:00
escape
exec * tests/scripts/features/exec: Don't test with C shells 2022-10-25 14:49:10 -04:00
export
grouped_targets [SV 12078, SV 62809] Rebuild grouped targets if any is missing 2022-09-20 03:55:39 -04:00
implicit_search Enhance tests to work on different systems 2022-10-22 22:37:49 -04:00
include [SV 63484] Force included makefiles to be explicit 2022-12-18 20:06:38 -05:00
jobserver Keep going if we can't connect to the jobserver 2022-11-13 10:39:48 -05:00
load [SV 63044] load: Update .LOADED if the setup function returns -1 2022-09-10 22:42:28 -04:00
loadapi Enhance tests to work on different systems 2022-10-22 22:37:49 -04:00
mult_rules [SV 62650] Show correct warning when combining targets 2022-07-09 10:44:00 -04:00
mult_targets
order_only
output-sync tests [WINDOWS32]: Support Strawberry Perl on Windows 2022-12-20 02:14:18 -05:00
override
parallelism Increase the test framework timeout from 5s to 60s 2022-10-25 14:44:26 -04:00
patspecific_vars
patternrules Increase the test framework timeout from 5s to 60s 2022-10-25 14:44:26 -04:00
quoting
recursion
reinvoke * tests/scripts/features/reinvoke: [SV 62088] Close STDIN 2022-04-24 13:48:03 -04:00
rule_glob
se_explicit Fix tests for MacOS and Windows 2022-08-30 21:05:34 -04:00
se_implicit Fix tests for MacOS and Windows 2022-08-30 21:05:34 -04:00
se_statpat Fix tests for MacOS and Windows 2022-08-30 21:05:34 -04:00
shell_assignment
statipattrules * tests/scripts/features/statipattrules: [SV 17374] Add test 2022-09-20 03:55:39 -04:00
suffixrules
targetvars Special-case Windows error results 2021-11-28 14:27:10 -05:00
temp_stdin tests [WINDOWS32]: Support Strawberry Perl on Windows 2022-12-20 02:14:18 -05:00
utf8
varnesting Fix issues found by ASAN and Coverity 2022-10-31 02:23:04 -04:00
vpath [SV 12078, SV 62809] Rebuild grouped targets if any is missing 2022-09-20 03:55:39 -04:00
vpathgpath * tests/scripts/features/vpathgpath: Avoid duplicate function name. 2020-11-29 17:59:40 -05:00
vpathplus [SV 12078, SV 62809] Rebuild grouped targets if any is missing 2022-09-20 03:55:39 -04:00