Files
2026-07-28 22:17:49 -04:00

38 lines
924 B
D

/// Unit tests for variable expansion in the evaluator.
///
/// Tests recursive expansion, simple vs recursive assignment semantics,
/// and circular reference detection.
module antelope.tests.evaluator.expansion_test;
import antelope.evaluator.expansion;
import antelope.shell.environment;
/// Test simple variable reference expansion.
unittest
{
auto env = Environment.init;
env.set("CC", "gcc");
env.set("CFLAGS", "-Wall -O2");
auto result = expand(env, "$(CC) $(CFLAGS)");
assert(result == "gcc -Wall -O2");
}
/// Test brace-delimited variable expansion.
unittest
{
auto env = Environment.init;
env.set("VAR", "value");
auto result = expand(env, "${VAR}");
assert(result == "value");
}
/// Test that undefined variables produce a warning but expand to empty.
unittest
{
auto env = Environment.init;
auto result = expand(env, "$(UNDEFINED)");
assert(result == "");
}