/
niceSOFT
/
make
Обзор
Документация
Войти
/
niceSOFT
/
make
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/scripts/options/dash-W
90 строк
2 KB
Paul Smith
* tests/scripts/*: Switch TAB chars to #TAB# markup
24 авг 2025, 21:29
24 авг 2025, 21:29
fdcaaed
Код
Авторство
О чём код?
# -*-perl-*- $description = "Test make -W (what if) option.\n"; # Basic build run_make_test(q! a.x: b.x a.x b.x: ; echo >> $@ !, '', "echo >> b.x\necho >> a.x"); # Run it again: nothing should happen run_make_test(undef, '', "#MAKE#: 'a.x' is up to date."); # Now run it with -W b.x: should rebuild a.x run_make_test(undef, '-W b.x', 'echo >> a.x'); # Put the timestamp for a.x into the future; it should still be remade. # There are clock skew errors printed here but they will be cleared by # the comparison code. utouch(1000, 'a.x'); run_make_test(undef, '', "#MAKE#: 'a.x' is up to date."); run_make_test(undef, '-W b.x', 'echo >> a.x'); # Clean up rmfiles('a.x', 'b.x'); # Test -W with the re-exec feature: we don't want to re-exec forever # Savannah bug # 7566 # First set it up with a normal build run_make_test(q! all: baz.x ; @: include foo.x foo.x: bar.x #TAB#@echo "\$$(info restarts=\$$(MAKE_RESTARTS))" > $@ #TAB#@echo "touch $@" bar.x: ; echo >> $@ baz.x: bar.x ; @echo "touch $@" !, '', 'echo >> bar.x touch foo.x restarts=1 touch baz.x'); # Now run with -W bar.x # Tweak foo.x's timestamp so the update will change it. # There are clock skew errors printed here but they will be cleared by # the comparison code. &utouch(1000, 'foo.x'); run_make_test(undef, '-W bar.x', "restarts=\ntouch foo.x\nrestarts=1\ntouch baz.x"); rmfiles('foo.x', 'bar.x'); # Test -W on vpath-found files: it should take effect. # Savannah bug # 15341 mkdir('x-dir', 0777); utouch(-20, 'x-dir/x'); touch('y'); run_make_test(q! y: x ; @echo cp $< $@ !, '-W x-dir/x VPATH=x-dir', 'cp x-dir/x y'); # Make sure ./ stripping doesn't interfere with the match. run_make_test(q! y: x ; @echo cp $< $@ !, '-W ./x-dir/x VPATH=x-dir', 'cp x-dir/x y'); run_make_test(undef, '-W x-dir/x VPATH=./x-dir', 'cp ./x-dir/x y'); unlink(qw(y x-dir/x)); rmdir('x-dir'); 1;