[DTrace-devel] [PATCH 2/4] test: correct file permissions
Eugene Loh
eugene.loh at oracle.com
Thu Dec 18 21:54:15 UTC 2025
On 12/18/25 15:17, Kris Van Hees wrote:
> On Thu, Dec 18, 2025 at 03:07:29PM -0500, Eugene Loh wrote:
>> I'd like some context here. Why are these permissions being changed? E.g.,
>>
>> * There are some *.d files that start with "#!" but they're invoked as D
>> scripts, not interpreter files. So, they don't need +x.
> Well, yes, they do not need +x but then they ALSO do not need the shebang.
> (See below)
Sure.
>> * There are some *.r files given +x. Why? They aren't being executed, are
>> they?
> Some tests (I believe some you wrote, actually) generate a shell script, with
> shebang, and expect it to be compared to a .r file. I presume that the intent
> is that such files are expected to be executed, and therefore they should bear
> the x permission. If they are not expected to be executed, then I think it is
> best that the test does not generate a shebang shell script at all.
I'm familiar with the practice, but I'm pretty sure I didn't write any
of those tests. The original intent is fine, I suppose, but I do not
think we're executing those files anymore. So, rewriting those tests...
fine, I suppose, but wouldn't seem to be all that urgent.
>> * A D script is turned -x. Okay, but not consequential?
> I agree that some of the file permission changes may not be correct - I did
> it semi-automatically based on shebang presence when in reality a lot of those
> trsts probably should not have the shebang. I can go through the list and do
> a more thorough job at this. I admit this was primarily to get lintian to
> stop complaining. It is very usrful to flag potential issues, but the fix I
> did for various cases certainly may not be the ideal one.
>
>> I'm not against the patch. I just don't understand it. There's more to x
>> permissions than whether there is a leading shebang.
> I agree - when I included this patch in the series I forgot I had not done a
> full review of the changes to determine whether they were the best course of
> action for each case. As mentioned above, shebang on D scripts that are passed
> to dtrace is pointless and should be removed. Except perhaps for having one
> test that ensures that shebang presence doesn't cause dtrace to choke. That
> can be a singular exception.
Another issue is that runtest.sh *does* run some D scripts as
interpreter files. The key is that the shebang line is #!dtrace... we
only want #!/usr/sbin/dtrace for --use-installed. Interestingly (well,
this *is* something I think I did!), +x is not needed to instruct
runtest.sh to run the test as an interpreter file... we copy the file
and then fix the shebang for the appropriate dtrace path and chmod +x at
that time. (Of course, there are other ways of handling this.)
lint checks are good, but it seems that maybe this patch in its present
form is not what we're looking for??? And I'm thinking the urgency is
low enough that it makes sense to postpone this sort of clean-up work?
>> On 12/17/25 00:09, Kris Van Hees wrote:
>>> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
>>> ---
>>> test/demo/script/interp.d | 0
>>> test/demo/script/tracewrite.d | 0
>>> test/demo/spec/specopen.d | 0
>>> test/stress/fbtsafety/tst.vahole.d | 0
>>> test/unittest/funcs/substr/tst.substr.r | 0
>>> test/unittest/funcs/tst.basename.r | 0
>>> test/unittest/funcs/tst.index.r | 0
>>> test/unittest/lockstat/tst.lockstat-summary.d | 0
>>> test/unittest/scripting/err.D_MACRO_UNDEF.invalidargs.d | 0
>>> test/unittest/scripting/err.D_OP_LVAL.rdonly.d | 0
>>> test/unittest/scripting/err.D_OP_WRITE.usepidmacro.d | 0
>>> test/unittest/scripting/err.D_SYNTAX.concat.d | 0
>>> test/unittest/scripting/err.D_SYNTAX.desc.d | 0
>>> test/unittest/scripting/err.D_SYNTAX.inval.d | 0
>>> test/unittest/scripting/err.D_SYNTAX.pid.d | 0
>>> test/unittest/scripting/tst.arg0.d | 0
>>> test/unittest/scripting/tst.assign.d | 0
>>> test/unittest/scripting/tst.basic.d | 0
>>> test/unittest/scripting/tst.pgid.d | 0
>>> test/unittest/scripting/tst.pid.d | 0
>>> test/unittest/scripting/tst.sid.d | 0
>>> test/unittest/scripting/tst.trace.d | 0
>>> .../unittest/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d | 0
>>> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithChill.d | 0
>>> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.d | 0
>>> .../unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.d | 0
>>> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d | 0
>>> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d | 0
>>> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithStop.d | 0
>>> 29 files changed, 0 insertions(+), 0 deletions(-)
>>> mode change 100644 => 100755 test/demo/script/interp.d
>>> mode change 100644 => 100755 test/demo/script/tracewrite.d
>>> mode change 100644 => 100755 test/demo/spec/specopen.d
>>> mode change 100644 => 100755 test/stress/fbtsafety/tst.vahole.d
>>> mode change 100644 => 100755 test/unittest/funcs/substr/tst.substr.r
>>> mode change 100644 => 100755 test/unittest/funcs/tst.basename.r
>>> mode change 100644 => 100755 test/unittest/funcs/tst.index.r
>>> mode change 100755 => 100644 test/unittest/lockstat/tst.lockstat-summary.d
>>> mode change 100644 => 100755 test/unittest/scripting/err.D_MACRO_UNDEF.invalidargs.d
>>> mode change 100644 => 100755 test/unittest/scripting/err.D_OP_LVAL.rdonly.d
>>> mode change 100644 => 100755 test/unittest/scripting/err.D_OP_WRITE.usepidmacro.d
>>> mode change 100644 => 100755 test/unittest/scripting/err.D_SYNTAX.concat.d
>>> mode change 100644 => 100755 test/unittest/scripting/err.D_SYNTAX.desc.d
>>> mode change 100644 => 100755 test/unittest/scripting/err.D_SYNTAX.inval.d
>>> mode change 100644 => 100755 test/unittest/scripting/err.D_SYNTAX.pid.d
>>> mode change 100644 => 100755 test/unittest/scripting/tst.arg0.d
>>> mode change 100644 => 100755 test/unittest/scripting/tst.assign.d
>>> mode change 100644 => 100755 test/unittest/scripting/tst.basic.d
>>> mode change 100644 => 100755 test/unittest/scripting/tst.pgid.d
>>> mode change 100644 => 100755 test/unittest/scripting/tst.pid.d
>>> mode change 100644 => 100755 test/unittest/scripting/tst.sid.d
>>> mode change 100644 => 100755 test/unittest/scripting/tst.trace.d
>>> mode change 100644 => 100755 test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d
>>> mode change 100644 => 100755 test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithChill.d
>>> mode change 100644 => 100755 test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.d
>>> mode change 100644 => 100755 test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.d
>>> mode change 100644 => 100755 test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d
>>> mode change 100644 => 100755 test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d
>>> mode change 100644 => 100755 test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithStop.d
>>>
>>> diff --git a/test/demo/script/interp.d b/test/demo/script/interp.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/demo/script/tracewrite.d b/test/demo/script/tracewrite.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/demo/spec/specopen.d b/test/demo/spec/specopen.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/stress/fbtsafety/tst.vahole.d b/test/stress/fbtsafety/tst.vahole.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/funcs/substr/tst.substr.r b/test/unittest/funcs/substr/tst.substr.r
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/funcs/tst.basename.r b/test/unittest/funcs/tst.basename.r
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/funcs/tst.index.r b/test/unittest/funcs/tst.index.r
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/lockstat/tst.lockstat-summary.d b/test/unittest/lockstat/tst.lockstat-summary.d
>>> old mode 100755
>>> new mode 100644
>>> diff --git a/test/unittest/scripting/err.D_MACRO_UNDEF.invalidargs.d b/test/unittest/scripting/err.D_MACRO_UNDEF.invalidargs.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/err.D_OP_LVAL.rdonly.d b/test/unittest/scripting/err.D_OP_LVAL.rdonly.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/err.D_OP_WRITE.usepidmacro.d b/test/unittest/scripting/err.D_OP_WRITE.usepidmacro.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/err.D_SYNTAX.concat.d b/test/unittest/scripting/err.D_SYNTAX.concat.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/err.D_SYNTAX.desc.d b/test/unittest/scripting/err.D_SYNTAX.desc.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/err.D_SYNTAX.inval.d b/test/unittest/scripting/err.D_SYNTAX.inval.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/err.D_SYNTAX.pid.d b/test/unittest/scripting/err.D_SYNTAX.pid.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/tst.arg0.d b/test/unittest/scripting/tst.arg0.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/tst.assign.d b/test/unittest/scripting/tst.assign.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/tst.basic.d b/test/unittest/scripting/tst.basic.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/tst.pgid.d b/test/unittest/scripting/tst.pgid.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/tst.pid.d b/test/unittest/scripting/tst.pid.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/tst.sid.d b/test/unittest/scripting/tst.sid.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/scripting/tst.trace.d b/test/unittest/scripting/tst.trace.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d b/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithChill.d b/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithChill.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.d b/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.d b/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d b/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d b/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d
>>> old mode 100644
>>> new mode 100755
>>> diff --git a/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithStop.d b/test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithStop.d
>>> old mode 100644
>>> new mode 100755
More information about the DTrace-devel
mailing list