#                                                                    -*-perl-*-

$description = "Test BSD-style shell assignments (VAR != VAL) for variables.";

$details = "";

# TEST 0: Basic shell assignment (!=).

run_make_test('
.POSIX:

demo1!=printf \'  1   2 3\n4\n\n5 \n \n 6\n\n\n\n\'
demo2 != printf \'7 8\n \'
demo3 != printf \'$$(demo2)\'
demo4 != printf \' 2 3 \n\'
demo5 != printf \' 2 3 \n\n\'
all: ; @echo "<$(demo1)> <$(demo2)> <$(demo3)> <$(demo4)> <${demo5}>"
',
              '', "<  1   2 3 4  5     6   > <7 8  > <7 8  > < 2 3 > < 2 3  >\n");

# TEST 1: Handle '#' the same way as BSD make
$hashOctal = "\\043";
if ($osname eq 'os390') {
  $hashOctal = "\\173";
}

run_make_test('
foo1!=echo bar#baz
hash != printf \'' . $hashOctal . '\'
foo2!= echo "bar$(hash)baz"

all: ; @echo "<$(foo1)> <$(hash)> <$(foo2)>"
',
              '', "<bar> <#> <bar#baz>\n");

# TEST 2: shell assignment variables (from !=) should be recursive.
# Note that variables are re-evaluated later, so the shell can output
# a value like $(XYZZY) as part of !=.  The $(XYZZY) will be EVALUATED
# when the value containing it is evaluated.  On the negative side, this
# means if you don't want this, you need to escape dollar signs as $$.
# On the positive side, it means that shell programs can output macros
# that are then evaluated as they are traditionally evaluated.. and that
# you can use traditional macro evaluation semantics to implement !=.

run_make_test('
XYZZY = fiddle-dee-dee
dollar = $$
VAR3 != printf \'%s\' \'$(dollar)(XYZZY)\'

all: ; @echo "<$(VAR3)>"
',
              '', "<fiddle-dee-dee>\n");


# TEST 3: Overrides invoke shell anyway; they just don't store the result
# in a way that is visible.

run_make_test('

override != echo abc > ,abc ; cat ,abc

all: ; @echo "<$(override)>" ; cat ,abc
',
              'override=xyz', "<xyz>\nabc\n");

unlink(',abc');


1;
