• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

veeso / termscp / 4967308399

pending completion
4967308399

push

github

GitHub
Don't prompt for password if a ssh key is set for that host (#186)

35 of 35 new or added lines in 4 files covered. (100.0%)

5229 of 5623 relevant lines covered (92.99%)

14.37 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.71
/src/utils/ssh.rs
1
use ssh2_config::{ParseRule, SshConfig};
2

3
pub fn parse_ssh2_config(path: &str) -> Result<SshConfig, String> {
2✔
4
    use std::fs::File;
5
    use std::io::BufReader;
6

7
    let mut reader = File::open(path)
4✔
8
        .map_err(|e| format!("failed to open {path}: {e}"))
2✔
9
        .map(BufReader::new)?;
×
10
    SshConfig::default()
2✔
11
        .parse(&mut reader, ParseRule::ALLOW_UNKNOWN_FIELDS)
12
        .map_err(|e| format!("Failed to parse ssh2 config: {e}"))
×
13
}
2✔
14

15
#[cfg(test)]
16
mod test {
17

18
    use crate::utils::{ssh::parse_ssh2_config, test_helpers};
19

20
    #[test]
21
    fn should_parse_ssh2_config() {
2✔
22
        let rsa_key = test_helpers::create_sample_file_with_content("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDErJhQxEI0+VvhlXVUyh+vMCm7aXfCA/g633AG8ezD/5EylwchtAr2JCoBWnxn4zV8nI9dMqOgm0jO4IsXpKOjQojv+0VOH7I+cDlBg0tk4hFlvyyS6YviDAfDDln3jYUM+5QNDfQLaZlH2WvcJ3mkDxLVlI9MBX1BAeSmChLxwAvxALp2ncImNQLzDO9eHcig3dtMrEKkzXQowRW5Y7eUzg2+vvVq4H2DOjWwUndvB5sJkhEfTUVE7ID8ZdGJo60kUb/02dZYj+IbkAnMCsqktk0cg/4XFX82hEfRYFeb1arkysFisPU1DOb6QielL/axeTebVplaouYcXY0pFdJt root@8c50fd4c345a");
1✔
23
        let ssh_config_file = test_helpers::create_sample_file_with_content(format!(
1✔
24
            r#"
25
Host test
26
        HostName 127.0.0.1
27
        Port 2222
28
        User test
29
        IdentityFile {}
30
        StrictHostKeyChecking no
31
        UserKnownHostsFile /dev/null
32
"#,
33
            rsa_key.path().display()
1✔
34
        ));
35

36
        assert!(parse_ssh2_config(
1✔
37
            ssh_config_file
1✔
38
                .path()
39
                .to_string_lossy()
40
                .to_string()
41
                .as_str()
42
        )
43
        .is_ok());
44
    }
2✔
45
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc