fix: "cibtool run list" shows ids without loading run info

If the run info can't be parsed as JSON, loading it will fail. Change
`cibtool run list` so that it only lists the run ids by default.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
This commit is contained in:
Lars Wirzenius
2025-04-07 15:34:57 +03:00
parent 756d7ac81d
commit 900a457157
4 changed files with 24 additions and 8 deletions
+1 -1
View File
@@ -434,7 +434,7 @@ when I run cibtool --db ci-broker.db event list
then stdout is empty
when I run cibtool --db ci-broker.db run list
then stdout has 2 lines containing "xyzzy"
then stdout has 2 lines
~~~
+5
View File
@@ -25,6 +25,11 @@
rust:
function: stdout_has_one_line
- then: "stdout has {n:uint} lines"
impl:
rust:
function: stdout_has_n_lines
- then: "stdout has {n:uint} lines containing \"{text:text}\""
impl:
rust:
+8 -7
View File
@@ -217,18 +217,14 @@ impl Leaf for ListRuns {
fn run(&self, args: &Args) -> Result<(), CibToolError> {
let db = args.open_db()?;
let runs = if let Some(wanted) = &self.adapter_run_id {
db.find_runs(wanted)?
} else {
db.get_all_runs()?
};
if self.json {
let runs = db.get_all_runs()?;
println!(
"{}",
serde_json::to_string_pretty(&runs).map_err(CibToolError::RunToJson)?
);
} else {
} else if let Some(wanted) = &self.adapter_run_id {
let runs = db.find_runs(wanted)?;
for run in runs {
println!(
"{} {}",
@@ -238,6 +234,11 @@ impl Leaf for ListRuns {
.unwrap_or("unknown".into())
);
}
} else {
let run_ids = db.list_runs()?;
for run_id in run_ids {
println!("{}", run_id);
}
}
Ok(())
+10
View File
@@ -395,6 +395,16 @@ fn stdout_has_one_line(runcmd: &Runcmd) {
}
}
#[step]
#[context(SubplotContext)]
#[context(Runcmd)]
fn stdout_has_n_lines(runcmd: &Runcmd, n: usize) {
let linecount = runcmd.stdout_as_string().lines().count();
if linecount != n {
throw!(format!("stdout had {linecount} lines, expected {n}"));
}
}
#[step]
#[context(SubplotContext)]
#[context(Runcmd)]