On 3/11/26 08:55, sun jian wrote: > On Tue, Mar 10, 2026 at 8:32 PM Viktor Malik <[email protected]> wrote: >> >> I don't think this is a good approach as it will mask genuine bugs that >> would cause the files to be missing/inaccessible with one of the above >> error codes. >> > Hi Viktor, > > I don't think this change masks bugs in a silent way. It prints an explicit > INFO line when maps.debug/progs.debug are unavailable due to > EPERM/EACCES/ENOENT, and it still fails on other errors or unexpected > iterator output.
Yeah but automatic CI doesn't care about INFO lines. It cares about pass/fail status and in this case, the test could falsely appear as passing, even though there's a bug in bpffs code causing the files not to exist or have wrong permissions. >> If you really need to execute the rest of the test cases in the file, >> how about you split the test into subtests and then just add the failing >> subtest to your DENYLIST? > > Proper subtests would require reworking the current fork-based flow to > report SKIP/FAIL to the harness, which would be a larger refactor than > intended here. I don't think it would be such a big refactoring. You can still use fork(), you just need to have separate `run` functions for different subtests. True, the init/teardown phase would be somewhat duplicated but I wouldn't see that as a big issue (and you can still factor it out). > My goal is to keep this as a minimal change while still achieving the main > purpose of this test: exercising the core bpffs operations (pinning and > renameat2 semantics), which are independent of the debug iterator files, > and clearly reporting when the iterator checks couldn't be performed. That's exactly what subtests are for, at least in my view. You want to check independent operations, you create a separate subtest for each. That way, you can filter out some subtests if they don't pass in your environment.

