mirror of
https://github.com/clap-rs/clap
synced 2025-03-04 23:37:32 +00:00
30 lines
905 B
Rust
30 lines
905 B
Rust
#![cfg(not(windows))]
|
|
|
|
extern crate clap;
|
|
|
|
use std::ffi::OsString;
|
|
use std::os::unix::ffi::OsStringExt;
|
|
use clap::{App, Arg, ErrorKind};
|
|
|
|
#[test]
|
|
fn invalid_unicode_safe() {
|
|
let m = App::new("bad_unicode")
|
|
.arg(Arg::from_usage("<arg> 'some arg'"))
|
|
.get_matches_from_safe(vec![OsString::from_vec(vec![0x20]),
|
|
OsString::from_vec(vec![0xe9])]);
|
|
assert!(m.is_err());
|
|
if let Err(err) = m {
|
|
assert_eq!(err.kind, ErrorKind::InvalidUtf8);
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn invalid_unicode_lossy() {
|
|
App::new("bad_unicode")
|
|
.arg(Arg::from_usage("<arg> 'some arg'"))
|
|
.setting(AppSetting::AllowInvalidUtf8)
|
|
.get_matches_from_safe(vec![OsString::from_vec(vec![0x20]),
|
|
OsString::from_vec(vec![0xe9])]) {
|
|
assert!(m.is_present("arg"));
|
|
assert_eq!(m.value_of("arg").unwrap(), "\u{FFFD}");
|
|
}
|