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

#include <fs.h>

void test_fs_help(void);
void test_fs_fat_mount(void);
void test_fs_nffs_mount(void);
void test_fs_shell_exit(void);
