/*
 * Copyright (c) 2016 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr.h>
#include <ztest.h>
#include <fs.h>

/* Make sure to match the drive name to ELM FAT Lib volume strings */
#define FATFS_MNTP	"/RAM:"
#define TEST_FILE	FATFS_MNTP"/testfile.txt"
#define TEST_DIR	FATFS_MNTP"/testdir"
#define TEST_DIR_FILE	FATFS_MNTP"/testdir/testfile.txt"

/* Make sure to match the drive name to ELM FAT Lib volume strings */
#define FATFS_MNTP1	"/CF:"
#define TEST_FILE1	FATFS_MNTP1"/testfile.txt"
#define TEST_DIR1	FATFS_MNTP1"/testdir"
#define TEST_DIR_FILE1	FATFS_MNTP1"/testdir/testfile.txt"

struct fs_file_t filep;
extern const char test_str[];

int check_file_dir_exists(const char *path);

void test_fat_mount(void);
void test_fat_file(void);
void test_fat_dir(void);
void test_fat_fs(void);

