| ... | @@ -89,12 +89,13 @@ pub fn addCompileErrorTests(b: *build.Builder, test_filter: ?[]const u8, modes: | ... | @@ -89,12 +89,13 @@ pub fn addCompileErrorTests(b: *build.Builder, test_filter: ?[]const u8, modes: |
| 89 | return cases.step; | 89 | return cases.step; |
| 90 | } | 90 | } |
| 91 | | 91 | |
| 92 | pub fn addBuildExampleTests(b: *build.Builder, test_filter: ?[]const u8) *build.Step { | 92 | pub fn addBuildExampleTests(b: *build.Builder, test_filter: ?[]const u8, modes: []const Mode) *build.Step { |
| 93 | const cases = b.allocator.create(BuildExamplesContext{ | 93 | const cases = b.allocator.create(BuildExamplesContext{ |
| 94 | .b = b, | 94 | .b = b, |
| 95 | .step = b.step("test-build-examples", "Build the examples"), | 95 | .step = b.step("test-build-examples", "Build the examples"), |
| 96 | .test_index = 0, | 96 | .test_index = 0, |
| 97 | .test_filter = test_filter, | 97 | .test_filter = test_filter, |
| | 98 | .modes = modes, |
| 98 | }) catch unreachable; | 99 | }) catch unreachable; |
| 99 | | 100 | |
| 100 | build_examples.addCases(cases); | 101 | build_examples.addCases(cases); |
| ... | @@ -697,6 +698,7 @@ pub const BuildExamplesContext = struct { | ... | @@ -697,6 +698,7 @@ pub const BuildExamplesContext = struct { |
| 697 | step: *build.Step, | 698 | step: *build.Step, |
| 698 | test_index: usize, | 699 | test_index: usize, |
| 699 | test_filter: ?[]const u8, | 700 | test_filter: ?[]const u8, |
| | 701 | modes: []const Mode, |
| 700 | | 702 | |
| 701 | pub fn addC(self: *BuildExamplesContext, root_src: []const u8) void { | 703 | pub fn addC(self: *BuildExamplesContext, root_src: []const u8) void { |
| 702 | self.addAllArgs(root_src, true); | 704 | self.addAllArgs(root_src, true); |
| ... | @@ -739,12 +741,7 @@ pub const BuildExamplesContext = struct { | ... | @@ -739,12 +741,7 @@ pub const BuildExamplesContext = struct { |
| 739 | pub fn addAllArgs(self: *BuildExamplesContext, root_src: []const u8, link_libc: bool) void { | 741 | pub fn addAllArgs(self: *BuildExamplesContext, root_src: []const u8, link_libc: bool) void { |
| 740 | const b = self.b; | 742 | const b = self.b; |
| 741 | | 743 | |
| 742 | for ([]Mode{ | 744 | for (self.modes) |mode| { |
| 743 | Mode.Debug, | | |
| 744 | Mode.ReleaseSafe, | | |
| 745 | Mode.ReleaseFast, | | |
| 746 | Mode.ReleaseSmall, | | |
| 747 | }) |mode| { | | |
| 748 | const annotated_case_name = fmt.allocPrint(self.b.allocator, "build {} ({})", root_src, @tagName(mode)) catch unreachable; | 745 | const annotated_case_name = fmt.allocPrint(self.b.allocator, "build {} ({})", root_src, @tagName(mode)) catch unreachable; |
| 749 | if (self.test_filter) |filter| { | 746 | if (self.test_filter) |filter| { |
| 750 | if (mem.indexOf(u8, annotated_case_name, filter) == null) continue; | 747 | if (mem.indexOf(u8, annotated_case_name, filter) == null) continue; |