blob: a6bf82bc4b0a1096d99d1dc4a4f7f96e566bb5f6 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <lib/fdio/private.h>
#include <unittest/unittest.h>
// These tests poke at some "global" behavior of fdio
// that are not easily tested through filesystem tests,
// since they (for example) rely on a global root.
//
// For more comprehensive filesystem tests, refer
// to utest/fs.
bool stat_test(void) {
BEGIN_TEST;
struct stat buf;
ASSERT_EQ(stat("/", &buf), 0, "");
ASSERT_EQ(stat("//", &buf), 0, "");
ASSERT_EQ(stat("///", &buf), 0, "");
ASSERT_EQ(stat("/tmp", &buf), 0, "");
ASSERT_EQ(stat("//tmp", &buf), 0, "");
ASSERT_EQ(stat("./", &buf), 0, "");
ASSERT_EQ(stat("./", &buf), 0, "");
ASSERT_EQ(stat(".", &buf), 0, "");
END_TEST;
}
bool remove_test(void) {
BEGIN_TEST;
ASSERT_EQ(remove("/"), -1, "");
ASSERT_EQ(errno, EBUSY, "");
ASSERT_EQ(rmdir("/"), -1, "");
ASSERT_EQ(errno, EBUSY, "");
END_TEST;
}
BEGIN_TEST_CASE(fdio_root_test)
RUN_TEST(stat_test)
RUN_TEST(remove_test)
END_TEST_CASE(fdio_root_test)