mirror of
https://github.com/ziglang/zig.git
synced 2025-01-18 16:01:50 +00:00
add test for spawning child process with empty environment
thanks to BenoitJGirard for pointing out the child process implementation needs 3 extra null bytes in #2031
This commit is contained in:
parent
b4e6e301e1
commit
e1fbb24d64
@ -1530,6 +1530,12 @@ pub const RunStep = struct {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn clearEnvironment(self: *RunStep) void {
|
||||
const new_env_map = self.builder.allocator.create(BufMap) catch unreachable;
|
||||
new_env_map.* = BufMap.init(self.builder.allocator);
|
||||
self.env_map = new_env_map;
|
||||
}
|
||||
|
||||
pub fn addPathDir(self: *RunStep, search_path: []const u8) void {
|
||||
const PATH = if (builtin.os == builtin.Os.windows) "Path" else "PATH";
|
||||
const env_map = self.getEnvMap();
|
||||
|
@ -19,6 +19,7 @@ pub fn addCases(cases: *tests.BuildExamplesContext) void {
|
||||
cases.addBuildFile("test/standalone/pkg_import/build.zig");
|
||||
cases.addBuildFile("test/standalone/use_alias/build.zig");
|
||||
cases.addBuildFile("test/standalone/brace_expansion/build.zig");
|
||||
cases.addBuildFile("test/standalone/empty_env/build.zig");
|
||||
if (false) {
|
||||
// TODO this test is disabled because it is failing on the CI server's linux. when this is fixed
|
||||
// enable it for at least linux
|
||||
|
12
test/standalone/empty_env/build.zig
Normal file
12
test/standalone/empty_env/build.zig
Normal file
@ -0,0 +1,12 @@
|
||||
const Builder = @import("std").build.Builder;
|
||||
|
||||
pub fn build(b: *Builder) void {
|
||||
const main = b.addExecutable("main", "main.zig");
|
||||
main.setBuildMode(b.standardReleaseOptions());
|
||||
|
||||
const run = main.run();
|
||||
run.clearEnvironment();
|
||||
|
||||
const test_step = b.step("test", "Test it");
|
||||
test_step.dependOn(&run.step);
|
||||
}
|
6
test/standalone/empty_env/main.zig
Normal file
6
test/standalone/empty_env/main.zig
Normal file
@ -0,0 +1,6 @@
|
||||
const std = @import("std");
|
||||
|
||||
pub fn main() void {
|
||||
const env_map = std.os.getEnvMap(std.debug.global_allocator) catch @panic("unable to get env map");
|
||||
std.testing.expect(env_map.count() == 0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user