/+ dub.json: { "name": "win32_default_test" } +/ module win32_default.script; int main() { import std.stdio; version (Windows) { version (DigitalMars) enum disabled = null; else enum disabled = "DMD as the host compiler"; } else enum disabled = "Windows"; static if (disabled) { writeln("Test `win32_default` requires " ~ disabled); return 0; } else { import std.algorithm; import std.path; import std.process; const dir = __FILE_FULL_PATH__.dirName(); const file = buildPath(dir, "win32_default.d"); const dub = environment.get("DUB", buildPath(dirName(dir), "bin", "dub.exe")); const dmd = environment.get("DMD", "dmd"); int exitCode; void runTest(scope const string[] cmd) { const result = execute(cmd); if (result.status || result.output.canFind("Failed")) { writefln("\n> %-(%s %)", cmd); writeln("==========================================================="); writeln(result.output); writeln("==========================================================="); writeln("Last command failed with exit code ", result.status, '\n'); exitCode = 1; } } // Test without --arch runTest([ dub, "build", "--compiler", dmd, "--config", "MsCoff64", "--single", file, ]); // Test with different --arch const string[2][] tests = [ [ "x86", "Default" ], [ "x86_omf", "MsCoff" ], [ "x86_mscoff", "MsCoff" ], [ "x86_64", "MsCoff64" ], ]; foreach (string[2] test; tests) { const arch = test[0]; const config = test[1]; runTest([ dub, "build", "--compiler", dmd, "--arch", arch, "--config", config, "--single", file, ]); } return exitCode; } }