aboutsummaryrefslogtreecommitdiff
path: root/test/standalone.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-03-16 04:11:41 -0400
committerGitHub <noreply@github.com>2023-03-16 04:11:41 -0400
commitbd242ce1ce9ef6ffb1af4432d892bf582dcdba8a (patch)
tree34caaa3f320e8830a5f1f1c93a4b5d70c0d192a8 /test/standalone.zig
parenta2c6ecd6dc0bdbe2396be9b055852324f16d34c9 (diff)
parent7177b3994626114e57bf8df36ca84fd942bac282 (diff)
downloadzig-bd242ce1ce9ef6ffb1af4432d892bf582dcdba8a.tar.gz
zig-bd242ce1ce9ef6ffb1af4432d892bf582dcdba8a.zip
Merge pull request #14647 from ziglang/build-parallel
zig build: run steps in parallel
Diffstat (limited to 'test/standalone.zig')
-rw-r--r--test/standalone.zig315
1 files changed, 208 insertions, 107 deletions
diff --git a/test/standalone.zig b/test/standalone.zig
index 7aa4d81f97..4cf795a85f 100644
--- a/test/standalone.zig
+++ b/test/standalone.zig
@@ -1,117 +1,218 @@
-const std = @import("std");
-const builtin = @import("builtin");
-const tests = @import("tests.zig");
+pub const SimpleCase = struct {
+ src_path: []const u8,
+ link_libc: bool = false,
+ all_modes: bool = false,
+ target: std.zig.CrossTarget = .{},
+ is_test: bool = false,
+ is_exe: bool = true,
+ /// Run only on this OS.
+ os_filter: ?std.Target.Os.Tag = null,
+};
-pub fn addCases(cases: *tests.StandaloneContext) void {
- cases.add("test/standalone/hello_world/hello.zig");
- cases.addC("test/standalone/hello_world/hello_libc.zig");
+pub const BuildCase = struct {
+ build_root: []const u8,
+ import: type,
+};
- cases.addBuildFile("test/standalone/options/build.zig", .{
- .extra_argv = &.{
- "-Dbool_true",
- "-Dbool_false=false",
- "-Dint=1234",
- "-De=two",
- "-Dstring=hello",
+pub const simple_cases = [_]SimpleCase{
+ .{
+ .src_path = "test/standalone/hello_world/hello.zig",
+ .all_modes = true,
+ },
+ .{
+ .src_path = "test/standalone/hello_world/hello_libc.zig",
+ .link_libc = true,
+ .all_modes = true,
+ },
+ .{
+ .src_path = "test/standalone/cat/main.zig",
+ },
+ // https://github.com/ziglang/zig/issues/6025
+ //.{
+ // .src_path = "test/standalone/issue_9693/main.zig",
+ //},
+ .{
+ .src_path = "test/standalone/brace_expansion.zig",
+ .is_test = true,
+ },
+ .{
+ .src_path = "test/standalone/issue_7030.zig",
+ .target = .{
+ .cpu_arch = .wasm32,
+ .os_tag = .freestanding,
},
- });
-
- cases.add("test/standalone/cat/main.zig");
- if (builtin.zig_backend == .stage1) { // https://github.com/ziglang/zig/issues/6025
- cases.add("test/standalone/issue_9693/main.zig");
- }
- cases.add("test/standalone/issue_12471/main.zig");
- cases.add("test/standalone/guess_number/main.zig");
- cases.add("test/standalone/main_return_error/error_u8.zig");
- cases.add("test/standalone/main_return_error/error_u8_non_zero.zig");
- cases.add("test/standalone/noreturn_call/inline.zig");
- cases.add("test/standalone/noreturn_call/as_arg.zig");
- cases.addBuildFile("test/standalone/test_runner_path/build.zig", .{ .requires_stage2 = true });
- cases.addBuildFile("test/standalone/issue_13970/build.zig", .{});
- cases.addBuildFile("test/standalone/main_pkg_path/build.zig", .{});
- cases.addBuildFile("test/standalone/shared_library/build.zig", .{});
- cases.addBuildFile("test/standalone/mix_o_files/build.zig", .{});
- cases.addBuildFile("test/standalone/mix_c_files/build.zig", .{
- .build_modes = true,
- .cross_targets = true,
- });
- cases.addBuildFile("test/standalone/global_linkage/build.zig", .{});
- cases.addBuildFile("test/standalone/static_c_lib/build.zig", .{});
- cases.addBuildFile("test/standalone/issue_339/build.zig", .{});
- cases.addBuildFile("test/standalone/issue_8550/build.zig", .{});
- cases.addBuildFile("test/standalone/issue_794/build.zig", .{});
- cases.addBuildFile("test/standalone/issue_5825/build.zig", .{});
- cases.addBuildFile("test/standalone/pkg_import/build.zig", .{});
- cases.addBuildFile("test/standalone/use_alias/build.zig", .{});
- cases.addBuildFile("test/standalone/brace_expansion/build.zig", .{});
- if (builtin.os.tag != .windows or builtin.cpu.arch != .aarch64) {
- // https://github.com/ziglang/zig/issues/13685
- cases.addBuildFile("test/standalone/empty_env/build.zig", .{});
- }
- cases.addBuildFile("test/standalone/issue_7030/build.zig", .{});
- cases.addBuildFile("test/standalone/install_raw_hex/build.zig", .{});
- if (builtin.zig_backend == .stage1) { // https://github.com/ziglang/zig/issues/12194
- cases.addBuildFile("test/standalone/issue_9812/build.zig", .{});
- }
- if (builtin.os.tag != .windows) {
- // https://github.com/ziglang/zig/issues/12419
- cases.addBuildFile("test/standalone/issue_11595/build.zig", .{});
- }
-
- if (builtin.os.tag != .wasi and
- // https://github.com/ziglang/zig/issues/13550
- (builtin.os.tag != .macos or builtin.cpu.arch != .aarch64) and
- // https://github.com/ziglang/zig/issues/13686
- (builtin.os.tag != .windows or builtin.cpu.arch != .aarch64))
- {
- cases.addBuildFile("test/standalone/load_dynamic_library/build.zig", .{});
- }
+ },
- if (builtin.os.tag == .windows) {
- cases.addBuildFile("test/standalone/windows_spawn/build.zig", .{});
- }
+ .{ .src_path = "test/standalone/issue_12471/main.zig" },
+ .{ .src_path = "test/standalone/guess_number/main.zig" },
+ .{ .src_path = "test/standalone/main_return_error/error_u8.zig" },
+ .{ .src_path = "test/standalone/main_return_error/error_u8_non_zero.zig" },
+ .{ .src_path = "test/standalone/noreturn_call/inline.zig" },
+ .{ .src_path = "test/standalone/noreturn_call/as_arg.zig" },
- cases.addBuildFile("test/standalone/c_compiler/build.zig", .{
- .build_modes = true,
- .cross_targets = true,
- });
-
- if (builtin.os.tag == .windows) {
- cases.addC("test/standalone/issue_9402/main.zig");
- }
- // Try to build and run a PIE executable.
- if (builtin.os.tag == .linux) {
- cases.addBuildFile("test/standalone/pie/build.zig", .{});
- }
- cases.addBuildFile("test/standalone/issue_12706/build.zig", .{});
- if (std.os.have_sigpipe_support) {
- cases.addBuildFile("test/standalone/sigpipe/build.zig", .{});
- }
+ .{
+ .src_path = "test/standalone/issue_9402/main.zig",
+ .os_filter = .windows,
+ .link_libc = true,
+ },
// Ensure the development tools are buildable. Alphabetically sorted.
// No need to build `tools/spirv/grammar.zig`.
- cases.add("tools/extract-grammar.zig");
- cases.add("tools/gen_outline_atomics.zig");
- cases.add("tools/gen_spirv_spec.zig");
- cases.add("tools/gen_stubs.zig");
- cases.add("tools/generate_linux_syscalls.zig");
- cases.add("tools/process_headers.zig");
- cases.add("tools/update-license-headers.zig");
- cases.add("tools/update-linux-headers.zig");
- cases.add("tools/update_clang_options.zig");
- cases.add("tools/update_cpu_features.zig");
- cases.add("tools/update_glibc.zig");
- cases.add("tools/update_spirv_features.zig");
+ .{ .src_path = "tools/extract-grammar.zig" },
+ .{ .src_path = "tools/gen_outline_atomics.zig" },
+ .{ .src_path = "tools/gen_spirv_spec.zig" },
+ .{ .src_path = "tools/gen_stubs.zig" },
+ .{ .src_path = "tools/generate_linux_syscalls.zig" },
+ .{ .src_path = "tools/process_headers.zig" },
+ .{ .src_path = "tools/update-license-headers.zig" },
+ .{ .src_path = "tools/update-linux-headers.zig" },
+ .{ .src_path = "tools/update_clang_options.zig" },
+ .{ .src_path = "tools/update_cpu_features.zig" },
+ .{ .src_path = "tools/update_glibc.zig" },
+ .{ .src_path = "tools/update_spirv_features.zig" },
+};
- cases.addBuildFile("test/standalone/issue_13030/build.zig", .{ .build_modes = true });
- cases.addBuildFile("test/standalone/emit_asm_and_bin/build.zig", .{});
- cases.addBuildFile("test/standalone/issue_12588/build.zig", .{});
- cases.addBuildFile("test/standalone/embed_generated_file/build.zig", .{});
- cases.addBuildFile("test/standalone/extern/build.zig", .{});
+pub const build_cases = [_]BuildCase{
+ .{
+ .build_root = "test/standalone/test_runner_path",
+ .import = @import("standalone/test_runner_path/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_13970",
+ .import = @import("standalone/issue_13970/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/main_pkg_path",
+ .import = @import("standalone/main_pkg_path/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/shared_library",
+ .import = @import("standalone/shared_library/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/mix_o_files",
+ .import = @import("standalone/mix_o_files/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/mix_c_files",
+ .import = @import("standalone/mix_c_files/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/global_linkage",
+ .import = @import("standalone/global_linkage/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/static_c_lib",
+ .import = @import("standalone/static_c_lib/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_339",
+ .import = @import("standalone/issue_339/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_8550",
+ .import = @import("standalone/issue_8550/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_794",
+ .import = @import("standalone/issue_794/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_5825",
+ .import = @import("standalone/issue_5825/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/pkg_import",
+ .import = @import("standalone/pkg_import/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/use_alias",
+ .import = @import("standalone/use_alias/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/install_raw_hex",
+ .import = @import("standalone/install_raw_hex/build.zig"),
+ },
+ // TODO take away EmitOption.emit_to option and make it give a FileSource
+ //.{
+ // .build_root = "test/standalone/emit_asm_and_bin",
+ // .import = @import("standalone/emit_asm_and_bin/build.zig"),
+ //},
+ // TODO take away EmitOption.emit_to option and make it give a FileSource
+ //.{
+ // .build_root = "test/standalone/issue_12588",
+ // .import = @import("standalone/issue_12588/build.zig"),
+ //},
+ .{
+ .build_root = "test/standalone/embed_generated_file",
+ .import = @import("standalone/embed_generated_file/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/extern",
+ .import = @import("standalone/extern/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/dep_diamond",
+ .import = @import("standalone/dep_diamond/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/dep_triangle",
+ .import = @import("standalone/dep_triangle/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/dep_recursive",
+ .import = @import("standalone/dep_recursive/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/dep_mutually_recursive",
+ .import = @import("standalone/dep_mutually_recursive/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/dep_shared_builtin",
+ .import = @import("standalone/dep_shared_builtin/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/empty_env",
+ .import = @import("standalone/empty_env/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_9812",
+ .import = @import("standalone/issue_9812/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_11595",
+ .import = @import("standalone/issue_11595/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/load_dynamic_library",
+ .import = @import("standalone/load_dynamic_library/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/windows_spawn",
+ .import = @import("standalone/windows_spawn/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/c_compiler",
+ .import = @import("standalone/c_compiler/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/pie",
+ .import = @import("standalone/pie/build.zig"),
+ },
+ .{
+ .build_root = "test/standalone/issue_12706",
+ .import = @import("standalone/issue_12706/build.zig"),
+ },
+ // TODO This test is disabled for doing naughty things in the build script.
+ // The logic needs to get moved to a child process instead of build.zig.
+ //.{
+ // .build_root = "test/standalone/sigpipe",
+ // .import = @import("standalone/sigpipe/build.zig"),
+ //},
+ .{
+ .build_root = "test/standalone/issue_13030",
+ .import = @import("standalone/issue_13030/build.zig"),
+ },
+};
- cases.addBuildFile("test/standalone/dep_diamond/build.zig", .{});
- cases.addBuildFile("test/standalone/dep_triangle/build.zig", .{});
- cases.addBuildFile("test/standalone/dep_recursive/build.zig", .{});
- cases.addBuildFile("test/standalone/dep_mutually_recursive/build.zig", .{});
- cases.addBuildFile("test/standalone/dep_shared_builtin/build.zig", .{});
-}
+const std = @import("std");