std: compile error on invalid testing allocator usage
This commit is contained in:
parent
dea437edfb
commit
0b4a3ec950
|
@ -8,7 +8,11 @@ pub const FailingAllocator = @import("testing/failing_allocator.zig").FailingAll
|
|||
|
||||
/// This should only be used in temporary test programs.
|
||||
pub const allocator = allocator_instance.allocator();
|
||||
pub var allocator_instance = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
pub var allocator_instance = b: {
|
||||
if (!builtin.is_test)
|
||||
@compileError("Cannot use testing allocator outside of test block");
|
||||
break :b std.heap.GeneralPurposeAllocator(.{}){};
|
||||
};
|
||||
|
||||
pub const failing_allocator = failing_allocator_instance.allocator();
|
||||
pub var failing_allocator_instance = FailingAllocator.init(base_allocator_instance.allocator(), 0);
|
||||
|
|
|
@ -8,7 +8,9 @@ const ChildProcess = std.ChildProcess;
|
|||
var a: std.mem.Allocator = undefined;
|
||||
|
||||
pub fn main() !void {
|
||||
var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
|
||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
defer _ = gpa.deinit();
|
||||
var arena = std.heap.ArenaAllocator.init(gpa.allocator());
|
||||
defer arena.deinit();
|
||||
|
||||
a = arena.allocator();
|
||||
|
|
|
@ -291,7 +291,9 @@ pub fn addCases(cases: *tests.CompareOutputContext) void {
|
|||
\\ stdout.print("before\n", .{}) catch unreachable;
|
||||
\\ defer stdout.print("defer1\n", .{}) catch unreachable;
|
||||
\\ defer stdout.print("defer2\n", .{}) catch unreachable;
|
||||
\\ var arena = @import("std").heap.ArenaAllocator.init(@import("std").testing.allocator);
|
||||
\\ var gpa = @import("std").heap.GeneralPurposeAllocator(.{}){};
|
||||
\\ defer _ = gpa.deinit();
|
||||
\\ var arena = @import("std").heap.ArenaAllocator.init(gpa.allocator());
|
||||
\\ defer arena.deinit();
|
||||
\\ var args_it = @import("std").process.argsWithAllocator(arena.allocator()) catch unreachable;
|
||||
\\ if (args_it.skip() and !args_it.skip()) return;
|
||||
|
@ -357,10 +359,11 @@ pub fn addCases(cases: *tests.CompareOutputContext) void {
|
|||
\\const std = @import("std");
|
||||
\\const io = std.io;
|
||||
\\const os = std.os;
|
||||
\\const allocator = std.testing.allocator;
|
||||
\\
|
||||
\\pub fn main() !void {
|
||||
\\ var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
|
||||
\\ var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
\\ defer _ = gpa.deinit();
|
||||
\\ var arena = std.heap.ArenaAllocator.init(gpa.allocator());
|
||||
\\ defer arena.deinit();
|
||||
\\ var args_it = try std.process.argsWithAllocator(arena.allocator());
|
||||
\\ const stdout = io.getStdOut().writer();
|
||||
|
@ -397,10 +400,11 @@ pub fn addCases(cases: *tests.CompareOutputContext) void {
|
|||
\\const std = @import("std");
|
||||
\\const io = std.io;
|
||||
\\const os = std.os;
|
||||
\\const allocator = std.testing.allocator;
|
||||
\\
|
||||
\\pub fn main() !void {
|
||||
\\ var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
|
||||
\\ var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
\\ defer _ = gpa.deinit();
|
||||
\\ var arena = std.heap.ArenaAllocator.init(gpa.allocator());
|
||||
\\ defer arena.deinit();
|
||||
\\ var args_it = try std.process.argsWithAllocator(arena.allocator());
|
||||
\\ const stdout = io.getStdOut().writer();
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
const std = @import("std");
|
||||
|
||||
pub fn main() !void {
|
||||
const env_map = std.process.getEnvMap(std.testing.allocator) catch @panic("unable to get env map");
|
||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
defer _ = gpa.deinit();
|
||||
const env_map = std.process.getEnvMap(gpa.allocator()) catch @panic("unable to get env map");
|
||||
try std.testing.expect(env_map.count() == 0);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
const std = @import("std");
|
||||
|
||||
pub fn main() !void {
|
||||
const args = try std.process.argsAlloc(std.testing.allocator);
|
||||
defer std.process.argsFree(std.testing.allocator, args);
|
||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
defer _ = gpa.deinit();
|
||||
const args = try std.process.argsAlloc(gpa.allocator());
|
||||
defer std.process.argsFree(gpa.allocator(), args);
|
||||
|
||||
const dynlib_name = args[1];
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user