003 File Manager
Current Path:
/usr/src/contrib/bmake/unit-tests
usr
/
src
/
contrib
/
bmake
/
unit-tests
/
📁
..
📄
Makefile
(19.48 KB)
📄
Makefile.config.in
(102 B)
📄
archive-suffix.exp
(35 B)
📄
archive-suffix.mk
(630 B)
📄
archive.exp
(678 B)
📄
archive.mk
(2.04 KB)
📄
cmd-errors-jobs.exp
(235 B)
📄
cmd-errors-jobs.mk
(858 B)
📄
cmd-errors-lint.exp
(223 B)
📄
cmd-errors-lint.mk
(895 B)
📄
cmd-errors.exp
(235 B)
📄
cmd-errors.mk
(838 B)
📄
cmd-interrupt.exp
(231 B)
📄
cmd-interrupt.mk
(1.77 KB)
📄
cmdline-undefined.exp
(1.01 KB)
📄
cmdline-undefined.mk
(1.23 KB)
📄
cmdline.exp
(165 B)
📄
cmdline.mk
(1.23 KB)
📄
comment.exp
(219 B)
📄
comment.mk
(2.16 KB)
📄
compat-error.exp
(397 B)
📄
compat-error.mk
(1.2 KB)
📄
cond-cmp-numeric-eq.exp
(322 B)
📄
cond-cmp-numeric-eq.mk
(1.64 KB)
📄
cond-cmp-numeric-ge.exp
(14 B)
📄
cond-cmp-numeric-ge.mk
(1.47 KB)
📄
cond-cmp-numeric-gt.exp
(14 B)
📄
cond-cmp-numeric-gt.mk
(1.45 KB)
📄
cond-cmp-numeric-le.exp
(14 B)
📄
cond-cmp-numeric-le.mk
(1.47 KB)
📄
cond-cmp-numeric-lt.exp
(14 B)
📄
cond-cmp-numeric-lt.mk
(1.45 KB)
📄
cond-cmp-numeric-ne.exp
(14 B)
📄
cond-cmp-numeric-ne.mk
(982 B)
📄
cond-cmp-numeric.exp
(787 B)
📄
cond-cmp-numeric.mk
(1.09 KB)
📄
cond-cmp-string.exp
(506 B)
📄
cond-cmp-string.mk
(2.71 KB)
📄
cond-cmp-unary.exp
(104 B)
📄
cond-cmp-unary.mk
(1.37 KB)
📄
cond-eof.exp
(388 B)
📄
cond-eof.mk
(801 B)
📄
cond-func-commands.exp
(14 B)
📄
cond-func-commands.mk
(654 B)
📄
cond-func-defined.exp
(694 B)
📄
cond-func-defined.mk
(1.1 KB)
📄
cond-func-empty.exp
(226 B)
📄
cond-func-empty.mk
(5.75 KB)
📄
cond-func-exists.exp
(14 B)
📄
cond-func-exists.mk
(1.25 KB)
📄
cond-func-make-main.exp
(72 B)
📄
cond-func-make-main.mk
(1.99 KB)
📄
cond-func-make.exp
(48 B)
📄
cond-func-make.mk
(500 B)
📄
cond-func-target.exp
(14 B)
📄
cond-func-target.mk
(644 B)
📄
cond-func.exp
(970 B)
📄
cond-func.mk
(3.48 KB)
📄
cond-late.exp
(79 B)
📄
cond-late.mk
(1.02 KB)
📄
cond-op-and-lint.exp
(149 B)
📄
cond-op-and-lint.mk
(277 B)
📄
cond-op-and.exp
(156 B)
📄
cond-op-and.mk
(641 B)
📄
cond-op-not.exp
(313 B)
📄
cond-op-not.mk
(1.07 KB)
📄
cond-op-or-lint.exp
(148 B)
📄
cond-op-or-lint.mk
(276 B)
📄
cond-op-or.exp
(155 B)
📄
cond-op-or.mk
(651 B)
📄
cond-op-parentheses.exp
(103 B)
📄
cond-op-parentheses.mk
(523 B)
📄
cond-op.exp
(1.02 KB)
📄
cond-op.mk
(3.23 KB)
📄
cond-short.exp
(352 B)
📄
cond-short.mk
(6.74 KB)
📄
cond-token-number.exp
(410 B)
📄
cond-token-number.mk
(1.54 KB)
📄
cond-token-plain.exp
(1.1 KB)
📄
cond-token-plain.mk
(2.81 KB)
📄
cond-token-string.exp
(421 B)
📄
cond-token-string.mk
(895 B)
📄
cond-token-var.exp
(354 B)
📄
cond-token-var.mk
(1.46 KB)
📄
cond-undef-lint.exp
(361 B)
📄
cond-undef-lint.mk
(2.22 KB)
📄
cond1.exp
(456 B)
📄
cond1.mk
(2.11 KB)
📄
counter-append.exp
(36 B)
📄
counter-append.mk
(890 B)
📄
counter.exp
(36 B)
📄
counter.mk
(892 B)
📄
dep-colon-bug-cross-file.exp
(218 B)
📄
dep-colon-bug-cross-file.mk
(1.36 KB)
📄
dep-colon.exp
(70 B)
📄
dep-colon.mk
(761 B)
📄
dep-double-colon-indep.exp
(202 B)
📄
dep-double-colon-indep.mk
(1.23 KB)
📄
dep-double-colon.exp
(58 B)
📄
dep-double-colon.mk
(665 B)
📄
dep-exclam.exp
(14 B)
📄
dep-exclam.mk
(339 B)
📄
dep-none.exp
(68 B)
📄
dep-none.mk
(118 B)
📄
dep-percent.exp
(141 B)
📄
dep-percent.mk
(333 B)
📄
dep-var.exp
(92 B)
📄
dep-var.mk
(3.68 KB)
📄
dep-wildcards.exp
(170 B)
📄
dep-wildcards.mk
(371 B)
📄
dep.exp
(14 B)
📄
dep.mk
(158 B)
📄
depsrc-end.exp
(66 B)
📄
depsrc-end.mk
(363 B)
📄
depsrc-exec.exp
(57 B)
📄
depsrc-exec.mk
(502 B)
📄
depsrc-ignore.exp
(184 B)
📄
depsrc-ignore.mk
(2.27 KB)
📄
depsrc-made.exp
(52 B)
📄
depsrc-made.mk
(423 B)
📄
depsrc-make.exp
(74 B)
📄
depsrc-make.mk
(441 B)
📄
depsrc-meta.exp
(142 B)
📄
depsrc-meta.mk
(613 B)
📄
depsrc-nometa.exp
(14 B)
📄
depsrc-nometa.mk
(171 B)
📄
depsrc-nometa_cmp.exp
(14 B)
📄
depsrc-nometa_cmp.mk
(179 B)
📄
depsrc-nopath.exp
(14 B)
📄
depsrc-nopath.mk
(171 B)
📄
depsrc-notmain.exp
(20 B)
📄
depsrc-notmain.mk
(277 B)
📄
depsrc-optional.exp
(967 B)
📄
depsrc-optional.mk
(550 B)
📄
depsrc-phony.exp
(41 B)
📄
depsrc-phony.mk
(359 B)
📄
depsrc-precious.exp
(14 B)
📄
depsrc-precious.mk
(656 B)
📄
depsrc-recursive.exp
(74 B)
📄
depsrc-recursive.mk
(404 B)
📄
depsrc-silent.exp
(28 B)
📄
depsrc-silent.mk
(358 B)
📄
depsrc-use.exp
(57 B)
📄
depsrc-use.mk
(617 B)
📄
depsrc-usebefore-double-colon.exp
(35 B)
📄
depsrc-usebefore-double-colon.mk
(964 B)
📄
depsrc-usebefore.exp
(57 B)
📄
depsrc-usebefore.mk
(749 B)
📄
depsrc-wait.exp
(93 B)
📄
depsrc-wait.mk
(530 B)
📄
depsrc.exp
(208 B)
📄
depsrc.mk
(857 B)
📄
deptgt-begin-fail-indirect.exp
(85 B)
📄
deptgt-begin-fail-indirect.mk
(466 B)
📄
deptgt-begin-fail.exp
(85 B)
📄
deptgt-begin-fail.mk
(245 B)
📄
deptgt-begin.exp
(255 B)
📄
deptgt-begin.mk
(1.64 KB)
📄
deptgt-default.exp
(14 B)
📄
deptgt-default.mk
(173 B)
📄
deptgt-delete_on_error.exp
(1.6 KB)
📄
deptgt-delete_on_error.mk
(1.27 KB)
📄
deptgt-end-fail-all.exp
(114 B)
📄
deptgt-end-fail-all.mk
(756 B)
📄
deptgt-end-fail-indirect.exp
(91 B)
📄
deptgt-end-fail-indirect.mk
(423 B)
📄
deptgt-end-fail.exp
(3.17 KB)
📄
deptgt-end-fail.mk
(1.74 KB)
📄
deptgt-end-jobs.exp
(185 B)
📄
deptgt-end-jobs.mk
(1.58 KB)
📄
deptgt-end.exp
(243 B)
📄
deptgt-end.mk
(1.39 KB)
📄
deptgt-error.exp
(14 B)
📄
deptgt-error.mk
(235 B)
📄
deptgt-ignore.exp
(14 B)
📄
deptgt-ignore.mk
(253 B)
📄
deptgt-interrupt.exp
(14 B)
📄
deptgt-interrupt.mk
(271 B)
📄
deptgt-main.exp
(14 B)
📄
deptgt-main.mk
(299 B)
📄
deptgt-makeflags.exp
(404 B)
📄
deptgt-makeflags.mk
(2.81 KB)
📄
deptgt-no_parallel.exp
(14 B)
📄
deptgt-no_parallel.mk
(181 B)
📄
deptgt-nopath.exp
(14 B)
📄
deptgt-nopath.mk
(171 B)
📄
deptgt-notparallel.exp
(14 B)
📄
deptgt-notparallel.mk
(181 B)
📄
deptgt-objdir.exp
(14 B)
📄
deptgt-objdir.mk
(171 B)
📄
deptgt-order.exp
(14 B)
📄
deptgt-order.mk
(169 B)
📄
deptgt-path-suffix.exp
(14 B)
📄
deptgt-path-suffix.mk
(181 B)
📄
deptgt-path.exp
(14 B)
📄
deptgt-path.mk
(167 B)
📄
deptgt-phony.exp
(14 B)
📄
deptgt-phony.mk
(169 B)
📄
deptgt-precious.exp
(14 B)
📄
deptgt-precious.mk
(175 B)
📄
deptgt-shell.exp
(14 B)
📄
deptgt-shell.mk
(169 B)
📄
deptgt-silent.exp
(149 B)
📄
deptgt-silent.mk
(499 B)
📄
deptgt-stale.exp
(14 B)
📄
deptgt-stale.mk
(169 B)
📄
deptgt-suffixes.exp
(773 B)
📄
deptgt-suffixes.mk
(939 B)
📄
deptgt.exp
(634 B)
📄
deptgt.mk
(1.63 KB)
📄
dir-expand-path.exp
(110 B)
📄
dir-expand-path.mk
(484 B)
📄
dir.exp
(1.48 KB)
📄
dir.mk
(2.12 KB)
📄
directive-dinclude.exp
(14 B)
📄
directive-dinclude.mk
(202 B)
📄
directive-elif.exp
(1.13 KB)
📄
directive-elif.mk
(3.63 KB)
📄
directive-elifdef.exp
(14 B)
📄
directive-elifdef.mk
(144 B)
📄
directive-elifmake.exp
(14 B)
📄
directive-elifmake.mk
(146 B)
📄
directive-elifndef.exp
(14 B)
📄
directive-elifndef.mk
(146 B)
📄
directive-elifnmake.exp
(14 B)
📄
directive-elifnmake.mk
(148 B)
📄
directive-else.exp
(549 B)
📄
directive-else.mk
(1016 B)
📄
directive-endfor.exp
(144 B)
📄
directive-endfor.mk
(232 B)
📄
directive-endif.exp
(483 B)
📄
directive-endif.mk
(1.17 KB)
📄
directive-error.exp
(14 B)
📄
directive-error.mk
(305 B)
📄
directive-export-env.exp
(14 B)
📄
directive-export-env.mk
(163 B)
📄
directive-export-gmake.exp
(14 B)
📄
directive-export-gmake.mk
(1.95 KB)
📄
directive-export-impl.exp
(2.74 KB)
📄
directive-export-impl.mk
(2.25 KB)
📄
directive-export-literal.exp
(50 B)
📄
directive-export-literal.mk
(316 B)
📄
directive-export.exp
(14 B)
📄
directive-export.mk
(852 B)
📄
directive-for-errors.exp
(1.34 KB)
📄
directive-for-errors.mk
(2.78 KB)
📄
directive-for-escape.exp
(2.57 KB)
📄
directive-for-escape.mk
(3.3 KB)
📄
directive-for-generating-endif.exp
(357 B)
📄
directive-for-generating-endif.mk
(718 B)
📄
directive-for-lines.exp
(368 B)
📄
directive-for-lines.mk
(634 B)
📄
directive-for-null.exp
(315 B)
📄
directive-for-null.mk
(719 B)
📄
directive-for.exp
(1.06 KB)
📄
directive-for.mk
(4.85 KB)
📄
directive-hyphen-include.exp
(14 B)
📄
directive-hyphen-include.mk
(228 B)
📄
directive-if-nested.exp
(86 B)
📄
directive-if-nested.mk
(607 B)
📄
directive-if.exp
(1.02 KB)
📄
directive-if.mk
(2.19 KB)
📄
directive-ifdef.exp
(89 B)
📄
directive-ifdef.mk
(396 B)
📄
directive-ifmake.exp
(466 B)
📄
directive-ifmake.mk
(2.3 KB)
📄
directive-ifndef.exp
(67 B)
📄
directive-ifndef.mk
(543 B)
📄
directive-ifnmake.exp
(66 B)
📄
directive-ifnmake.mk
(421 B)
📄
directive-include-fatal.exp
(169 B)
📄
directive-include-fatal.mk
(1001 B)
📄
directive-include.exp
(440 B)
📄
directive-include.mk
(996 B)
📄
directive-info.exp
(822 B)
📄
directive-info.mk
(1.24 KB)
📄
directive-misspellings.exp
(3.09 KB)
📄
directive-misspellings.mk
(2.27 KB)
📄
directive-sinclude.exp
(14 B)
📄
directive-sinclude.mk
(405 B)
📄
directive-undef.exp
(227 B)
📄
directive-undef.mk
(2.24 KB)
📄
directive-unexport-env.exp
(910 B)
📄
directive-unexport-env.mk
(578 B)
📄
directive-unexport.exp
(228 B)
📄
directive-unexport.mk
(761 B)
📄
directive-warning.exp
(607 B)
📄
directive-warning.mk
(607 B)
📄
directive.exp
(471 B)
📄
directive.mk
(1.01 KB)
📄
dollar.exp
(1.5 KB)
📄
dollar.mk
(2.59 KB)
📄
doterror.exp
(135 B)
📄
doterror.mk
(250 B)
📄
dotwait.exp
(468 B)
📄
dotwait.mk
(2.26 KB)
📄
envfirst.exp
(14 B)
📄
envfirst.mk
(1 KB)
📄
error.exp
(172 B)
📄
error.mk
(349 B)
📄
escape.exp
(4.26 KB)
📄
escape.mk
(7.03 KB)
📄
export-all.exp
(210 B)
📄
export-all.mk
(462 B)
📄
export-env.exp
(196 B)
📄
export-env.mk
(598 B)
📄
export-variants.exp
(14 B)
📄
export-variants.mk
(984 B)
📄
export.exp
(115 B)
📄
export.mk
(1.1 KB)
📄
forloop.exp
(876 B)
📄
forloop.mk
(1.02 KB)
📄
forsubst.exp
(34 B)
📄
forsubst.mk
(725 B)
📄
gnode-submake.exp
(659 B)
📄
gnode-submake.mk
(1.09 KB)
📄
hanoi-include.exp
(1.38 KB)
📄
hanoi-include.mk
(1.38 KB)
📄
impsrc.exp
(182 B)
📄
impsrc.mk
(1.75 KB)
📄
include-main.exp
(445 B)
📄
include-main.mk
(1.11 KB)
📄
include-sub.mk
(1.11 KB)
📄
include-subsub.mk
(190 B)
📄
job-flags.exp
(196 B)
📄
job-flags.mk
(754 B)
📄
job-output-long-lines.exp
(14 B)
📄
job-output-long-lines.mk
(1.06 KB)
📄
jobs-error-indirect.exp
(114 B)
📄
jobs-error-indirect.mk
(482 B)
📄
jobs-error-nested-make.exp
(182 B)
📄
jobs-error-nested-make.mk
(586 B)
📄
jobs-error-nested.exp
(237 B)
📄
jobs-error-nested.mk
(499 B)
📄
lint.exp
(126 B)
📄
lint.mk
(609 B)
📄
make-exported.exp
(22 B)
📄
make-exported.mk
(1004 B)
📄
meta-cmd-cmp.exp
(1.12 KB)
📄
meta-cmd-cmp.mk
(1.05 KB)
📄
moderrs.exp
(3.63 KB)
📄
moderrs.mk
(5.63 KB)
📄
modmatch.exp
(660 B)
📄
modmatch.mk
(630 B)
📄
modmisc.exp
(392 B)
📄
modmisc.mk
(1.96 KB)
📄
modts.exp
(362 B)
📄
modts.mk
(1.57 KB)
📄
modword.exp
(3.76 KB)
📄
modword.mk
(5.82 KB)
📄
objdir-writable.exp
(92 B)
📄
objdir-writable.mk
(680 B)
📄
opt-backwards.exp
(14 B)
📄
opt-backwards.mk
(144 B)
📄
opt-chdir.exp
(9.92 KB)
📄
opt-chdir.mk
(933 B)
📄
opt-debug-all.exp
(14 B)
📄
opt-debug-all.mk
(278 B)
📄
opt-debug-archive.exp
(14 B)
📄
opt-debug-archive.mk
(202 B)
📄
opt-debug-cond.exp
(14 B)
📄
opt-debug-cond.mk
(284 B)
📄
opt-debug-curdir.exp
(14 B)
📄
opt-debug-curdir.mk
(186 B)
📄
opt-debug-dir.exp
(14 B)
📄
opt-debug-dir.mk
(209 B)
📄
opt-debug-errors.exp
(844 B)
📄
opt-debug-errors.mk
(1.25 KB)
📄
opt-debug-file.exp
(14 B)
📄
opt-debug-file.mk
(1.31 KB)
📄
opt-debug-for.exp
(394 B)
📄
opt-debug-for.mk
(794 B)
📄
opt-debug-graph1.exp
(1.75 KB)
📄
opt-debug-graph1.mk
(414 B)
📄
opt-debug-graph2.exp
(14 B)
📄
opt-debug-graph2.mk
(233 B)
📄
opt-debug-graph3.exp
(14 B)
📄
opt-debug-graph3.mk
(205 B)
📄
opt-debug-hash.exp
(14 B)
📄
opt-debug-hash.mk
(277 B)
📄
opt-debug-jobs.exp
(701 B)
📄
opt-debug-jobs.mk
(1.16 KB)
📄
opt-debug-lint.exp
(426 B)
📄
opt-debug-lint.mk
(2.91 KB)
📄
opt-debug-loud.exp
(37 B)
📄
opt-debug-loud.mk
(754 B)
📄
opt-debug-making.exp
(14 B)
📄
opt-debug-making.mk
(227 B)
📄
opt-debug-meta.exp
(14 B)
📄
opt-debug-meta.mk
(216 B)
📄
opt-debug-no-rm.exp
(14 B)
📄
opt-debug-no-rm.mk
(373 B)
📄
opt-debug-parse.exp
(14 B)
📄
opt-debug-parse.mk
(198 B)
📄
opt-debug-suff.exp
(14 B)
📄
opt-debug-suff.mk
(251 B)
📄
opt-debug-targets.exp
(14 B)
📄
opt-debug-targets.mk
(255 B)
📄
opt-debug-var.exp
(14 B)
📄
opt-debug-var.mk
(214 B)
📄
opt-debug-varraw.exp
(14 B)
📄
opt-debug-varraw.mk
(306 B)
📄
opt-debug-x-trace.exp
(14 B)
📄
opt-debug-x-trace.mk
(258 B)
📄
opt-debug.exp
(105 B)
📄
opt-debug.mk
(315 B)
📄
opt-define.exp
(14 B)
📄
opt-define.mk
(141 B)
📄
opt-env.exp
(14 B)
📄
opt-env.mk
(138 B)
📄
opt-file.exp
(284 B)
📄
opt-file.mk
(3.27 KB)
📄
opt-ignore.exp
(191 B)
📄
opt-ignore.mk
(728 B)
📄
opt-include-dir.exp
(14 B)
📄
opt-include-dir.mk
(146 B)
📄
opt-jobs-internal.exp
(14 B)
📄
opt-jobs-internal.mk
(177 B)
📄
opt-jobs-no-action.exp
(905 B)
📄
opt-jobs-no-action.mk
(3.04 KB)
📄
opt-jobs.exp
(14 B)
📄
opt-jobs.mk
(139 B)
📄
opt-keep-going-multiple.exp
(146 B)
📄
opt-keep-going-multiple.mk
(588 B)
📄
opt-keep-going.exp
(166 B)
📄
opt-keep-going.mk
(751 B)
📄
opt-m-include-dir.exp
(17 B)
📄
opt-m-include-dir.mk
(1.81 KB)
📄
opt-no-action-at-all.exp
(14 B)
📄
opt-no-action-at-all.mk
(151 B)
📄
opt-no-action-runflags.exp
(521 B)
📄
opt-no-action-runflags.mk
(817 B)
📄
opt-no-action.exp
(300 B)
📄
opt-no-action.mk
(1.06 KB)
📄
opt-query.exp
(37 B)
📄
opt-query.mk
(760 B)
📄
opt-raw.exp
(14 B)
📄
opt-raw.mk
(138 B)
📄
opt-silent.exp
(14 B)
📄
opt-silent.mk
(141 B)
📄
opt-touch-jobs.exp
(102 B)
📄
opt-touch-jobs.mk
(830 B)
📄
opt-touch.exp
(102 B)
📄
opt-touch.mk
(480 B)
📄
opt-tracefile.exp
(14 B)
📄
opt-tracefile.mk
(144 B)
📄
opt-var-expanded.exp
(35 B)
📄
opt-var-expanded.mk
(180 B)
📄
opt-var-literal.exp
(40 B)
📄
opt-var-literal.mk
(179 B)
📄
opt-warnings-as-errors.exp
(279 B)
📄
opt-warnings-as-errors.mk
(253 B)
📄
opt-where-am-i.exp
(14 B)
📄
opt-where-am-i.mk
(145 B)
📄
opt-x-reduce-exported.exp
(14 B)
📄
opt-x-reduce-exported.mk
(152 B)
📄
opt.exp
(807 B)
📄
opt.mk
(916 B)
📄
order.exp
(70 B)
📄
order.mk
(415 B)
📄
parse-var.exp
(14 B)
📄
parse-var.mk
(309 B)
📄
phony-end.exp
(219 B)
📄
phony-end.mk
(195 B)
📄
posix.exp
(652 B)
📄
posix.mk
(539 B)
📄
posix1.exp
(4.25 KB)
📄
posix1.mk
(5.34 KB)
📄
recursive.exp
(220 B)
📄
recursive.mk
(1.33 KB)
📄
sh-dots.exp
(484 B)
📄
sh-dots.mk
(1.55 KB)
📄
sh-errctl.exp
(520 B)
📄
sh-errctl.mk
(842 B)
📄
sh-flags.exp
(72.36 KB)
📄
sh-flags.mk
(3.4 KB)
📄
sh-jobs-error.exp
(14 B)
📄
sh-jobs-error.mk
(218 B)
📄
sh-jobs.exp
(147 B)
📄
sh-jobs.mk
(1.09 KB)
📄
sh-leading-at.exp
(54 B)
📄
sh-leading-at.mk
(374 B)
📄
sh-leading-hyphen.exp
(14 B)
📄
sh-leading-hyphen.mk
(262 B)
📄
sh-leading-plus.exp
(92 B)
📄
sh-leading-plus.mk
(261 B)
📄
sh-meta-chars.exp
(14 B)
📄
sh-meta-chars.mk
(879 B)
📄
sh-multi-line.exp
(14 B)
📄
sh-multi-line.mk
(191 B)
📄
sh-single-line.exp
(14 B)
📄
sh-single-line.mk
(316 B)
📄
sh.exp
(14 B)
📄
sh.mk
(222 B)
📄
shell-csh.exp
(116 B)
📄
shell-csh.mk
(1.1 KB)
📄
shell-custom.exp
(103 B)
📄
shell-custom.mk
(305 B)
📄
shell-ksh.exp
(48 B)
📄
shell-ksh.mk
(209 B)
📄
shell-sh.exp
(48 B)
📄
shell-sh.mk
(268 B)
📄
suff-add-later.exp
(694 B)
📄
suff-add-later.mk
(1.15 KB)
📄
suff-clear-regular.exp
(224 B)
📄
suff-clear-regular.mk
(1.02 KB)
📄
suff-clear-single.exp
(134 B)
📄
suff-clear-single.mk
(459 B)
📄
suff-incomplete.exp
(1.52 KB)
📄
suff-incomplete.mk
(922 B)
📄
suff-lookup.exp
(2.26 KB)
📄
suff-lookup.mk
(938 B)
📄
suff-main-several.exp
(4.29 KB)
📄
suff-main-several.mk
(1.18 KB)
📄
suff-main.exp
(33 B)
📄
suff-main.mk
(780 B)
📄
suff-phony.exp
(350 B)
📄
suff-phony.mk
(407 B)
📄
suff-rebuild.exp
(2.5 KB)
📄
suff-rebuild.mk
(1.36 KB)
📄
suff-self.exp
(127 B)
📄
suff-self.mk
(244 B)
📄
suff-transform-debug.exp
(1.45 KB)
📄
suff-transform-debug.mk
(261 B)
📄
suff-transform-endless.exp
(1.32 KB)
📄
suff-transform-endless.mk
(1.32 KB)
📄
suff-transform-expand.exp
(213 B)
📄
suff-transform-expand.mk
(725 B)
📄
suff-transform-select.exp
(1.34 KB)
📄
suff-transform-select.mk
(863 B)
📄
sunshcmd.exp
(48 B)
📄
sunshcmd.mk
(254 B)
📄
ternary.exp
(187 B)
📄
ternary.mk
(267 B)
📄
unexport-env.exp
(35 B)
📄
unexport-env.mk
(372 B)
📄
unexport.exp
(68 B)
📄
unexport.mk
(541 B)
📄
use-inference.exp
(185 B)
📄
use-inference.mk
(1.17 KB)
📄
var-class-cmdline.exp
(14 B)
📄
var-class-cmdline.mk
(161 B)
📄
var-class-env.exp
(14 B)
📄
var-class-env.mk
(164 B)
📄
var-class-global.exp
(14 B)
📄
var-class-global.mk
(174 B)
📄
var-class-local-legacy.exp
(14 B)
📄
var-class-local-legacy.mk
(180 B)
📄
var-class-local.exp
(204 B)
📄
var-class-local.mk
(1.25 KB)
📄
var-class.exp
(14 B)
📄
var-class.mk
(241 B)
📄
var-op-append.exp
(305 B)
📄
var-op-append.mk
(1.16 KB)
📄
var-op-assign.exp
(242 B)
📄
var-op-assign.mk
(3.28 KB)
📄
var-op-default.exp
(14 B)
📄
var-op-default.mk
(2.76 KB)
📄
var-op-expand.exp
(14 B)
📄
var-op-expand.mk
(5.04 KB)
📄
var-op-shell.exp
(383 B)
📄
var-op-shell.mk
(2.42 KB)
📄
var-op-sunsh.exp
(14 B)
📄
var-op-sunsh.mk
(4.28 KB)
📄
var-op.exp
(14 B)
📄
var-op.mk
(144 B)
📄
var-recursive.exp
(272 B)
📄
var-recursive.mk
(1.27 KB)
📄
varcmd.exp
(367 B)
📄
varcmd.mk
(894 B)
📄
vardebug.exp
(4.33 KB)
📄
vardebug.mk
(1.52 KB)
📄
varfind.exp
(640 B)
📄
varfind.mk
(651 B)
📄
varmisc.exp
(1.63 KB)
📄
varmisc.mk
(5.19 KB)
📄
varmod-assign.exp
(558 B)
📄
varmod-assign.mk
(4.28 KB)
📄
varmod-defined.exp
(1.15 KB)
📄
varmod-defined.mk
(3.16 KB)
📄
varmod-edge.exp
(1.02 KB)
📄
varmod-edge.mk
(5.93 KB)
📄
varmod-exclam-shell.exp
(14 B)
📄
varmod-exclam-shell.mk
(1.07 KB)
📄
varmod-extension.exp
(294 B)
📄
varmod-extension.mk
(316 B)
📄
varmod-gmtime.exp
(946 B)
📄
varmod-gmtime.mk
(3.75 KB)
📄
varmod-hash.exp
(113 B)
📄
varmod-hash.mk
(1.78 KB)
📄
varmod-head.exp
(350 B)
📄
varmod-head.mk
(319 B)
📄
varmod-ifelse.exp
(1.14 KB)
📄
varmod-ifelse.mk
(4.28 KB)
📄
varmod-indirect.exp
(3.55 KB)
📄
varmod-indirect.mk
(5.01 KB)
📄
varmod-l-name-to-value.exp
(14 B)
📄
varmod-l-name-to-value.mk
(1.27 KB)
📄
varmod-localtime.exp
(991 B)
📄
varmod-localtime.mk
(3.81 KB)
📄
varmod-loop.exp
(930 B)
📄
varmod-loop.mk
(5.8 KB)
📄
varmod-match-escape.exp
(2.84 KB)
📄
varmod-match-escape.mk
(2.75 KB)
📄
varmod-match.exp
(621 B)
📄
varmod-match.mk
(1.6 KB)
📄
varmod-no-match.exp
(14 B)
📄
varmod-no-match.mk
(203 B)
📄
varmod-order-reverse.exp
(14 B)
📄
varmod-order-reverse.mk
(343 B)
📄
varmod-order-shuffle.exp
(14 B)
📄
varmod-order-shuffle.mk
(1.36 KB)
📄
varmod-order.exp
(302 B)
📄
varmod-order.mk
(421 B)
📄
varmod-path.exp
(106 B)
📄
varmod-path.mk
(1.04 KB)
📄
varmod-quote-dollar.exp
(14 B)
📄
varmod-quote-dollar.mk
(283 B)
📄
varmod-quote.exp
(14 B)
📄
varmod-quote.mk
(673 B)
📄
varmod-range.exp
(821 B)
📄
varmod-range.mk
(2.4 KB)
📄
varmod-remember.exp
(47 B)
📄
varmod-remember.mk
(549 B)
📄
varmod-root.exp
(254 B)
📄
varmod-root.mk
(294 B)
📄
varmod-select-words.exp
(14 B)
📄
varmod-select-words.mk
(219 B)
📄
varmod-shell.exp
(114 B)
📄
varmod-shell.mk
(1.04 KB)
📄
varmod-subst-regex.exp
(757 B)
📄
varmod-subst-regex.mk
(4.25 KB)
📄
varmod-subst.exp
(1.17 KB)
📄
varmod-subst.mk
(6.52 KB)
📄
varmod-sysv.exp
(227 B)
📄
varmod-sysv.mk
(7.78 KB)
📄
varmod-tail.exp
(367 B)
📄
varmod-tail.mk
(321 B)
📄
varmod-to-abs.exp
(221 B)
📄
varmod-to-abs.mk
(1000 B)
📄
varmod-to-lower.exp
(14 B)
📄
varmod-to-lower.mk
(406 B)
📄
varmod-to-many-words.exp
(14 B)
📄
varmod-to-many-words.mk
(494 B)
📄
varmod-to-one-word.exp
(14 B)
📄
varmod-to-one-word.mk
(506 B)
📄
varmod-to-separator.exp
(1.15 KB)
📄
varmod-to-separator.mk
(6.26 KB)
📄
varmod-to-upper.exp
(34 B)
📄
varmod-to-upper.mk
(525 B)
📄
varmod-undefined.exp
(14 B)
📄
varmod-undefined.mk
(2 KB)
📄
varmod-unique.exp
(14 B)
📄
varmod-unique.mk
(987 B)
📄
varmod.exp
(421 B)
📄
varmod.mk
(1.58 KB)
📄
varname-dollar.exp
(230 B)
📄
varname-dollar.mk
(1020 B)
📄
varname-dot-alltargets.exp
(64 B)
📄
varname-dot-alltargets.mk
(615 B)
📄
varname-dot-curdir.exp
(14 B)
📄
varname-dot-curdir.mk
(1.28 KB)
📄
varname-dot-includedfromdir.exp
(14 B)
📄
varname-dot-includedfromdir.mk
(169 B)
📄
varname-dot-includedfromfile.exp
(14 B)
📄
varname-dot-includedfromfile.mk
(171 B)
📄
varname-dot-includes.exp
(34 B)
📄
varname-dot-includes.mk
(402 B)
📄
varname-dot-libs.exp
(30 B)
📄
varname-dot-libs.mk
(374 B)
📄
varname-dot-make-dependfile.exp
(14 B)
📄
varname-dot-make-dependfile.mk
(169 B)
📄
varname-dot-make-expand_variables.exp
(14 B)
📄
varname-dot-make-expand_variables.mk
(181 B)
📄
varname-dot-make-exported.exp
(14 B)
📄
varname-dot-make-exported.mk
(165 B)
📄
varname-dot-make-jobs-prefix.exp
(14 B)
📄
varname-dot-make-jobs-prefix.mk
(171 B)
📄
varname-dot-make-jobs.exp
(14 B)
📄
varname-dot-make-jobs.mk
(157 B)
📄
varname-dot-make-level.exp
(14 B)
📄
varname-dot-make-level.mk
(159 B)
📄
varname-dot-make-makefile_preference.exp
(14 B)
📄
varname-dot-make-makefile_preference.mk
(187 B)
📄
varname-dot-make-makefiles.exp
(14 B)
📄
varname-dot-make-makefiles.mk
(167 B)
📄
varname-dot-make-meta-bailiwick.exp
(14 B)
📄
varname-dot-make-meta-bailiwick.mk
(177 B)
📄
varname-dot-make-meta-created.exp
(14 B)
📄
varname-dot-make-meta-created.mk
(173 B)
📄
varname-dot-make-meta-files.exp
(14 B)
📄
varname-dot-make-meta-files.mk
(169 B)
📄
varname-dot-make-meta-ignore_filter.exp
(14 B)
📄
varname-dot-make-meta-ignore_filter.mk
(185 B)
📄
varname-dot-make-meta-ignore_paths.exp
(14 B)
📄
varname-dot-make-meta-ignore_paths.mk
(183 B)
📄
varname-dot-make-meta-ignore_patterns.exp
(14 B)
📄
varname-dot-make-meta-ignore_patterns.mk
(189 B)
📄
varname-dot-make-meta-prefix.exp
(14 B)
📄
varname-dot-make-meta-prefix.mk
(171 B)
📄
varname-dot-make-mode.exp
(14 B)
📄
varname-dot-make-mode.mk
(157 B)
📄
varname-dot-make-path_filemon.exp
(14 B)
📄
varname-dot-make-path_filemon.mk
(173 B)
📄
varname-dot-make-pid.exp
(14 B)
📄
varname-dot-make-pid.mk
(155 B)
📄
varname-dot-make-ppid.exp
(14 B)
📄
varname-dot-make-ppid.mk
(157 B)
📄
varname-dot-make-save_dollars.exp
(14 B)
📄
varname-dot-make-save_dollars.mk
(173 B)
📄
varname-dot-makeflags.exp
(72 B)
📄
varname-dot-makeflags.mk
(596 B)
📄
varname-dot-makeoverrides.exp
(14 B)
📄
varname-dot-makeoverrides.mk
(170 B)
📄
varname-dot-newline.exp
(130 B)
📄
varname-dot-newline.mk
(622 B)
📄
varname-dot-objdir.exp
(14 B)
📄
varname-dot-objdir.mk
(151 B)
📄
varname-dot-parsedir.exp
(275 B)
📄
varname-dot-parsedir.mk
(1.33 KB)
📄
varname-dot-parsefile.exp
(279 B)
📄
varname-dot-parsefile.mk
(1.14 KB)
📄
varname-dot-path.exp
(14 B)
📄
varname-dot-path.mk
(1.49 KB)
📄
varname-dot-shell.exp
(1.43 KB)
📄
varname-dot-shell.mk
(730 B)
📄
varname-dot-targets.exp
(14 B)
📄
varname-dot-targets.mk
(153 B)
📄
varname-empty.exp
(738 B)
📄
varname-empty.mk
(2.46 KB)
📄
varname-make.exp
(14 B)
📄
varname-make.mk
(142 B)
📄
varname-make_print_var_on_error-jobs.exp
(329 B)
📄
varname-make_print_var_on_error-jobs.mk
(1.11 KB)
📄
varname-make_print_var_on_error.exp
(176 B)
📄
varname-make_print_var_on_error.mk
(906 B)
📄
varname-makefile.exp
(51 B)
📄
varname-makefile.mk
(1.39 KB)
📄
varname-makeflags.exp
(14 B)
📄
varname-makeflags.mk
(825 B)
📄
varname-pwd.exp
(14 B)
📄
varname-pwd.mk
(140 B)
📄
varname-vpath.exp
(501 B)
📄
varname-vpath.mk
(1.22 KB)
📄
varname.exp
(1.16 KB)
📄
varname.mk
(1.56 KB)
📄
varparse-dynamic.exp
(235 B)
📄
varparse-dynamic.mk
(1.2 KB)
📄
varparse-errors.exp
(206 B)
📄
varparse-errors.mk
(1.59 KB)
📄
varparse-mod.exp
(14 B)
📄
varparse-mod.mk
(1.78 KB)
📄
varparse-undef-partial.exp
(14 B)
📄
varparse-undef-partial.mk
(2.55 KB)
📄
varquote.exp
(196 B)
📄
varquote.mk
(412 B)
Editing: varmod-edge.mk
# $NetBSD: varmod-edge.mk,v 1.13 2020/10/24 08:46:08 rillig Exp $ # # Tests for edge cases in variable modifiers. # # These tests demonstrate the current implementation in small examples. # They may contain surprising behavior. # # Each test consists of: # - INP, the input to the test # - MOD, the expression for testing the modifier # - EXP, the expected output TESTS+= M-paren INP.M-paren= (parentheses) {braces} (opening closing) () MOD.M-paren= ${INP.M-paren:M(*)} EXP.M-paren= (parentheses) () # The first closing brace matches the opening parenthesis. # The second closing brace actually ends the variable expression. # # XXX: This is unexpected but rarely occurs in practice. TESTS+= M-mixed INP.M-mixed= (paren-brace} ( MOD.M-mixed= ${INP.M-mixed:M(*}} EXP.M-mixed= (paren-brace} # After the :M modifier has parsed the pattern, only the closing brace # and the colon are unescaped. The other characters are left as-is. # To actually see this effect, the backslashes in the :M modifier need # to be doubled since single backslashes would simply be unescaped by # Str_Match. # # XXX: This is unexpected. The opening brace should also be unescaped. TESTS+= M-unescape INP.M-unescape= ({}): \(\{\}\)\: \(\{}\): MOD.M-unescape= ${INP.M-unescape:M\\(\\{\\}\\)\\:} EXP.M-unescape= \(\{}\): # When the :M and :N modifiers are parsed, the pattern finishes as soon # as open_parens + open_braces == closing_parens + closing_braces. This # means that ( and } form a matching pair. # # Nested variable expressions are not parsed as such. Instead, only the # parentheses and braces are counted. This leads to a parse error since # the nested expression is not "${:U*)}" but only "${:U*)", which is # missing the closing brace. The expression is evaluated anyway. # The final brace in the output comes from the end of M.nest-mix. # # XXX: This is unexpected but rarely occurs in practice. TESTS+= M-nest-mix INP.M-nest-mix= (parentheses) MOD.M-nest-mix= ${INP.M-nest-mix:M${:U*)}} EXP.M-nest-mix= (parentheses)} # make: Unclosed variable specification (expecting '}') for "" (value "*)") modifier U # In contrast to parentheses and braces, the brackets are not counted # when the :M modifier is parsed since Makefile variables only take the # ${VAR} or $(VAR) forms, but not $[VAR]. # # The final ] in the pattern is needed to close the character class. TESTS+= M-nest-brk INP.M-nest-brk= [ [[ [[[ MOD.M-nest-brk= ${INP.M-nest-brk:M${:U[[[[[]}} EXP.M-nest-brk= [ # The pattern in the nested variable has an unclosed character class. # No error is reported though, and the pattern is closed implicitly. # # XXX: It is unexpected that no error is reported. # See str.c, function Str_Match. # # Before 2019-12-02, this test case triggered an out-of-bounds read # in Str_Match. TESTS+= M-pat-err INP.M-pat-err= [ [[ [[[ MOD.M-pat-err= ${INP.M-pat-err:M${:U[[}} EXP.M-pat-err= [ # The first backslash does not escape the second backslash. # Therefore, the second backslash escapes the parenthesis. # This means that the pattern ends there. # The final } in the output comes from the end of MOD.M-bsbs. # # If the first backslash were to escape the second backslash, the first # closing brace would match the opening parenthesis (see M-mixed), and # the second closing brace would be needed to close the variable. # After that, the remaining backslash would escape the parenthesis in # the pattern, therefore (} would match. TESTS+= M-bsbs INP.M-bsbs= (} \( \(} MOD.M-bsbs= ${INP.M-bsbs:M\\(}} EXP.M-bsbs= \(} #EXP.M-bsbs= (} # If the first backslash were to escape ... # The backslash in \( does not escape the parenthesis, therefore it # counts for the nesting level and matches with the first closing brace. # The second closing brace closes the variable, and the third is copied # literally. # # The second :M in the pattern is nested between ( and }, therefore it # does not start a new modifier. TESTS+= M-bs1-par INP.M-bs1-par= ( (:M (:M} \( \(:M \(:M} MOD.M-bs1-par= ${INP.M-bs1-par:M\(:M*}}} EXP.M-bs1-par= (:M}} # The double backslash is passed verbatim to the pattern matcher. # The Str_Match pattern is \\(:M*}, and there the backslash is unescaped. # Again, the ( takes place in the nesting level, and there is no way to # prevent this, no matter how many backslashes are used. TESTS+= M-bs2-par INP.M-bs2-par= ( (:M (:M} \( \(:M \(:M} MOD.M-bs2-par= ${INP.M-bs2-par:M\\(:M*}}} EXP.M-bs2-par= \(:M}} # Str_Match uses a recursive algorithm for matching the * patterns. # Make sure that it survives patterns with 128 asterisks. # That should be enough for all practical purposes. # To produce a stack overflow, just add more :Qs below. TESTS+= M-128 INP.M-128= ${:U\\:Q:Q:Q:Q:Q:Q:Q:S,\\,x,g} PAT.M-128= ${:U\\:Q:Q:Q:Q:Q:Q:Q:S,\\,*,g} MOD.M-128= ${INP.M-128:M${PAT.M-128}} EXP.M-128= ${INP.M-128} # This is the normal SysV substitution. Nothing surprising here. TESTS+= eq-ext INP.eq-ext= file.c file.cc MOD.eq-ext= ${INP.eq-ext:%.c=%.o} EXP.eq-ext= file.o file.cc # The SysV := modifier is greedy and consumes all the modifier text # up until the closing brace or parenthesis. The :Q may look like a # modifier, but it really isn't, that's why it appears in the output. TESTS+= eq-q INP.eq-q= file.c file.cc MOD.eq-q= ${INP.eq-q:%.c=%.o:Q} EXP.eq-q= file.o:Q file.cc # The = in the := modifier can be escaped. TESTS+= eq-bs INP.eq-bs= file.c file.c=%.o MOD.eq-bs= ${INP.eq-bs:%.c\=%.o=%.ext} EXP.eq-bs= file.c file.ext # Having only an escaped '=' results in a parse error. # The call to "pattern.lhs = ParseModifierPart" fails. TESTS+= eq-esc INP.eq-esc= file.c file... MOD.eq-esc= ${INP.eq-esc:a\=b} EXP.eq-esc= # empty # make: Unfinished modifier for INP.eq-esc ('=' missing) TESTS+= colon INP.colon= value MOD.colon= ${INP.colon:} EXP.colon= value TESTS+= colons INP.colons= value MOD.colons= ${INP.colons::::} EXP.colons= # empty .for test in ${TESTS} . if ${MOD.${test}} == ${EXP.${test}} . info ok ${test} . else . warning error in ${test}: expected "${EXP.${test}}", got "${MOD.${test}}" . endif .endfor all: @echo ok
Upload File
Create Folder