blob: 471b6a5448826280c279dab8203ea0a60b723b16 [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 <unittest/unittest.h>
#include <minfs/host.h>
#include <fcntl.h>
#define DEFAULT_DISK_SIZE (1llu << 32)
#define MOUNT_PATH "/tmp/zircon-fs-test"
typedef struct expected_dirent {
bool seen; // Should be set to "false", used internally by checking function.
const char* d_name;
unsigned char d_type;
} expected_dirent_t;
void setup_fs_test(size_t disk_size);
void teardown_fs_test(void);
int run_fsck(void);
#define BEGIN_FS_TEST_CASE(case_name, disk_size) \
BEGIN_TEST_CASE(case_name) \
setup_fs_test(disk_size);
#define END_FS_TEST_CASE(case_name) \
teardown_fs_test(); \
END_TEST_CASE(case_name)
#define RUN_MINFS_TESTS(case_name, CASE_TESTS) \
RUN_MINFS_TESTS_SIZE(case_name, DEFAULT_DISK_SIZE, CASE_TESTS)
#define RUN_MINFS_TESTS_SIZE(case_name, disk_size, CASE_TESTS) \
BEGIN_FS_TEST_CASE(minfs_##case_name, disk_size) \
CASE_TESTS \
END_FS_TEST_CASE(minfs_##case_name)
#define ASSERT_STREAM_ALL(op, fd, buf, len) \
ASSERT_EQ(op(fd, (buf), (len)), (ssize_t)(len), "");