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

#include <fs/fs.h>

void test_fs_help(void);
void test_fs_fat_mount(void);
void test_fs_littlefs_mount(void);
void test_fs_shell_exit(void);
