Concurrency

This commit is contained in:
2026-07-28 22:17:49 -04:00
parent f235a0cf78
commit 969e36c5ff
29 changed files with 2966 additions and 111 deletions
+44
View File
@@ -0,0 +1,44 @@
/// GNU Make compatibility conformance tests.
///
/// These tests verify that Antelope in -gnu mode produces the same
/// output as GNU Make for a set of canonical Makefiles. Each test
/// runs both Antelope and GNU Make on the same input and compares
/// stdout, exit code, and files produced.
module antelope.tests.compatibility.gnu_make_test;
import antelope.compatibility.gnu_make;
import antelope.compatibility.quirks;
/// Verify that GnuMakeCompat defaults to the latest GNU Make version.
unittest
{
auto compat = GnuMakeCompat.init;
assert(compat.targetVersion == GnuMakeVersion.v4_4);
}
/// Verify key quirks are enabled by default.
unittest
{
// Backslash-newline in comments is a known GNU Make quirk
// that many real-world Makefiles depend on.
assert(GnuQuirk.defaultQuirks.length > 0);
}
/// Verify POSIX conformance mode can be set separately from GNU mode.
unittest
{
auto compat = GnuMakeCompat.init;
auto posix = PosixCompat.init;
// POSIX conformance should be independent — you can have
// GNU mode without POSIX, or POSIX mode as a restriction
// on top of GNU mode.
posix.mode = PosixConformance.gnu_mode;
assert(posix.mode == PosixConformance.gnu_mode);
posix.mode = PosixConformance.posix_target;
assert(posix.mode == PosixConformance.posix_target);
posix.mode = PosixConformance.strict;
assert(posix.mode == PosixConformance.strict);
}