// 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 "util.h" bool test_basic(void) { BEGIN_TEST; ASSERT_EQ(emu_mkdir("::alpha", 0755), 0); ASSERT_EQ(emu_mkdir("::alpha/bravo", 0755), 0); ASSERT_EQ(emu_mkdir("::alpha/bravo/charlie", 0755), 0); ASSERT_EQ(emu_mkdir("::alpha/bravo/charlie/delta", 0755), 0); ASSERT_EQ(emu_mkdir("::alpha/bravo/charlie/delta/echo", 0755), 0); int fd1 = emu_open("::alpha/bravo/charlie/delta/echo/foxtrot", O_RDWR | O_CREAT, 0644); ASSERT_GT(fd1, 0); int fd2 = emu_open("::alpha/bravo/charlie/delta/echo/foxtrot", O_RDWR, 0644); ASSERT_GT(fd2, 0); ASSERT_EQ(emu_write(fd1, "Hello, World!\n", 14), 14); ASSERT_EQ(emu_close(fd1), 0); ASSERT_EQ(emu_close(fd2), 0); fd1 = emu_open("::file.txt", O_CREAT | O_RDWR, 0644); ASSERT_GT(fd1, 0); ASSERT_EQ(emu_close(fd1), 0); ASSERT_EQ(emu_mkdir("::emptydir", 0755), 0); fd1 = emu_open("::emptydir", O_RDONLY, 0644); ASSERT_GT(fd1, 0); char buf; ASSERT_LT(emu_read(fd1, &buf, 1), 0); ASSERT_EQ(emu_write(fd1, "Don't write to directories", 26), -1); ASSERT_EQ(emu_ftruncate(fd1, 0), -1); ASSERT_EQ(emu_close(fd1), 0); ASSERT_EQ(run_fsck(), 0); END_TEST; } RUN_MINFS_TESTS(basic_tests, RUN_TEST_MEDIUM(test_basic) )