in src/common/commands_parser.rs [594:718]
fn test_parse_memory() {
let app = create_app!();
let args = vec![
"nitro-cli",
"run-enclave",
"--memory",
"256_mb",
"--cpu-count",
"2",
"--eif-path",
"non_existing_eif.eif",
];
let matches = app.try_get_matches_from(args);
assert!(matches.is_ok());
let result = parse_memory(
matches
.as_ref()
.unwrap()
.subcommand_matches("run-enclave")
.unwrap(),
);
assert!(result.is_err());
if let Err(err_info) = result {
let err_str = construct_error_message(&err_info);
assert!(err_str.contains("Invalid argument provided"))
}
let app = create_app!();
let args = vec![
"nitro-cli",
"run-enclave",
"--memory",
"256",
"--cpu-count",
"2",
"--eif-path",
"non_existing_eif.eif",
];
let matches = app.try_get_matches_from(args);
assert!(matches.is_ok());
let result = parse_memory(
matches
.as_ref()
.unwrap()
.subcommand_matches("run-enclave")
.unwrap(),
);
assert_eq!(result, Ok(256));
let app = create_app!();
let args = vec![
"nitro-cli",
"run-enclave",
"--memory",
"100M",
"--cpu-count",
"2",
"--eif-path",
"non_existing_eif.eif",
];
let matches = app.try_get_matches_from(args);
assert!(matches.is_ok());
let result = parse_memory(
matches
.as_ref()
.unwrap()
.subcommand_matches("run-enclave")
.unwrap(),
);
assert_eq!(result, Ok(100));
let app = create_app!();
let args = vec![
"nitro-cli",
"run-enclave",
"--memory",
"10G",
"--cpu-count",
"2",
"--eif-path",
"non_existing_eif.eif",
];
let matches = app.try_get_matches_from(args);
assert!(matches.is_ok());
let result = parse_memory(
matches
.as_ref()
.unwrap()
.subcommand_matches("run-enclave")
.unwrap(),
);
assert_eq!(result, Ok(10_240));
let app = create_app!();
let args = vec![
"nitro-cli",
"run-enclave",
"--memory",
"2T",
"--cpu-count",
"2",
"--eif-path",
"non_existing_eif.eif",
];
let matches = app.try_get_matches_from(args);
assert!(matches.is_ok());
let result = parse_memory(
matches
.as_ref()
.unwrap()
.subcommand_matches("run-enclave")
.unwrap(),
);
assert_eq!(result, Ok(2 * 1024 * 1024));
}