make: make debug logging for comparisons less technicaldiff -r1.330 -r1.331 src/usr.bin/make/cond.c
(rillig)
--- src/usr.bin/make/cond.c 2022/02/11 21:18:09 1.330
+++ src/usr.bin/make/cond.c 2022/03/03 19:36:35 1.331
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: cond.c,v 1.330 2022/02/11 21:18:09 rillig Exp $ */ | 1 | /* $NetBSD: cond.c,v 1.331 2022/03/03 19:36:35 rillig Exp $ */ | |
2 | 2 | |||
3 | /* | 3 | /* | |
4 | * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. | 4 | * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. | |
5 | * All rights reserved. | 5 | * All rights reserved. | |
6 | * | 6 | * | |
7 | * This code is derived from software contributed to Berkeley by | 7 | * This code is derived from software contributed to Berkeley by | |
8 | * Adam de Boor. | 8 | * Adam de Boor. | |
9 | * | 9 | * | |
10 | * Redistribution and use in source and binary forms, with or without | 10 | * Redistribution and use in source and binary forms, with or without | |
11 | * modification, are permitted provided that the following conditions | 11 | * modification, are permitted provided that the following conditions | |
12 | * are met: | 12 | * are met: | |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright | |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. | |
@@ -85,27 +85,27 @@ | @@ -85,27 +85,27 @@ | |||
85 | * Cond_restore_depth | 85 | * Cond_restore_depth | |
86 | * Save and restore the nesting of the conditions, at | 86 | * Save and restore the nesting of the conditions, at | |
87 | * the start and end of including another makefile, to | 87 | * the start and end of including another makefile, to | |
88 | * ensure that in each makefile the conditional | 88 | * ensure that in each makefile the conditional | |
89 | * directives are well-balanced. | 89 | * directives are well-balanced. | |
90 | */ | 90 | */ | |
91 | 91 | |||
92 | #include <errno.h> | 92 | #include <errno.h> | |
93 | 93 | |||
94 | #include "make.h" | 94 | #include "make.h" | |
95 | #include "dir.h" | 95 | #include "dir.h" | |
96 | 96 | |||
97 | /* "@(#)cond.c 8.2 (Berkeley) 1/2/94" */ | 97 | /* "@(#)cond.c 8.2 (Berkeley) 1/2/94" */ | |
98 | MAKE_RCSID("$NetBSD: cond.c,v 1.330 2022/02/11 21:18:09 rillig Exp $"); | 98 | MAKE_RCSID("$NetBSD: cond.c,v 1.331 2022/03/03 19:36:35 rillig Exp $"); | |
99 | 99 | |||
100 | /* | 100 | /* | |
101 | * Conditional expressions conform to this grammar: | 101 | * Conditional expressions conform to this grammar: | |
102 | * Or -> And ('||' And)* | 102 | * Or -> And ('||' And)* | |
103 | * And -> Term ('&&' Term)* | 103 | * And -> Term ('&&' Term)* | |
104 | * Term -> Function '(' Argument ')' | 104 | * Term -> Function '(' Argument ')' | |
105 | * Term -> Leaf Operator Leaf | 105 | * Term -> Leaf Operator Leaf | |
106 | * Term -> Leaf | 106 | * Term -> Leaf | |
107 | * Term -> '(' Or ')' | 107 | * Term -> '(' Or ')' | |
108 | * Term -> '!' Term | 108 | * Term -> '!' Term | |
109 | * Leaf -> "string" | 109 | * Leaf -> "string" | |
110 | * Leaf -> Number | 110 | * Leaf -> Number | |
111 | * Leaf -> VariableExpression | 111 | * Leaf -> VariableExpression | |
@@ -547,27 +547,27 @@ EvalNotEmpty(CondParser *par, const char | @@ -547,27 +547,27 @@ EvalNotEmpty(CondParser *par, const char | |||
547 | * XXX: Whitespace should count as empty, just as in | 547 | * XXX: Whitespace should count as empty, just as in | |
548 | * CondParser_FuncCallEmpty. | 548 | * CondParser_FuncCallEmpty. | |
549 | */ | 549 | */ | |
550 | if (par->plain) | 550 | if (par->plain) | |
551 | return value[0] != '\0'; | 551 | return value[0] != '\0'; | |
552 | 552 | |||
553 | return par->evalBare(value) != par->negateEvalBare; | 553 | return par->evalBare(value) != par->negateEvalBare; | |
554 | } | 554 | } | |
555 | 555 | |||
556 | /* Evaluate a numerical comparison, such as in ".if ${VAR} >= 9". */ | 556 | /* Evaluate a numerical comparison, such as in ".if ${VAR} >= 9". */ | |
557 | static bool | 557 | static bool | |
558 | EvalCompareNum(double lhs, ComparisonOp op, double rhs) | 558 | EvalCompareNum(double lhs, ComparisonOp op, double rhs) | |
559 | { | 559 | { | |
560 | DEBUG3(COND, "lhs = %f, rhs = %f, op = %.2s\n", lhs, rhs, opname[op]); | 560 | DEBUG3(COND, "Comparing %f %s %f\n", lhs, opname[op], rhs); | |
561 | 561 | |||
562 | switch (op) { | 562 | switch (op) { | |
563 | case LT: | 563 | case LT: | |
564 | return lhs < rhs; | 564 | return lhs < rhs; | |
565 | case LE: | 565 | case LE: | |
566 | return lhs <= rhs; | 566 | return lhs <= rhs; | |
567 | case GT: | 567 | case GT: | |
568 | return lhs > rhs; | 568 | return lhs > rhs; | |
569 | case GE: | 569 | case GE: | |
570 | return lhs >= rhs; | 570 | return lhs >= rhs; | |
571 | case NE: | 571 | case NE: | |
572 | return lhs != rhs; | 572 | return lhs != rhs; | |
573 | default: | 573 | default: | |
@@ -576,28 +576,27 @@ EvalCompareNum(double lhs, ComparisonOp | @@ -576,28 +576,27 @@ EvalCompareNum(double lhs, ComparisonOp | |||
576 | } | 576 | } | |
577 | 577 | |||
578 | static Token | 578 | static Token | |
579 | EvalCompareStr(CondParser *par, const char *lhs, | 579 | EvalCompareStr(CondParser *par, const char *lhs, | |
580 | ComparisonOp op, const char *rhs) | 580 | ComparisonOp op, const char *rhs) | |
581 | { | 581 | { | |
582 | if (op != EQ && op != NE) { | 582 | if (op != EQ && op != NE) { | |
583 | Parse_Error(PARSE_FATAL, | 583 | Parse_Error(PARSE_FATAL, | |
584 | "String comparison operator must be either == or !="); | 584 | "String comparison operator must be either == or !="); | |
585 | par->printedError = true; | 585 | par->printedError = true; | |
586 | return TOK_ERROR; | 586 | return TOK_ERROR; | |
587 | } | 587 | } | |
588 | 588 | |||
589 | DEBUG3(COND, "lhs = \"%s\", rhs = \"%s\", op = %.2s\n", | 589 | DEBUG3(COND, "Comparing \"%s\" %s \"%s\"\n", lhs, opname[op], rhs); | |
590 | lhs, rhs, opname[op]); | |||
591 | return ToToken((op == EQ) == (strcmp(lhs, rhs) == 0)); | 590 | return ToToken((op == EQ) == (strcmp(lhs, rhs) == 0)); | |
592 | } | 591 | } | |
593 | 592 | |||
594 | /* Evaluate a comparison, such as "${VAR} == 12345". */ | 593 | /* Evaluate a comparison, such as "${VAR} == 12345". */ | |
595 | static Token | 594 | static Token | |
596 | EvalCompare(CondParser *par, const char *lhs, bool lhsQuoted, | 595 | EvalCompare(CondParser *par, const char *lhs, bool lhsQuoted, | |
597 | ComparisonOp op, const char *rhs, bool rhsQuoted) | 596 | ComparisonOp op, const char *rhs, bool rhsQuoted) | |
598 | { | 597 | { | |
599 | double left, right; | 598 | double left, right; | |
600 | 599 | |||
601 | if (!rhsQuoted && !lhsQuoted) | 600 | if (!rhsQuoted && !lhsQuoted) | |
602 | if (TryParseNumber(lhs, &left) && TryParseNumber(rhs, &right)) | 601 | if (TryParseNumber(lhs, &left) && TryParseNumber(rhs, &right)) | |
603 | return ToToken(EvalCompareNum(left, op, right)); | 602 | return ToToken(EvalCompareNum(left, op, right)); |
--- src/usr.bin/make/unit-tests/cond-cmp-numeric.exp 2021/07/29 06:31:18 1.6
+++ src/usr.bin/make/unit-tests/cond-cmp-numeric.exp 2022/03/03 19:36:35 1.7
@@ -1,15 +1,15 @@ | @@ -1,15 +1,15 @@ | |||
1 | CondParser_Eval: !(${:UINF} > 1e100) | 1 | CondParser_Eval: !(${:UINF} > 1e100) | |
2 | make: "cond-cmp-numeric.mk" line 11: String comparison operator must be either == or != | 2 | make: "cond-cmp-numeric.mk" line 11: String comparison operator must be either == or != | |
3 | CondParser_Eval: ${:UNaN} > NaN | 3 | CondParser_Eval: ${:UNaN} > NaN | |
4 | make: "cond-cmp-numeric.mk" line 16: String comparison operator must be either == or != | 4 | make: "cond-cmp-numeric.mk" line 16: String comparison operator must be either == or != | |
5 | CondParser_Eval: !(${:UNaN} == NaN) | 5 | CondParser_Eval: !(${:UNaN} == NaN) | |
6 | lhs = "NaN", rhs = "NaN", op = == | 6 | Comparing "NaN" == "NaN" | |
7 | CondParser_Eval: 123 ! 123 | 7 | CondParser_Eval: 123 ! 123 | |
8 | make: "cond-cmp-numeric.mk" line 34: Malformed conditional (123 ! 123) | 8 | make: "cond-cmp-numeric.mk" line 34: Malformed conditional (123 ! 123) | |
9 | CondParser_Eval: ${:U 123} < 124 | 9 | CondParser_Eval: ${:U 123} < 124 | |
10 | lhs = 123.000000, rhs = 124.000000, op = < | 10 | Comparing 123.000000 < 124.000000 | |
11 | CondParser_Eval: ${:U123 } < 124 | 11 | CondParser_Eval: ${:U123 } < 124 | |
12 | make: "cond-cmp-numeric.mk" line 50: String comparison operator must be either == or != | 12 | make: "cond-cmp-numeric.mk" line 50: String comparison operator must be either == or != | |
13 | make: Fatal errors encountered -- cannot continue | 13 | make: Fatal errors encountered -- cannot continue | |
14 | make: stopped in unit-tests | 14 | make: stopped in unit-tests | |
15 | exit status 1 | 15 | exit status 1 |
--- src/usr.bin/make/unit-tests/cond-token-plain.exp 2022/01/08 20:21:34 1.15
+++ src/usr.bin/make/unit-tests/cond-token-plain.exp 2022/03/03 19:36:35 1.16
@@ -1,62 +1,62 @@ | @@ -1,62 +1,62 @@ | |||
1 | CondParser_Eval: ${:Uvalue} != value | 1 | CondParser_Eval: ${:Uvalue} != value | |
2 | lhs = "value", rhs = "value", op = != | 2 | Comparing "value" != "value" | |
3 | CondParser_Eval: ${:U} != " | 3 | CondParser_Eval: ${:U} != " | |
4 | lhs = "", rhs = "", op = != | 4 | Comparing "" != "" | |
5 | CondParser_Eval: ${:U#hash} != "#hash" | 5 | CondParser_Eval: ${:U#hash} != "#hash" | |
6 | lhs = "#hash", rhs = "#hash", op = != | 6 | Comparing "#hash" != "#hash" | |
7 | CondParser_Eval: ${:U\\} != "\\ | 7 | CondParser_Eval: ${:U\\} != "\\ | |
8 | lhs = "\", rhs = "\", op = != | 8 | Comparing "\" != "\" | |
9 | CondParser_Eval: ${:U#hash} != #hash | 9 | CondParser_Eval: ${:U#hash} != #hash | |
10 | lhs = "#hash", rhs = "#hash", op = != | 10 | Comparing "#hash" != "#hash" | |
11 | CondParser_Eval: 0 # This is treated as a comment, but why? | 11 | CondParser_Eval: 0 # This is treated as a comment, but why? | |
12 | CondParser_Eval: ${0 # comment :?yes:no} != no | 12 | CondParser_Eval: ${0 # comment :?yes:no} != no | |
13 | CondParser_Eval: 0 # comment | 13 | CondParser_Eval: 0 # comment | |
14 | lhs = "no", rhs = "no", op = != | 14 | Comparing "no" != "no" | |
15 | CondParser_Eval: ${1 # comment :?yes:no} != yes | 15 | CondParser_Eval: ${1 # comment :?yes:no} != yes | |
16 | CondParser_Eval: 1 # comment | 16 | CondParser_Eval: 1 # comment | |
17 | lhs = "yes", rhs = "yes", op = != | 17 | Comparing "yes" != "yes" | |
18 | CondParser_Eval: ${UNDEF:Uundefined}!=undefined | 18 | CondParser_Eval: ${UNDEF:Uundefined}!=undefined | |
19 | lhs = "undefined", rhs = "undefined", op = != | 19 | Comparing "undefined" != "undefined" | |
20 | CondParser_Eval: ${UNDEF:U12345}>12345 | 20 | CondParser_Eval: ${UNDEF:U12345}>12345 | |
21 | lhs = 12345.000000, rhs = 12345.000000, op = > | 21 | Comparing 12345.000000 > 12345.000000 | |
22 | CondParser_Eval: ${UNDEF:U12345}<12345 | 22 | CondParser_Eval: ${UNDEF:U12345}<12345 | |
23 | lhs = 12345.000000, rhs = 12345.000000, op = < | 23 | Comparing 12345.000000 < 12345.000000 | |
24 | CondParser_Eval: (${UNDEF:U0})||0 | 24 | CondParser_Eval: (${UNDEF:U0})||0 | |
25 | CondParser_Eval: ${:Uvar}&&name != "var&&name" | 25 | CondParser_Eval: ${:Uvar}&&name != "var&&name" | |
26 | lhs = "var&&name", rhs = "var&&name", op = != | 26 | Comparing "var&&name" != "var&&name" | |
27 | CondParser_Eval: ${:Uvar}||name != "var||name" | 27 | CondParser_Eval: ${:Uvar}||name != "var||name" | |
28 | lhs = "var||name", rhs = "var||name", op = != | 28 | Comparing "var||name" != "var||name" | |
29 | CondParser_Eval: bare | 29 | CondParser_Eval: bare | |
30 | make: "cond-token-plain.mk" line 105: A bare word is treated like defined(...), and the variable 'bare' is not defined. | 30 | make: "cond-token-plain.mk" line 105: A bare word is treated like defined(...), and the variable 'bare' is not defined. | |
31 | CondParser_Eval: VAR | 31 | CondParser_Eval: VAR | |
32 | make: "cond-token-plain.mk" line 111: A bare word is treated like defined(...). | 32 | make: "cond-token-plain.mk" line 111: A bare word is treated like defined(...). | |
33 | CondParser_Eval: V${:UA}R | 33 | CondParser_Eval: V${:UA}R | |
34 | make: "cond-token-plain.mk" line 118: ok | 34 | make: "cond-token-plain.mk" line 118: ok | |
35 | CondParser_Eval: V${UNDEF}AR | 35 | CondParser_Eval: V${UNDEF}AR | |
36 | make: "cond-token-plain.mk" line 126: Undefined variables in bare words expand to an empty string. | 36 | make: "cond-token-plain.mk" line 126: Undefined variables in bare words expand to an empty string. | |
37 | CondParser_Eval: 0${:Ux00} | 37 | CondParser_Eval: 0${:Ux00} | |
38 | make: "cond-token-plain.mk" line 134: Numbers can be composed from literals and variable expressions. | 38 | make: "cond-token-plain.mk" line 134: Numbers can be composed from literals and variable expressions. | |
39 | CondParser_Eval: 0${:Ux01} | 39 | CondParser_Eval: 0${:Ux01} | |
40 | make: "cond-token-plain.mk" line 138: Numbers can be composed from literals and variable expressions. | 40 | make: "cond-token-plain.mk" line 138: Numbers can be composed from literals and variable expressions. | |
41 | CondParser_Eval: "" == | 41 | CondParser_Eval: "" == | |
42 | make: "cond-token-plain.mk" line 144: Missing right-hand side of operator '==' | 42 | make: "cond-token-plain.mk" line 144: Missing right-hand side of operator '==' | |
43 | CondParser_Eval: == "" | 43 | CondParser_Eval: == "" | |
44 | make: "cond-token-plain.mk" line 152: Malformed conditional (== "") | 44 | make: "cond-token-plain.mk" line 152: Malformed conditional (== "") | |
45 | CondParser_Eval: \\ | 45 | CondParser_Eval: \\ | |
46 | make: "cond-token-plain.mk" line 167: The variable '\\' is not defined. | 46 | make: "cond-token-plain.mk" line 167: The variable '\\' is not defined. | |
47 | CondParser_Eval: \\ | 47 | CondParser_Eval: \\ | |
48 | make: "cond-token-plain.mk" line 172: Now the variable '\\' is defined. | 48 | make: "cond-token-plain.mk" line 172: Now the variable '\\' is defined. | |
49 | CondParser_Eval: "unquoted\"quoted" != unquoted"quoted | 49 | CondParser_Eval: "unquoted\"quoted" != unquoted"quoted | |
50 | lhs = "unquoted"quoted", rhs = "unquoted"quoted", op = != | 50 | Comparing "unquoted"quoted" != "unquoted"quoted" | |
51 | CondParser_Eval: $$$$$$$$ != "" | 51 | CondParser_Eval: $$$$$$$$ != "" | |
52 | CondParser_Eval: left == right | 52 | CondParser_Eval: left == right | |
53 | make: "cond-token-plain.mk" line 195: Malformed conditional (left == right) | 53 | make: "cond-token-plain.mk" line 195: Malformed conditional (left == right) | |
54 | CondParser_Eval: ${0:?:} || left == right | 54 | CondParser_Eval: ${0:?:} || left == right | |
55 | CondParser_Eval: 0 | 55 | CondParser_Eval: 0 | |
56 | make: "cond-token-plain.mk" line 201: Malformed conditional (${0:?:} || left == right) | 56 | make: "cond-token-plain.mk" line 201: Malformed conditional (${0:?:} || left == right) | |
57 | CondParser_Eval: left == right || ${0:?:} | 57 | CondParser_Eval: left == right || ${0:?:} | |
58 | make: "cond-token-plain.mk" line 206: Malformed conditional (left == right || ${0:?:}) | 58 | make: "cond-token-plain.mk" line 206: Malformed conditional (left == right || ${0:?:}) | |
59 | make: "cond-token-plain.mk" line 225: Malformed conditional (VAR.${IF_COUNT::+=1} != "") | 59 | make: "cond-token-plain.mk" line 225: Malformed conditional (VAR.${IF_COUNT::+=1} != "") | |
60 | make: Fatal errors encountered -- cannot continue | 60 | make: Fatal errors encountered -- cannot continue | |
61 | make: stopped in unit-tests | 61 | make: stopped in unit-tests | |
62 | exit status 1 | 62 | exit status 1 |
--- src/usr.bin/make/unit-tests/varmod-match-escape.exp 2021/04/10 22:09:54 1.15
+++ src/usr.bin/make/unit-tests/varmod-match-escape.exp 2022/03/03 19:36:35 1.16
@@ -1,39 +1,39 @@ | @@ -1,39 +1,39 @@ | |||
1 | Global: SPECIALS = \: : \\ * \* | 1 | Global: SPECIALS = \: : \\ * \* | |
2 | CondParser_Eval: ${SPECIALS:M${:U}\:} != ${SPECIALS:M\:${:U}} | 2 | CondParser_Eval: ${SPECIALS:M${:U}\:} != ${SPECIALS:M\:${:U}} | |
3 | Var_Parse: ${SPECIALS:M${:U}\:} != ${SPECIALS:M\:${:U}} (eval-defined) | 3 | Var_Parse: ${SPECIALS:M${:U}\:} != ${SPECIALS:M\:${:U}} (eval-defined) | |
4 | Evaluating modifier ${SPECIALS:M...} on value "\: : \\ * \*" | 4 | Evaluating modifier ${SPECIALS:M...} on value "\: : \\ * \*" | |
5 | Pattern for ':M' is "\:" | 5 | Pattern for ':M' is "\:" | |
6 | ModifyWords: split "\: : \\ * \*" into 5 words | 6 | ModifyWords: split "\: : \\ * \*" into 5 words | |
7 | Result of ${SPECIALS:M${:U}\:} is ":" | 7 | Result of ${SPECIALS:M${:U}\:} is ":" | |
8 | Var_Parse: ${SPECIALS:M\:${:U}} (eval-defined) | 8 | Var_Parse: ${SPECIALS:M\:${:U}} (eval-defined) | |
9 | Evaluating modifier ${SPECIALS:M...} on value "\: : \\ * \*" | 9 | Evaluating modifier ${SPECIALS:M...} on value "\: : \\ * \*" | |
10 | Pattern for ':M' is ":" | 10 | Pattern for ':M' is ":" | |
11 | ModifyWords: split "\: : \\ * \*" into 5 words | 11 | ModifyWords: split "\: : \\ * \*" into 5 words | |
12 | Result of ${SPECIALS:M\:${:U}} is ":" | 12 | Result of ${SPECIALS:M\:${:U}} is ":" | |
13 | lhs = ":", rhs = ":", op = != | 13 | Comparing ":" != ":" | |
14 | Global: VALUES = : :: :\: | 14 | Global: VALUES = : :: :\: | |
15 | CondParser_Eval: ${VALUES:M\:${:U\:}} != ${VALUES:M${:U\:}\:} | 15 | CondParser_Eval: ${VALUES:M\:${:U\:}} != ${VALUES:M${:U\:}\:} | |
16 | Var_Parse: ${VALUES:M\:${:U\:}} != ${VALUES:M${:U\:}\:} (eval-defined) | 16 | Var_Parse: ${VALUES:M\:${:U\:}} != ${VALUES:M${:U\:}\:} (eval-defined) | |
17 | Evaluating modifier ${VALUES:M...} on value ": :: :\:" | 17 | Evaluating modifier ${VALUES:M...} on value ": :: :\:" | |
18 | Var_Parse: ${:U:} (eval-defined) | 18 | Var_Parse: ${:U:} (eval-defined) | |
19 | Evaluating modifier ${:U} on value "" (eval-defined, undefined) | 19 | Evaluating modifier ${:U} on value "" (eval-defined, undefined) | |
20 | Result of ${:U} is "" (eval-defined, defined) | 20 | Result of ${:U} is "" (eval-defined, defined) | |
21 | Pattern for ':M' is ":" | 21 | Pattern for ':M' is ":" | |
22 | ModifyWords: split ": :: :\:" into 3 words | 22 | ModifyWords: split ": :: :\:" into 3 words | |
23 | Result of ${VALUES:M\:${:U\:}} is ":" | 23 | Result of ${VALUES:M\:${:U\:}} is ":" | |
24 | Var_Parse: ${VALUES:M${:U\:}\:} (eval-defined) | 24 | Var_Parse: ${VALUES:M${:U\:}\:} (eval-defined) | |
25 | Evaluating modifier ${VALUES:M...} on value ": :: :\:" | 25 | Evaluating modifier ${VALUES:M...} on value ": :: :\:" | |
26 | Var_Parse: ${:U\:}\: (eval-defined) | 26 | Var_Parse: ${:U\:}\: (eval-defined) | |
27 | Evaluating modifier ${:U...} on value "" (eval-defined, undefined) | 27 | Evaluating modifier ${:U...} on value "" (eval-defined, undefined) | |
28 | Result of ${:U\:} is ":" (eval-defined, defined) | 28 | Result of ${:U\:} is ":" (eval-defined, defined) | |
29 | Pattern for ':M' is ":\:" | 29 | Pattern for ':M' is ":\:" | |
30 | ModifyWords: split ": :: :\:" into 3 words | 30 | ModifyWords: split ": :: :\:" into 3 words | |
31 | Result of ${VALUES:M${:U\:}\:} is "::" | 31 | Result of ${VALUES:M${:U\:}\:} is "::" | |
32 | lhs = ":", rhs = "::", op = != | 32 | Comparing ":" != "::" | |
33 | make: "varmod-match-escape.mk" line 42: warning: XXX: Oops | 33 | make: "varmod-match-escape.mk" line 42: warning: XXX: Oops | |
34 | Global: .MAKEFLAGS = -r -k -d cv -d | 34 | Global: .MAKEFLAGS = -r -k -d cv -d | |
35 | Global: .MAKEFLAGS = -r -k -d cv -d 0 | 35 | Global: .MAKEFLAGS = -r -k -d cv -d 0 | |
36 | make: "varmod-match-escape.mk" line 67: Dollar followed by nothing | 36 | make: "varmod-match-escape.mk" line 67: Dollar followed by nothing | |
37 | make: Fatal errors encountered -- cannot continue | 37 | make: Fatal errors encountered -- cannot continue | |
38 | make: stopped in unit-tests | 38 | make: stopped in unit-tests | |
39 | exit status 1 | 39 | exit status 1 |
--- src/usr.bin/make/unit-tests/deptgt-makeflags.exp 2021/04/05 13:35:41 1.5
+++ src/usr.bin/make/unit-tests/deptgt-makeflags.exp 2022/03/03 19:36:35 1.6
@@ -1,10 +1,10 @@ | @@ -1,10 +1,10 @@ | |||
1 | Global:delete DOLLAR (not found) | 1 | Global:delete DOLLAR (not found) | |
2 | Command: DOLLAR = $$$$ | 2 | Command: DOLLAR = $$$$ | |
3 | Global: .MAKEOVERRIDES = VAR DOLLAR | 3 | Global: .MAKEOVERRIDES = VAR DOLLAR | |
4 | CondParser_Eval: ${DOLLAR} != "\$\$" | 4 | CondParser_Eval: ${DOLLAR} != "\$\$" | |
5 | Var_Parse: ${DOLLAR} != "\$\$" (eval-defined) | 5 | Var_Parse: ${DOLLAR} != "\$\$" (eval-defined) | |
6 | lhs = "$$", rhs = "$$", op = != | 6 | Comparing "$$" != "$$" | |
7 | Global: .MAKEFLAGS = -r -k -D VAR -D VAR -d cv -d | 7 | Global: .MAKEFLAGS = -r -k -D VAR -D VAR -d cv -d | |
8 | Global: .MAKEFLAGS = -r -k -D VAR -D VAR -d cv -d 0 | 8 | Global: .MAKEFLAGS = -r -k -D VAR -D VAR -d cv -d 0 | |
9 | make: Unterminated quoted string [make VAR=initial UNBALANCED='] | 9 | make: Unterminated quoted string [make VAR=initial UNBALANCED='] | |
10 | exit status 0 | 10 | exit status 0 |
--- src/usr.bin/make/unit-tests/opt-debug-file.exp 2022/01/11 19:47:34 1.5
+++ src/usr.bin/make/unit-tests/opt-debug-file.exp 2022/03/03 19:36:35 1.6
@@ -1,12 +1,12 @@ | @@ -1,12 +1,12 @@ | |||
1 | make: "opt-debug-file.mk" line 43: This goes to stderr only, once. | 1 | make: "opt-debug-file.mk" line 43: This goes to stderr only, once. | |
2 | make: "opt-debug-file.mk" line 45: This goes to stderr only, once. | 2 | make: "opt-debug-file.mk" line 45: This goes to stderr only, once. | |
3 | make: "opt-debug-file.mk" line 47: This goes to stderr, and in addition to the debug log. | 3 | make: "opt-debug-file.mk" line 47: This goes to stderr, and in addition to the debug log. | |
4 | CondParser_Eval: ${:!cat opt-debug-file.debuglog!:Maddition:[#]} != 1 | 4 | CondParser_Eval: ${:!cat opt-debug-file.debuglog!:Maddition:[#]} != 1 | |
5 | lhs = 1.000000, rhs = 1.000000, op = != | 5 | Comparing 1.000000 != 1.000000 | |
6 | make: Missing delimiter for modifier ':S' | 6 | make: Missing delimiter for modifier ':S' | |
7 | make: Missing delimiter for modifier ':S' | 7 | make: Missing delimiter for modifier ':S' | |
8 | make: Missing delimiter for modifier ':S' | 8 | make: Missing delimiter for modifier ':S' | |
9 | CondParser_Eval: ${:!cat opt-debug-file.debuglog!:Mdelimiter:[#]} != 1 | 9 | CondParser_Eval: ${:!cat opt-debug-file.debuglog!:Mdelimiter:[#]} != 1 | |
10 | lhs = 1.000000, rhs = 1.000000, op = != | 10 | Comparing 1.000000 != 1.000000 | |
11 | Cannot open debug file "/nonexistent-6f21c672-a22d-4ef7/opt-debug-file.debuglog" | 11 | Cannot open debug file "/nonexistent-6f21c672-a22d-4ef7/opt-debug-file.debuglog" | |
12 | exit status 2 | 12 | exit status 2 |
--- src/usr.bin/make/unit-tests/directive-export-impl.exp 2022/01/10 20:32:29 1.16
+++ src/usr.bin/make/unit-tests/directive-export-impl.exp 2022/03/03 19:36:35 1.17
@@ -13,46 +13,46 @@ ParseDependency(: ) | @@ -13,46 +13,46 @@ ParseDependency(: ) | |||
13 | CondParser_Eval: ${:!echo "\$UT_VAR"!} != "<>" | 13 | CondParser_Eval: ${:!echo "\$UT_VAR"!} != "<>" | |
14 | Var_Parse: ${:!echo "\$UT_VAR"!} != "<>" (eval-defined) | 14 | Var_Parse: ${:!echo "\$UT_VAR"!} != "<>" (eval-defined) | |
15 | Evaluating modifier ${:!...} on value "" (eval-defined, undefined) | 15 | Evaluating modifier ${:!...} on value "" (eval-defined, undefined) | |
16 | Modifier part: "echo "$UT_VAR"" | 16 | Modifier part: "echo "$UT_VAR"" | |
17 | Capturing the output of command "echo "$UT_VAR"" | 17 | Capturing the output of command "echo "$UT_VAR"" | |
18 | Var_Parse: ${.MAKE.EXPORTED:O:u} (eval) | 18 | Var_Parse: ${.MAKE.EXPORTED:O:u} (eval) | |
19 | Evaluating modifier ${.MAKE.EXPORTED:O} on value "UT_VAR" | 19 | Evaluating modifier ${.MAKE.EXPORTED:O} on value "UT_VAR" | |
20 | Result of ${.MAKE.EXPORTED:O} is "UT_VAR" | 20 | Result of ${.MAKE.EXPORTED:O} is "UT_VAR" | |
21 | Evaluating modifier ${.MAKE.EXPORTED:u} on value "UT_VAR" | 21 | Evaluating modifier ${.MAKE.EXPORTED:u} on value "UT_VAR" | |
22 | Result of ${.MAKE.EXPORTED:u} is "UT_VAR" | 22 | Result of ${.MAKE.EXPORTED:u} is "UT_VAR" | |
23 | Var_Parse: ${UT_VAR} (eval) | 23 | Var_Parse: ${UT_VAR} (eval) | |
24 | Var_Parse: ${REF}> (eval) | 24 | Var_Parse: ${REF}> (eval) | |
25 | Result of ${:!echo "\$UT_VAR"!} is "<>" (eval-defined, defined) | 25 | Result of ${:!echo "\$UT_VAR"!} is "<>" (eval-defined, defined) | |
26 | lhs = "<>", rhs = "<>", op = != | 26 | Comparing "<>" != "<>" | |
27 | Parsing line 50: : ${UT_VAR:N*} | 27 | Parsing line 50: : ${UT_VAR:N*} | |
28 | Var_Parse: ${UT_VAR:N*} (eval-defined) | 28 | Var_Parse: ${UT_VAR:N*} (eval-defined) | |
29 | Var_Parse: ${REF}> (eval-defined) | 29 | Var_Parse: ${REF}> (eval-defined) | |
30 | Evaluating modifier ${UT_VAR:N...} on value "<>" | 30 | Evaluating modifier ${UT_VAR:N...} on value "<>" | |
31 | Pattern for ':N' is "*" | 31 | Pattern for ':N' is "*" | |
32 | ModifyWords: split "<>" into 1 word | 32 | ModifyWords: split "<>" into 1 word | |
33 | Result of ${UT_VAR:N*} is "" | 33 | Result of ${UT_VAR:N*} is "" | |
34 | ParseDependency(: ) | 34 | ParseDependency(: ) | |
35 | Parsing line 54: REF= defined | 35 | Parsing line 54: REF= defined | |
36 | Global: REF = defined | 36 | Global: REF = defined | |
37 | CondParser_Eval: ${:!echo "\$UT_VAR"!} != "<defined>" | 37 | CondParser_Eval: ${:!echo "\$UT_VAR"!} != "<defined>" | |
38 | Var_Parse: ${:!echo "\$UT_VAR"!} != "<defined>" (eval-defined) | 38 | Var_Parse: ${:!echo "\$UT_VAR"!} != "<defined>" (eval-defined) | |
39 | Evaluating modifier ${:!...} on value "" (eval-defined, undefined) | 39 | Evaluating modifier ${:!...} on value "" (eval-defined, undefined) | |
40 | Modifier part: "echo "$UT_VAR"" | 40 | Modifier part: "echo "$UT_VAR"" | |
41 | Capturing the output of command "echo "$UT_VAR"" | 41 | Capturing the output of command "echo "$UT_VAR"" | |
42 | Var_Parse: ${.MAKE.EXPORTED:O:u} (eval) | 42 | Var_Parse: ${.MAKE.EXPORTED:O:u} (eval) | |
43 | Evaluating modifier ${.MAKE.EXPORTED:O} on value "UT_VAR" | 43 | Evaluating modifier ${.MAKE.EXPORTED:O} on value "UT_VAR" | |
44 | Result of ${.MAKE.EXPORTED:O} is "UT_VAR" | 44 | Result of ${.MAKE.EXPORTED:O} is "UT_VAR" | |
45 | Evaluating modifier ${.MAKE.EXPORTED:u} on value "UT_VAR" | 45 | Evaluating modifier ${.MAKE.EXPORTED:u} on value "UT_VAR" | |
46 | Result of ${.MAKE.EXPORTED:u} is "UT_VAR" | 46 | Result of ${.MAKE.EXPORTED:u} is "UT_VAR" | |
47 | Var_Parse: ${UT_VAR} (eval) | 47 | Var_Parse: ${UT_VAR} (eval) | |
48 | Var_Parse: ${REF}> (eval) | 48 | Var_Parse: ${REF}> (eval) | |
49 | Result of ${:!echo "\$UT_VAR"!} is "<defined>" (eval-defined, defined) | 49 | Result of ${:!echo "\$UT_VAR"!} is "<defined>" (eval-defined, defined) | |
50 | lhs = "<defined>", rhs = "<defined>", op = != | 50 | Comparing "<defined>" != "<defined>" | |
51 | Parsing line 62: all: | 51 | Parsing line 62: all: | |
52 | ParseDependency(all:) | 52 | ParseDependency(all:) | |
53 | Global: .ALLTARGETS = all | 53 | Global: .ALLTARGETS = all | |
54 | Parsing line 63: .MAKEFLAGS: -d0 | 54 | Parsing line 63: .MAKEFLAGS: -d0 | |
55 | ParseDependency(.MAKEFLAGS: -d0) | 55 | ParseDependency(.MAKEFLAGS: -d0) | |
56 | Global: .MAKEFLAGS = -r -k -d cpv -d | 56 | Global: .MAKEFLAGS = -r -k -d cpv -d | |
57 | Global: .MAKEFLAGS = -r -k -d cpv -d 0 | 57 | Global: .MAKEFLAGS = -r -k -d cpv -d 0 | |
58 | exit status 0 | 58 | exit status 0 |
--- src/usr.bin/make/unit-tests/directive-include.exp 2021/12/14 01:00:04 1.8
+++ src/usr.bin/make/unit-tests/directive-include.exp 2022/03/03 19:36:35 1.9
@@ -1,13 +1,13 @@ | @@ -1,13 +1,13 @@ | |||
1 | CondParser_Eval: ${.MAKE.MAKEFILES:T} != "${.PARSEFILE} null" | 1 | CondParser_Eval: ${.MAKE.MAKEFILES:T} != "${.PARSEFILE} null" | |
2 | lhs = "directive-include.mk null", rhs = "directive-include.mk null", op = != | 2 | Comparing "directive-include.mk null" != "directive-include.mk null" | |
3 | CondParser_Eval: ${.MAKE.MAKEFILES:T} != "${.PARSEFILE} null" | 3 | CondParser_Eval: ${.MAKE.MAKEFILES:T} != "${.PARSEFILE} null" | |
4 | lhs = "directive-include.mk null", rhs = "directive-include.mk null", op = != | 4 | Comparing "directive-include.mk null" != "directive-include.mk null" | |
5 | make: "directive-include.mk" line 25: Could not find nonexistent.mk | 5 | make: "directive-include.mk" line 25: Could not find nonexistent.mk | |
6 | make: "directive-include.mk" line 47: Could not find " | 6 | make: "directive-include.mk" line 47: Could not find " | |
7 | make: "directive-include.mk" line 52: Unknown modifier "Z" | 7 | make: "directive-include.mk" line 52: Unknown modifier "Z" | |
8 | make: "directive-include.mk" line 52: Could not find nonexistent.mk | 8 | make: "directive-include.mk" line 52: Could not find nonexistent.mk | |
9 | make: "directive-include.mk" line 57: Cannot open /nonexistent | 9 | make: "directive-include.mk" line 57: Cannot open /nonexistent | |
10 | make: "directive-include.mk" line 62: Invalid line type | 10 | make: "directive-include.mk" line 62: Invalid line type | |
11 | make: Fatal errors encountered -- cannot continue | 11 | make: Fatal errors encountered -- cannot continue | |
12 | make: stopped in unit-tests | 12 | make: stopped in unit-tests | |
13 | exit status 1 | 13 | exit status 1 |
--- src/usr.bin/make/unit-tests/opt-debug-cond.exp 2022/01/23 16:09:38 1.2
+++ src/usr.bin/make/unit-tests/opt-debug-cond.exp 2022/03/03 19:36:35 1.3
@@ -1,6 +1,6 @@ | @@ -1,6 +1,6 @@ | |||
1 | CondParser_Eval: ${:U12345} > ${:U55555} | 1 | CondParser_Eval: ${:U12345} > ${:U55555} | |
2 | lhs = 12345.000000, rhs = 55555.000000, op = > | 2 | Comparing 12345.000000 > 55555.000000 | |
3 | CondParser_Eval: "string" != "string" | 3 | CondParser_Eval: "string" != "string" | |
4 | lhs = "string", rhs = "string", op = != | 4 | Comparing "string" != "string" | |
5 | CondParser_Eval: "nonempty" | 5 | CondParser_Eval: "nonempty" | |
6 | exit status 0 | 6 | exit status 0 |
--- src/usr.bin/make/unit-tests/varmod-ifelse.exp 2021/06/11 13:01:28 1.11
+++ src/usr.bin/make/unit-tests/varmod-ifelse.exp 2022/03/03 19:36:35 1.12
@@ -1,30 +1,30 @@ | @@ -1,30 +1,30 @@ | |||
1 | make: Bad conditional expression 'variable expression == "literal"' in 'variable expression == "literal"?bad:bad' | 1 | make: Bad conditional expression 'variable expression == "literal"' in 'variable expression == "literal"?bad:bad' | |
2 | make: "varmod-ifelse.mk" line 27: Malformed conditional (${${:Uvariable expression} == "literal":?bad:bad}) | 2 | make: "varmod-ifelse.mk" line 27: Malformed conditional (${${:Uvariable expression} == "literal":?bad:bad}) | |
3 | make: Bad conditional expression ' == ""' in ' == ""?bad-assign:bad-assign' | 3 | make: Bad conditional expression ' == ""' in ' == ""?bad-assign:bad-assign' | |
4 | make: Bad conditional expression ' == ""' in ' == ""?bad-cond:bad-cond' | 4 | make: Bad conditional expression ' == ""' in ' == ""?bad-cond:bad-cond' | |
5 | make: "varmod-ifelse.mk" line 44: Malformed conditional (${${UNDEF} == "":?bad-cond:bad-cond}) | 5 | make: "varmod-ifelse.mk" line 44: Malformed conditional (${${UNDEF} == "":?bad-cond:bad-cond}) | |
6 | make: Bad conditional expression '1 == == 2' in '1 == == 2?yes:no' | 6 | make: Bad conditional expression '1 == == 2' in '1 == == 2?yes:no' | |
7 | make: "varmod-ifelse.mk" line 66: Malformed conditional (${1 == == 2:?yes:no} != "") | 7 | make: "varmod-ifelse.mk" line 66: Malformed conditional (${1 == == 2:?yes:no} != "") | |
8 | CondParser_Eval: "${1 == == 2:?yes:no}" != "" | 8 | CondParser_Eval: "${1 == == 2:?yes:no}" != "" | |
9 | CondParser_Eval: 1 == == 2 | 9 | CondParser_Eval: 1 == == 2 | |
10 | lhs = 1.000000, rhs = 0.000000, op = == | 10 | Comparing 1.000000 == 0.000000 | |
11 | make: Bad conditional expression '1 == == 2' in '1 == == 2?yes:no' | 11 | make: Bad conditional expression '1 == == 2' in '1 == == 2?yes:no' | |
12 | lhs = "", rhs = "", op = != | 12 | Comparing "" != "" | |
13 | make: "varmod-ifelse.mk" line 92: warning: Oops, the parse error should have been propagated. | 13 | make: "varmod-ifelse.mk" line 92: warning: Oops, the parse error should have been propagated. | |
14 | CondParser_Eval: ${ ${:U\$}{VAR} == value :?ok:bad} != "ok" | 14 | CondParser_Eval: ${ ${:U\$}{VAR} == value :?ok:bad} != "ok" | |
15 | CondParser_Eval: ${VAR} == value | 15 | CondParser_Eval: ${VAR} == value | |
16 | lhs = "value", rhs = "value", op = == | 16 | Comparing "value" == "value" | |
17 | lhs = "ok", rhs = "ok", op = != | 17 | Comparing "ok" != "ok" | |
18 | make: "varmod-ifelse.mk" line 153: no. | 18 | make: "varmod-ifelse.mk" line 153: no. | |
19 | make: "varmod-ifelse.mk" line 154: String comparison operator must be either == or != | 19 | make: "varmod-ifelse.mk" line 154: String comparison operator must be either == or != | |
20 | make: Bad conditional expression 'string == "literal" || no >= 10' in 'string == "literal" || no >= 10?yes:no' | 20 | make: Bad conditional expression 'string == "literal" || no >= 10' in 'string == "literal" || no >= 10?yes:no' | |
21 | make: "varmod-ifelse.mk" line 154: . | 21 | make: "varmod-ifelse.mk" line 154: . | |
22 | make: Bad conditional expression 'string == "literal" && >= 10' in 'string == "literal" && >= 10?yes:no' | 22 | make: Bad conditional expression 'string == "literal" && >= 10' in 'string == "literal" && >= 10?yes:no' | |
23 | make: "varmod-ifelse.mk" line 159: . | 23 | make: "varmod-ifelse.mk" line 159: . | |
24 | make: Bad conditional expression 'string == "literal" || >= 10' in 'string == "literal" || >= 10?yes:no' | 24 | make: Bad conditional expression 'string == "literal" || >= 10' in 'string == "literal" || >= 10?yes:no' | |
25 | make: "varmod-ifelse.mk" line 160: . | 25 | make: "varmod-ifelse.mk" line 160: . | |
26 | make: "varmod-ifelse.mk" line 167: true | 26 | make: "varmod-ifelse.mk" line 167: true | |
27 | make: "varmod-ifelse.mk" line 169: false | 27 | make: "varmod-ifelse.mk" line 169: false | |
28 | make: Bad conditional expression ' ' in ' ?true:false' | 28 | make: Bad conditional expression ' ' in ' ?true:false' | |
29 | make: "varmod-ifelse.mk" line 171: | 29 | make: "varmod-ifelse.mk" line 171: | |
30 | make: Fatal errors encountered -- cannot continue | 30 | make: Fatal errors encountered -- cannot continue |
--- src/usr.bin/make/unit-tests/varmod-loop.exp 2021/12/28 15:49:00 1.14
+++ src/usr.bin/make/unit-tests/varmod-loop.exp 2022/03/03 19:36:35 1.15
@@ -1,16 +1,16 @@ | @@ -1,16 +1,16 @@ | |||
1 | Parsing line 78: USE_8_DOLLARS= ${:U1:@var@${8_DOLLARS}@} ${8_DOLLARS} $$$$$$$$ | 1 | Parsing line 78: USE_8_DOLLARS= ${:U1:@var@${8_DOLLARS}@} ${8_DOLLARS} $$$$$$$$ | |
2 | CondParser_Eval: ${USE_8_DOLLARS} != "\$\$\$\$ \$\$\$\$ \$\$\$\$" | 2 | CondParser_Eval: ${USE_8_DOLLARS} != "\$\$\$\$ \$\$\$\$ \$\$\$\$" | |
3 | lhs = "$$$$ $$$$ $$$$", rhs = "$$$$ $$$$ $$$$", op = != | 3 | Comparing "$$$$ $$$$ $$$$" != "$$$$ $$$$ $$$$" | |
4 | Parsing line 83: SUBST_CONTAINING_LOOP:= ${USE_8_DOLLARS} | 4 | Parsing line 83: SUBST_CONTAINING_LOOP:= ${USE_8_DOLLARS} | |
5 | CondParser_Eval: ${SUBST_CONTAINING_LOOP} != "\$\$ \$\$\$\$ \$\$\$\$" | 5 | CondParser_Eval: ${SUBST_CONTAINING_LOOP} != "\$\$ \$\$\$\$ \$\$\$\$" | |
6 | lhs = "$$ $$$$ $$$$", rhs = "$$ $$$$ $$$$", op = != | 6 | Comparing "$$ $$$$ $$$$" != "$$ $$$$ $$$$" | |
7 | Parsing line 108: .MAKEFLAGS: -d0 | 7 | Parsing line 108: .MAKEFLAGS: -d0 | |
8 | ParseDependency(.MAKEFLAGS: -d0) | 8 | ParseDependency(.MAKEFLAGS: -d0) | |
9 | :varname-overwriting-target: :x1y x2y x3y: :: | 9 | :varname-overwriting-target: :x1y x2y x3y: :: | |
10 | mod-loop-dollar:1: | 10 | mod-loop-dollar:1: | |
11 | mod-loop-dollar:${word}$: | 11 | mod-loop-dollar:${word}$: | |
12 | mod-loop-dollar:$3$: | 12 | mod-loop-dollar:$3$: | |
13 | mod-loop-dollar:$${word}$$: | 13 | mod-loop-dollar:$${word}$$: | |
14 | mod-loop-dollar:$$5$$: | 14 | mod-loop-dollar:$$5$$: | |
15 | mod-loop-dollar:$$${word}$$$: | 15 | mod-loop-dollar:$$${word}$$$: | |
16 | exit status 0 | 16 | exit status 0 |
--- src/usr.bin/make/unit-tests/varmod-match.exp 2020/09/12 22:35:43 1.3
+++ src/usr.bin/make/unit-tests/varmod-match.exp 2022/03/03 19:36:35 1.4
@@ -1,12 +1,12 @@ | @@ -1,12 +1,12 @@ | |||
1 | CondParser_Eval: ${NUMBERS:M[A-Z]*} != "One Two Three Four" | 1 | CondParser_Eval: ${NUMBERS:M[A-Z]*} != "One Two Three Four" | |
2 | lhs = "One Two Three Four", rhs = "One Two Three Four", op = != | 2 | Comparing "One Two Three Four" != "One Two Three Four" | |
3 | CondParser_Eval: ${NUMBERS:M[^A-Z]*} != "five six seven" | 3 | CondParser_Eval: ${NUMBERS:M[^A-Z]*} != "five six seven" | |
4 | lhs = "five six seven", rhs = "five six seven", op = != | 4 | Comparing "five six seven" != "five six seven" | |
5 | CondParser_Eval: ${NUMBERS:M[^s]*[ex]} != "One Three five" | 5 | CondParser_Eval: ${NUMBERS:M[^s]*[ex]} != "One Three five" | |
6 | lhs = "One Three five", rhs = "One Three five", op = != | 6 | Comparing "One Three five" != "One Three five" | |
7 | CondParser_Eval: ${:U****************:M****************b} | 7 | CondParser_Eval: ${:U****************:M****************b} | |
8 | CondParser_Eval: ${:Ua \$ sign:M*$$*} != "\$" | 8 | CondParser_Eval: ${:Ua \$ sign:M*$$*} != "\$" | |
9 | lhs = "$", rhs = "$", op = != | 9 | Comparing "$" != "$" | |
10 | CondParser_Eval: ${:Ua \$ sign any-asterisk:M*\$*} != "any-asterisk" | 10 | CondParser_Eval: ${:Ua \$ sign any-asterisk:M*\$*} != "any-asterisk" | |
11 | lhs = "any-asterisk", rhs = "any-asterisk", op = != | 11 | Comparing "any-asterisk" != "any-asterisk" | |
12 | exit status 0 | 12 | exit status 0 |
--- src/usr.bin/make/unit-tests/varname-dot-shell.exp 2021/12/28 15:49:00 1.13
+++ src/usr.bin/make/unit-tests/varname-dot-shell.exp 2022/03/03 19:36:35 1.14
@@ -1,32 +1,32 @@ | @@ -1,32 +1,32 @@ | |||
1 | Parsing line 10: ORIG_SHELL:= ${.SHELL} | 1 | Parsing line 10: ORIG_SHELL:= ${.SHELL} | |
2 | Global: ORIG_SHELL = | 2 | Global: ORIG_SHELL = | |
3 | Var_Parse: ${.SHELL} (eval-keep-dollar-and-undefined) | 3 | Var_Parse: ${.SHELL} (eval-keep-dollar-and-undefined) | |
4 | Global:delete .SHELL (not found) | 4 | Global:delete .SHELL (not found) | |
5 | Command: .SHELL = (details omitted) | 5 | Command: .SHELL = (details omitted) | |
6 | Global: ORIG_SHELL = (details omitted) | 6 | Global: ORIG_SHELL = (details omitted) | |
7 | Parsing line 12: .SHELL= overwritten | 7 | Parsing line 12: .SHELL= overwritten | |
8 | Global: .SHELL = overwritten | 8 | Global: .SHELL = overwritten | |
9 | CondParser_Eval: ${.SHELL} != ${ORIG_SHELL} | 9 | CondParser_Eval: ${.SHELL} != ${ORIG_SHELL} | |
10 | Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined) | 10 | Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined) | |
11 | Var_Parse: ${ORIG_SHELL} (eval-defined) | 11 | Var_Parse: ${ORIG_SHELL} (eval-defined) | |
12 | lhs = "(details omitted)", rhs = "(details omitted)", op = != | 12 | Comparing "(details omitted)" != "(details omitted)" | |
13 | Parsing line 19: .MAKEFLAGS: .SHELL+=appended | 13 | Parsing line 19: .MAKEFLAGS: .SHELL+=appended | |
14 | ParseDependency(.MAKEFLAGS: .SHELL+=appended) | 14 | ParseDependency(.MAKEFLAGS: .SHELL+=appended) | |
15 | Ignoring append to .SHELL since it is read-only | 15 | Ignoring append to .SHELL since it is read-only | |
16 | CondParser_Eval: ${.SHELL} != ${ORIG_SHELL} | 16 | CondParser_Eval: ${.SHELL} != ${ORIG_SHELL} | |
17 | Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined) | 17 | Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined) | |
18 | Var_Parse: ${ORIG_SHELL} (eval-defined) | 18 | Var_Parse: ${ORIG_SHELL} (eval-defined) | |
19 | lhs = "(details omitted)", rhs = "(details omitted)", op = != | 19 | Comparing "(details omitted)" != "(details omitted)" | |
20 | Parsing line 27: .undef .SHELL | 20 | Parsing line 27: .undef .SHELL | |
21 | Global:delete .SHELL | 21 | Global:delete .SHELL | |
22 | Parsing line 28: .SHELL= newly overwritten | 22 | Parsing line 28: .SHELL= newly overwritten | |
23 | Global: .SHELL = newly overwritten | 23 | Global: .SHELL = newly overwritten | |
24 | CondParser_Eval: ${.SHELL} != ${ORIG_SHELL} | 24 | CondParser_Eval: ${.SHELL} != ${ORIG_SHELL} | |
25 | Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined) | 25 | Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined) | |
26 | Var_Parse: ${ORIG_SHELL} (eval-defined) | 26 | Var_Parse: ${ORIG_SHELL} (eval-defined) | |
27 | lhs = "(details omitted)", rhs = "(details omitted)", op = != | 27 | Comparing "(details omitted)" != "(details omitted)" | |
28 | Parsing line 33: .MAKEFLAGS: -d0 | 28 | Parsing line 33: .MAKEFLAGS: -d0 | |
29 | ParseDependency(.MAKEFLAGS: -d0) | 29 | ParseDependency(.MAKEFLAGS: -d0) | |
30 | Global: .MAKEFLAGS = -r -k -d cpv -d | 30 | Global: .MAKEFLAGS = -r -k -d cpv -d | |
31 | Global: .MAKEFLAGS = -r -k -d cpv -d 0 | 31 | Global: .MAKEFLAGS = -r -k -d cpv -d 0 | |
32 | exit status 0 | 32 | exit status 0 |