Skip to content

Commit ec9d6bc

Browse files
committed
tests: fix tests failing in CI cause of interactive image pulling
Also fixed applied clippy suggestions and removed serial_test crate
1 parent 0bcb5c6 commit ec9d6bc

File tree

12 files changed

+28
-28
lines changed

12 files changed

+28
-28
lines changed

.github/workflows/test.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,23 @@ on:
1010

1111
env:
1212
CARGO_TERM_COLOR: always
13+
CARGO_BUILD_TARGET: x86_64-unknown-linux-musl
1314

1415
jobs:
1516
build:
1617
runs-on: ubuntu-latest
1718

1819
steps:
1920
- uses: actions/checkout@v4
21+
22+
- name: Fetch Toolchain
23+
run: rustup target add x86_64-unknown-linux-musl
24+
2025
- name: Build
2126
run: cargo build --verbose
22-
- name: Run tests
23-
run: cargo test --verbose -- --include-ignored
27+
28+
- name: Run Tests
29+
run: cargo test --verbose -- --include-ignored --show-output
30+
2431
- name: Run clippy
2532
run: cargo clippy --verbose

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,3 @@ vergen-git2 = { version = "1.0.0", features = ["build", "cargo", "rustc"] }
3131
assert_cmd = "2.0.16"
3232
rexpect = "0.6.0"
3333
tempfile = "3.16.0"
34-
serial_test = "*"

src/commands/cmd_exec.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,12 @@ mod tests {
8181

8282
#[test]
8383
#[ignore]
84-
#[serial]
8584
fn cmd_exec_podman() -> Result<()> {
8685
let tempdir = tempfile::tempdir()?;
8786

8887
// create the container
8988
let cmd = Command::cargo_bin(env!("CARGO_BIN_NAME"))?
90-
.args(["start", "debian:trixie"])
89+
.args(["start", DEBIAN_IMAGE])
9190
.current_dir(tempdir.path())
9291
.assert()
9392
.success();

src/commands/cmd_exists.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ mod tests {
2424

2525
#[test]
2626
#[ignore]
27-
#[serial]
2827
fn cmd_exists_podman() -> Result<()> {
2928
let tempdir = tempfile::tempdir()?;
3029

@@ -38,7 +37,7 @@ mod tests {
3837

3938
// create the container
4039
let cmd = Command::cargo_bin(env!("CARGO_BIN_NAME"))?
41-
.args(["start", "debian:trixie"])
40+
.args(["start", DEBIAN_IMAGE])
4241
.current_dir(tempdir.path())
4342
.assert()
4443
.success();

src/commands/cmd_kill.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,12 @@ mod tests {
7070

7171
#[test]
7272
#[ignore]
73-
#[serial]
7473
fn cmd_kill_podman() -> Result<()> {
7574
let tempdir = tempfile::tempdir()?;
7675

7776
// create the container
7877
let cmd = Command::cargo_bin(env!("CARGO_BIN_NAME"))?
79-
.args(["start", "debian:trixie"])
78+
.args(["start", DEBIAN_IMAGE])
8079
.current_dir(tempdir.path())
8180
.assert()
8281
.success();
@@ -107,12 +106,11 @@ mod tests {
107106

108107
#[test]
109108
#[ignore]
110-
#[serial]
111109
fn cmd_kill_interactive_podman() -> Result<()> {
112110
let tempdir = tempfile::tempdir()?;
113111

114112
let cmd = Command::cargo_bin(env!("CARGO_BIN_NAME"))?
115-
.args(["start", "debian:trixie"])
113+
.args(["start", DEBIAN_IMAGE])
116114
.current_dir(tempdir.path())
117115
.assert()
118116
.success();

src/commands/cmd_shell.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,11 @@ mod tests {
8282

8383
#[test]
8484
#[ignore]
85-
#[serial]
8685
fn cmd_shell_podman() -> Result<()> {
8786
let tempdir = tempfile::tempdir()?;
8887

8988
let cmd = Command::cargo_bin(env!("CARGO_BIN_NAME"))?
90-
.args(["start", "debian:trixie"])
89+
.args(["start", DEBIAN_IMAGE])
9190
.current_dir(tempdir.path())
9291
.assert()
9392
.success();

src/commands/cmd_start.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -403,8 +403,7 @@ asroot chown "$USER:$USER" {0}
403403
}
404404

405405
// remove pre-init flag to start initalization
406-
ctx.engine
407-
.exec(id, &vec!["rm", crate::FLAG_FILE_PRE_INIT])?;
406+
ctx.engine.exec(id, &["rm", crate::FLAG_FILE_PRE_INIT])?;
408407

409408
log::trace!("Waiting for container initialization");
410409

@@ -441,12 +440,11 @@ mod tests {
441440

442441
#[test]
443442
#[ignore]
444-
#[serial]
445443
fn cmd_start_podman() -> Result<()> {
446444
let tempdir = tempfile::tempdir()?;
447445

448446
let cmd = Command::cargo_bin(env!("CARGO_BIN_NAME"))?
449-
.args(["start", "debian:trixie"])
447+
.args(["start", DEBIAN_IMAGE])
450448
.current_dir(tempdir.path())
451449
.assert()
452450
.success();
@@ -460,7 +458,7 @@ mod tests {
460458

461459
// try to start another container in same directory
462460
Command::cargo_bin(env!("CARGO_BIN_NAME"))?
463-
.args(["start", "--name", &container, "debian:trixie"])
461+
.args(["start", "--name", &container, DEBIAN_IMAGE])
464462
.current_dir(tempdir.path())
465463
.assert()
466464
.failure()

src/commands/cmd_start/util.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ pub fn find_terminfo() -> Vec<String> {
8080
}
8181

8282
// use TERMINFO_DIRS if defined
83-
if let Some(env_dirs) = std::env::var("TERMINFO_DIRS").ok() {
83+
if let Ok(env_dirs) = std::env::var("TERMINFO_DIRS") {
8484
log::debug!("Looking for terminfo directories from environment variable");
8585

8686
// filter existing directories

src/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ impl TryInto<Config> for ConfigFile {
3030

3131
fn try_into(self) -> std::result::Result<Config, Self::Error> {
3232
match self {
33-
Self::V01(x) => Ok(x.try_into()?),
33+
Self::V01(x) => Ok(x),
3434
}
3535
}
3636
}
3737

3838
impl ConfigFile {
3939
pub fn config_from_str(input: &str) -> Result<Config> {
40-
Ok(toml::from_str::<ConfigFile>(input)?.try_into()?)
40+
toml::from_str::<ConfigFile>(input)?.try_into()
4141
}
4242

4343
pub fn config_from_file(file: &Path) -> Result<Config> {

src/engine/podman.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ impl Engine for Podman {
134134
cmd.args(["image", "pull", image]);
135135

136136
if interactive {
137+
// print to stderr to prevent issues with reading container name
138+
cmd.stdout(std::io::stderr());
137139
cmd.log_status_anyhow()?;
138140
} else {
139141
cmd.log_output_anyhow()?;
@@ -197,7 +199,6 @@ mod tests {
197199

198200
#[test]
199201
#[ignore]
200-
#[serial]
201202
fn engine_inspect_podman() -> Result<()> {
202203
let obj = serde_json::from_str::<Vec<PodmanContainerInfo>>(INSPECT_OUTPUT)?;
203204
assert_eq!(
@@ -225,7 +226,7 @@ mod tests {
225226
}
226227
);
227228

228-
let container = Podman.start_dummy_container("debian:trixie", None)?;
229+
let container = Podman.start_dummy_container(DEBIAN_IMAGE, None)?;
229230

230231
// ensure some data is extracted
231232
assert!(!Podman.inspect_containers(vec![&container])?.is_empty());
@@ -235,9 +236,8 @@ mod tests {
235236

236237
#[test]
237238
#[ignore]
238-
#[serial]
239239
fn engine_exists_podman() -> Result<()> {
240-
let container = Podman.start_dummy_container("debian:trixie", None)?;
240+
let container = Podman.start_dummy_container(DEBIAN_IMAGE, None)?;
241241

242242
assert!(Podman.container_exists(&container)?);
243243

0 commit comments

Comments
 (0)