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"
11b8385162SSiva Chandra Reddy #include "test/ErrnoSetterMatcher.h"
12b8385162SSiva Chandra Reddy #include "utils/UnitTest/Test.h"
13b8385162SSiva Chandra Reddy #include "utils/testutils/FDReader.h"
14b8385162SSiva Chandra Reddy 
15b8385162SSiva Chandra Reddy #include <errno.h>
16b8385162SSiva Chandra Reddy #include <fcntl.h>
17b8385162SSiva Chandra Reddy 
TEST(LlvmLibcMkdiratTest,CreateAndRemove)18b8385162SSiva Chandra Reddy TEST(LlvmLibcMkdiratTest, CreateAndRemove) {
19b8385162SSiva Chandra Reddy   using __llvm_libc::testing::ErrnoSetterMatcher::Succeeds;
20*be7c865aSSiva Chandra   constexpr const char *TEST_DIR = "testdata/mkdirat.testdir";
21b8385162SSiva Chandra Reddy   ASSERT_THAT(__llvm_libc::mkdirat(AT_FDCWD, TEST_DIR, S_IRWXU), Succeeds(0));
22b8385162SSiva Chandra Reddy   ASSERT_THAT(__llvm_libc::rmdir(TEST_DIR), Succeeds(0));
23b8385162SSiva Chandra Reddy }
24b8385162SSiva Chandra Reddy 
TEST(LlvmLibcMkdiratTest,BadPath)25b8385162SSiva Chandra Reddy TEST(LlvmLibcMkdiratTest, BadPath) {
26b8385162SSiva Chandra Reddy   using __llvm_libc::testing::ErrnoSetterMatcher::Fails;
27b8385162SSiva Chandra Reddy   ASSERT_THAT(__llvm_libc::mkdirat(AT_FDCWD, "non-existent-dir/test", S_IRWXU),
28b8385162SSiva Chandra Reddy               Fails(ENOENT));
29b8385162SSiva Chandra Reddy }
30