1b8385162SSiva Chandra Reddy //===-- Unittests for mkdirat ---------------------------------------------===// 2b8385162SSiva Chandra Reddy // 3b8385162SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4b8385162SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 5b8385162SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6b8385162SSiva Chandra Reddy // 7b8385162SSiva Chandra Reddy //===----------------------------------------------------------------------===// 8b8385162SSiva Chandra Reddy 9b8385162SSiva Chandra Reddy #include "src/sys/stat/mkdirat.h" 10b8385162SSiva Chandra Reddy #include "src/unistd/rmdir.h" 114f1fe19dSSiva Chandra Reddy #include "test/UnitTest/ErrnoSetterMatcher.h" 12af1315c2SSiva Chandra Reddy #include "test/UnitTest/Test.h" 13b8385162SSiva Chandra Reddy 14*abc49cc1SJob Henandez Lara #include "hdr/fcntl_macros.h" 15b8385162SSiva Chandra Reddy 16b8385162SSiva Chandra Reddy TEST(LlvmLibcMkdiratTest, CreateAndRemove) { 17b6bc9d72SGuillaume Chatelet using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds; 187a7d5481Smichaelrj-google constexpr const char *FILENAME = "testdata/mkdirat.testdir"; 197a7d5481Smichaelrj-google auto TEST_DIR = libc_make_test_file_path(FILENAME); 20b6bc9d72SGuillaume Chatelet ASSERT_THAT(LIBC_NAMESPACE::mkdirat(AT_FDCWD, TEST_DIR, S_IRWXU), 21b6bc9d72SGuillaume Chatelet Succeeds(0)); 22b6bc9d72SGuillaume Chatelet ASSERT_THAT(LIBC_NAMESPACE::rmdir(TEST_DIR), Succeeds(0)); 23b8385162SSiva Chandra Reddy } 24b8385162SSiva Chandra Reddy 25b8385162SSiva Chandra Reddy TEST(LlvmLibcMkdiratTest, BadPath) { 26b6bc9d72SGuillaume Chatelet using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails; 27b6bc9d72SGuillaume Chatelet ASSERT_THAT( 28b6bc9d72SGuillaume Chatelet LIBC_NAMESPACE::mkdirat(AT_FDCWD, "non-existent-dir/test", S_IRWXU), 29b8385162SSiva Chandra Reddy Fails(ENOENT)); 30b8385162SSiva Chandra Reddy } 31