On Sat, Oct 08, 2022, Andrew Jones wrote: > On Fri, Oct 07, 2022 at 08:55:20PM +0000, Sean Christopherson wrote: > > On Mon, Sep 12, 2022, Colton Lewis wrote: > > > @@ -393,7 +403,7 @@ int main(int argc, char *argv[]) > > > > > > guest_modes_append_default(); > > > > > > - while ((opt = getopt(argc, argv, "ghi:p:m:nb:f:v:or:s:x:")) != -1) { > > > + while ((opt = getopt(argc, argv, "ghi:p:m:nb:v:or:s:x:w:")) != -1) { > > > > This string is getting quite annoying to maintain, e.g. all of these patches > > conflict with recent upstream changes, and IIRC will conflict again with Vipin's > > changes. AFAICT, the string passed to getopt() doesn't need to be constant, i.e. > > can be built programmatically. Not in this series, but as future cleanup we should > > at least consider a way to make this slightly less painful to maintain. > > > > I wonder if a getopt string like above is really saying "we're doing too > much in a single test binary". Are all these switches just for one-off > experiments which developers need? Or, are testers expected to run this > binary multiple times with different combinations of switches? Even if it's just 2 or 3 switches, I agree we need a way to run those configs by default. > If it's the latter, then I think we need a test runner script and config file > to capture those separate invocations (similar to kvm-unit-tests). Or, change > from a collection of command line switches to building the file multiple > times with different compile time switches and output filenames. What about a mix of those two approaches and having individual scripts for each config? I like the idea of one executable per config, but we shouldn't need to compile multiple times. And that would still allow developers to easily run non-standard configs. I'd prefer to avoid adding a test runner, partly because I can never remember the invocation strings, partly becuase I don't want to encourage mega tests like the VMX and SVM KVM-unit-tests.