@@ -387,31 +387,28 @@ pub fn build(b: *std.Build) !void {
387
387
examples_step .dependOn (& example_run .step );
388
388
}
389
389
390
- // @Todo: is there a better way to do this? this feels hacky
391
- //
392
- // Fix the test fixture file permissions. This is necessary because Zig does
393
- // not respect the execute permission on files it extracts from dependencies.
394
- // Since we need those files to have the execute permission set for tests to
395
- // run successfully, we need to patch them before we bake them into the
396
- // test executable.
390
+ const test_step = b .step ("test" , "Run core unit tests (requires python)" );
397
391
{
398
- const file_paths = &[_ ]std.Build.LazyPath {
392
+ // Fix the test fixture file permissions. This is necessary because Zig does
393
+ // not respect the execute permission on arbitrary files it extracts from dependencies.
394
+ // Since we need those files to have the execute permission set for tests to
395
+ // run successfully, we need to patch them before we bake them into the
396
+ // test executable. While modifying the global cache is hacky, it wont break
397
+ // hashes for the same reason above.
398
+ for ([_ ]std.Build.LazyPath {
399
399
libgit_root .path (b , "tests/resources/filemodes/exec_on" ),
400
400
libgit_root .path (b , "tests/resources/filemodes/exec_off2on_staged" ),
401
401
libgit_root .path (b , "tests/resources/filemodes/exec_off2on_workdir" ),
402
402
libgit_root .path (b , "tests/resources/filemodes/exec_on_untracked" ),
403
- };
404
- for (file_paths ) | lazy | {
403
+ }) | lazy | {
405
404
const path = lazy .getPath2 (b , null );
406
405
const file = try std .fs .cwd ().openFile (path , .{
407
406
.mode = .read_write ,
408
407
});
408
+ defer file .close ();
409
409
try file .setPermissions (.{ .inner = .{ .mode = 0o755 } });
410
410
}
411
- }
412
411
413
- const test_step = b .step ("test" , "Run core unit tests (requires python)" );
414
- {
415
412
const gen_cmd = b .addSystemCommand (&.{"python" });
416
413
gen_cmd .addFileArg (libgit_src .path ("tests/clar/generate.py" ));
417
414
const clar_suite = gen_cmd .addPrefixedOutputDirectoryArg ("-o" , "clar_suite" );
0 commit comments