On Fri, Sep 05, 2025 at 01:01:54PM +0200, Stefano Brivio wrote: > On Fri, 5 Sep 2025 16:42:58 +1000 > David Gibson wrote: > > > On Fri, Sep 05, 2025 at 11:35:53AM +1000, David Gibson wrote: > > > On Fri, Sep 05, 2025 at 01:14:33AM +0200, Stefano Brivio wrote: > > > > On Thu, 4 Sep 2025 12:50:00 +1000 > > > > David Gibson wrote: > > > > > > > > > Here's a new approach to building passt tests with exeter. This new > > > > > one no longer uses Avocado in the default case, although it would > > > > > still be possible to manually run the exeter based tests with Avocado. > > > > > > > > > > For now this only does simple tests, to show how the integration could > > > > > work. It adds some new trivial "smoke tests" and converts the linter > > > > > and build checks to exeter. More complex tests will require building > > > > > the tunbridge library we've discussed. A lot of the work for that > > > > > already exists in my earlier exeter test series, but it will need some > > > > > rework to split it into a separate component. > > > > > > > > > > v7: > > > > > * Use "exetool list" rather than "--list" directly to get test manifest. > > > > > * Update Makefiles to automatically update exeter sources as necessary. > > > > > * Update series cover letter removing some outdated information. > > > > > > > > I was about to apply this, but then realised that the usual build test > > > > links at https://passt.top/#ci disappeared, see also > > > > https://passt.top/builds/latest/web/ci.js. > > > > > > Huh, that's weird. > > > > > > > I didn't really investigate > > > > yet, we're missing something equivalent to the "test" directive. > > > > > > We shouldn't be. exeter() calls status_test_{start,ok,fail} much like > > > test(). > > > > Ah.. but I didn't call video_link, like test_one() did. Which > > explains why the new tests weren't getting links... but not why it > > broke the existing ones. > > No, no, existing ones are fine. Just the *build* test links were > missing. It all works now (with v8). Ah, ok. > > Well, I've put that in, and ci.js looks sane to me, but I don't really > > know how that video stuff works. I'll send v8. > > It's write-only code but it's conceptually simple: we record the start > timestamp (based on /proc/uptime) of each test file and add that, > together with a key, to a JavaScript array, video_cilinks. > > One 'a' HTML element (link) is also generated for each test file, with > an 'id' attribute matching that key, and when you click on that link, a > listener will look into video_cilink and use the matching start > timestamp as seek time for AsciinemaPlayer. Right. I pretty much figured that out as I was looking at it. > > > > If I > > > > recall correctly, that was working in v5, but I'm not sure why. I still > > > > need to look into this, unless you figure it out meanwhile. > > > > > > Right, you said v5 worked. Hrm.... one of the main differences since > > > v5 is getting the descriptions, which *are* used as the parameter to > > > status_test_start. Could the descriptions be using some character we > > > weren't before and we're missing an escape somewhere? Not seeing an > > > obvious spot. > > I guess I didn't actually recall correctly, or didn't check those > links, because it couldn't have worked in v5 either. Right. I'd also discarded this theory in the meantime. -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson