mirror of
https://github.com/uutils/coreutils
synced 2024-12-12 14:22:41 +00:00
Merge pull request #6802 from andrewliebenow/mkdir-empty-argument-fix
mkdir: emit error when path is empty
This commit is contained in:
commit
3f694faa2e
2 changed files with 18 additions and 0 deletions
|
@ -160,6 +160,13 @@ fn exec(dirs: ValuesRef<OsString>, recursive: bool, mode: u32, verbose: bool) ->
|
|||
/// To match the GNU behavior, a path with the last directory being a single dot
|
||||
/// (like `some/path/to/.`) is created (with the dot stripped).
|
||||
pub fn mkdir(path: &Path, recursive: bool, mode: u32, verbose: bool) -> UResult<()> {
|
||||
if path.as_os_str().is_empty() {
|
||||
return Err(USimpleError::new(
|
||||
1,
|
||||
"cannot create directory '': No such file or directory".to_owned(),
|
||||
));
|
||||
}
|
||||
|
||||
// Special case to match GNU's behavior:
|
||||
// mkdir -p foo/. should work and just create foo/
|
||||
// std::fs::create_dir("foo/."); fails in pure Rust
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
//
|
||||
// For the full copyright and license information, please view the LICENSE
|
||||
// file that was distributed with this source code.
|
||||
|
||||
// spell-checker:ignore bindgen
|
||||
|
||||
#![allow(clippy::cast_sign_loss, clippy::cast_possible_truncation)]
|
||||
|
||||
use crate::common::util::TestScenario;
|
||||
|
@ -332,3 +335,11 @@ fn test_umask_compliance() {
|
|||
test_single_case(i as mode_t);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_empty_argument() {
|
||||
new_ucmd!()
|
||||
.arg("")
|
||||
.fails()
|
||||
.stderr_only("mkdir: cannot create directory '': No such file or directory\n");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue