Re: Call for nommu LTP maintainer [was: Re: [PATCH 00/36] Remove UCLINUX from LTP]
Rob Landley <[email protected]>
| Newsgroups | gmane.linux.ports.m68k,gmane.linux.ltp,gmane.linux.kernel,gmane.linux.ports.arm.kernel,gmane.linux.ports.riscv,gmane.linux.ports.sh.devel |
|---|---|
| Message-ID | <[email protected]> |
On 1/10/24 07:33, Petr Vorel wrote: >> I'm a bit weird in that I try to get CURRENT stuff to work on nommu, and a lot >> of people have been happy to consume my work, but getting any of them to post >> directly to linux-kernel is like pulling teeth. > > Interesting, thanks for sharing this. BTW I'm not saying anybody is using nommu, > but I wonder if anybody really test it with LTP. And if yes, I wonder why we > don't have reports about tests broken in new API. I don't expect a lot of nommu users are aware you ever _could_ run LTP on nommu. But I'd like to get nommu more regularly supported. You _should_ be able to build a musl-linux userspace with busybox or toybox and be able to build a recognizable system (even an alpine-alike) which could then get the basic plumbing regression tested on qemu even without access to nommu hardware. >> > But as I said, if anybody from nommu decides to maintain it in LTP, I'll try to >> > support him in my free time (review patches, give advices). And if nobody >> > stands, this patchset which removes the support in the old API will be merged >> > after next LTP release (in the end of January). > >> What does the API migration do? Is there a page on it ala OABI vs EABI in arm or >> something? > > New C API is documented at our wiki: the API for using in the tests [1] > and the library itself [2]. (We also have shell API, but we can ignore it for > nommu.) I'm writing a bash-compatible shell, which (thanks to Elliott forwarding questions) has involved surprisingly long threads with the bash maintainer about weird corner cases neither the man page nor my testing made clear: http://lists.landley.net/pipermail/toybox-landley.net/2023-July/029631.html (Alas I try NOT to involve him because when I bring stuff up he keeps FIXING BASH which from my point of view just makes it a moving target...) Anyway, running the shell API on nommu doesn't seem out of the question, but probably not any time soon. (The fact the shell isn't finished yet is one of the big REASONS I haven't got enough time to take on LTP. That and I haven't started writing "awk" and "make" yet". And I need to cycle back to https://landley.net/notes-2023.html#12-10-2023 . And after that debian, ala https://peertube.debian.social/w/chzkKrMvEczG7qQyjbMKPr and https://peertube.debian.social/w/45XroN9CnbYLNLKQH3GD9F . And follow up on https://lists.gnu.org/archive/html/coreutils/2023-08/msg00009.html . And...) > All files in lib/ directory which include tst_test.h are part of new C API. Main > file is lib/tst_test.c. safe_fork(), safe_clone(), fork_testrun()... > LTP tests, which has been rewritten to new API include > tst_test.h, they are in testcases/ directory. Library has it's own tests (for > testing regression in in lib/newlib_tests/*.c. Library meaning... libc? Or does LTP have a library? > The reason why Cyril wrote in 2016 new C API was that the old API was buggy > (tests randomly fails). Tests which are still using the old API (there is > ongoing rewrite) include test.h. The old API is not much documented. > > Feel free to ask any more question. My standard questions are "what does success look like" and "how do I reproduce the problem". For the first: if there previously was nommu support in LTP, what's the last version that's known to work? Is there an existing build/test setup that can be reproduced? For the second... If I try to run LTP on sh2eb (my current nommu test board) with the current LTP... do I get a build break? Additional test failures at runtime? You talk about "removing nommu support", but... what's the current status? (A subset of tests still use the old api...?) Yes I need to read https://github.com/linux-test-project/ltp/wiki/C-Test-API but I also need to know how to build LTP from source. I'm looking at the README's list of "autoconf, automake, m4, pkgconf / pkg-config" and wincing significantly. (What does gnu/autoconf DO here? Disable tests? I never understand why anybody uses that giant hairball of complexity. Half of cross compiling is figuring out how to lie to autoconf, and my normal workaround for that is to bootstrap a target system and build natively, but while I've gotten gcc to run natively on nommu systems, I never _tried_ gnu/autoconf. Bootstrapping some subset of LFS on a nommu system so it has the dependencies LFS needs to natively build seems like the long way 'round... (I am not the right guy for "make it work the easy way". I am the guy who will step on every land mine between here and there. I code by debugging an empty screen. If I don't start from "known working" setup... it would take a while.) Rob