Skip to content

Command line format is confusing: it implies all tests work on all OSes #36

Open
@stuartlangridge

Description

Expected behavior

Since a quicktest command looks like ./quicktest test_boot_to_login alpine v3.19, this seems to imply that tests and what they're run on are separate from one another. That is: it looks like you specify a test, and an OS, and a version, and quicktest runs that test on that OS. So if I like the test_boot_to_login test, I might decide to run it on Fedora 18, or Ubuntu 12.10, or Elementary, with a command line like ./quicktest test_boot_to_login ubuntu v12.04.

Actual behavior

This is not the case. In fact, any given test only exists for certain OS and version combinations. ./quicktest test_boot_to_login ubuntu v12.04 doesn't work because there is no test_boot_to_login supplied for Ubuntu 12.04. Quicktest knows this; it already knows which tests work on which OSes. But the command line syntax hides this, and implies that all tests run on all OSes even though they do not. ./quicktest test_boot_to_login ubuntu v12.04 will fail, not because that test doesn't work on that OS but because that test doesn't exist on that OS.

The test name is being treated almost like a subcommand, like git add or systemctl start. But the way subcommands work generally is that they're defined on everything: git add somefile.txt would be seen as strange if it only worked on text files and threw an error on others because it wasn't "defined" for PNGs.

Obviously, this doesn't actually affect the program itself. But I think the command line syntax could be more helpful here.

The main issue that the CLI syntax has is that it implies that a test has some separate independent existence from the OSes it runs on, and this isn't the case. So it might be clearer in people's minds if tests were presented as subordinate to the OSes they run on. For example, an syntax might look like this: ./quicktest ubuntu/24.04/test_boot_to_login. This makes it clear that there are "ubuntu" tests, within those there are "ubuntu 24.04" tests, and within that is the "test_boot_to_login" test. This mental model looks like a filesystem -- even though there isn't actually a filesystem visible with the tests in, people understand the idea of this hierarchy. The existence of the ./quicktest ubuntu/24.04/test_boot_to_login command does not necessarily imply the existence of a ./quicktest fedora/daily-live/test_boot_to_login command.

One of the downsides of this "filesystem" presentation is that it suggests that the "test_boot_to_login" test on ubuntu/24.04 and the "test_boot_to_login" test on ubuntu-mate/24.04 are unrelated. This might also be seen as confusing. But this is an inevitable consequence of having nearly-but-not-identical tests across some-but-not-all OSes.

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions