<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 13, 2022 at 8:46 PM Rob Landley <<a href="mailto:rob@landley.net" target="_blank">rob@landley.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 9/13/22 16:25, enh wrote:<br>
> i'll keep an eye out, but since we _came_ from GNU sed, yeah, i'd be surprised<br>
> if we'd introduced any POSIX assumptions since then.<br>
> <br>
> for now though any update is still blocked on the chattr test breakage from<br>
> SKIPNEXT...<br>
<br>
Ah, didn't know that was blocking you. (The chattr tests don't run here because<br>
the number of - output by chattr, on both debian and toybox's version, is off by<br>
one from what the tests expect. It's still ext4, but...?)<br>
<br>
Anyway, took a blind stab at it, does 0fa628026cb3 fix it for you?<br></blockquote><div><br></div><div>looks like it. thanks!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I note that:<br>
<br>
-touch testFile; chattr -v 1234 testFile 2>/dev/null || SKIPNEXT=1<br>
+touch testFile && chattr -v 1234 testFile 2>/dev/null || ((++SKIP))<br>
<br>
I did that because it looked wrong otherwise, but that _could_ change behavior<br>
for you...?<br></blockquote><div><br></div><div>not that i can tell: it looks like the same subset of the chattr toggle tests is running both before and after.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> -- chattr<br>
<br>
Sigh, more of Divya's tests. I tried to clean them up, but am still not always<br>
sure what they were intended to prove. Let's see...<br>
<br>
> /system/bin/sh: /data/local/tmp/toybox-tests/runtest.sh[222]: syntax error:<br>
> unexpected operator/operand '=~'<br>
<br>
Hmmm, I thought only sh was using the expect plumbing... ah right, mksh aborts<br>
processing that file with a syntax error but resumes the file that sourced it<br>
(the source produces an error rc but nothing checks it and everything sourced<br>
BEFORE then is populated, so... cosmetic but I should still fix. I have the todo<br>
item but haven't done it yet because the *pat* thing isn't right and toysh is SO<br>
CLOSE to being able to run the test suite. I've been distracted from that...)<br>
<br>
Right, not part of the failure you were seeing, just general noise I need to fix.<br></blockquote><div><br></div><div>(yeah, like you i'm just ignoring this since it's not actually a problem.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> /system/bin/sh: can't create testFile: Operation not permitted<br>
> rm: testFile: Operation not permitted<br>
> PASS: chattr immutable<br>
> /system/bin/sh: can't create testFile: Operation not permitted<br>
> PASS: chattr append-only<br>
<br>
ALSO noise. Noisy but not failing. How is the test NOT failing? (No line numbers<br>
for the failures, that's nice of the shell...)<br>
<br>
Um, your commit ac932250f8ba seems to have changed these tests into something<br>
that passes if chattr fails? What exactly is this testing?<br></blockquote><div><br></div><div>yeah, a skip would be better, but i think what's there is fine. (the chattr succeeds on my test device.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> PASS: chattr toggle A<br>
> PASS: chattr toggle d<br>
> FAIL: chattr toggle e<br>
> echo -ne '' | lsattr testFile | awk '{print $1}' > attrs;<br>
>     grep -q e attrs || cat attrs; cat testFile && chattr -e testFile &&<br>
>     lsattr testFile | clean; rm -rf testFile<br>
> --- expected 2022-09-10 02:15:53.519998810 +0000<br>
> +++ actual 2022-09-10 02:15:53.559998809 +0000<br>
> @@ -1,2 +1,3 @@<br>
> +---------E----------<br>
>  abcdefghijklmnopqrstuvwxyz<br>
>  -------------------- testFile<br>
<br>
Well, hopefully it's skipping that now, although disabling the test if what we'd<br>
be testing doesn't work is... kind of strange? (Again, what does this test<br>
actually demonstrate? What have we proved by running it? I'm confused!)<br></blockquote><div><br></div><div>read my extensive code comment :-P</div><div><br></div><div># For the rest, just toggle the bits back and forth (where supported).<br># Note that some file system/kernel combinations do return success but<br># silently ignore your request: +T on 4.19 f2fs, or +F on 5.2 ext4,<br># for example, so we're deliberately a bit selective here.<br># f2fs in 5.6+ kernels supports compression, but you can only enable<br># compression on a file while it's still empty, so we skip +c too.<br></div><div><br></div><div><div>basically "which subset of attributes you can actually test will depend on the exact fs you're running on". so we test the ones we can, skip the ones we can't.</div><div><br></div></div><div>as for what exactly we get out of this...</div><div><br></div><div>  # Check that $attr is in the lsattr output, then that - turns it back off.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
It's a test that requires root to run so it's in my "run under mkroot" bucket,<br>
but still...<br></blockquote><div><br></div><div>i'm not sure there's any one fs that supports all the things? (and, like i always say, even if/when you do have that, there's still value to being able to test in the production environment.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Rob<br>
</blockquote></div></div>