1// Copyright 2016 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#pragma once 6 7#include <dirent.h> 8#include <errno.h> 9#include <stdint.h> 10#include <stdio.h> 11#include <string.h> 12#include <sys/types.h> 13 14#include <zircon/compiler.h> 15 16// Filesystem test utilities 17 18__BEGIN_CDECLS; 19 20#define ASSERT_STREAM_ALL(op, fd, buf, len) \ 21 ASSERT_EQ(op(fd, (buf), (len)), (ssize_t)(len), ""); 22 23typedef struct expected_dirent { 24 bool seen; // Should be set to "false", used internally by checking function. 25 const char* d_name; 26 unsigned char d_type; 27} expected_dirent_t; 28 29bool fcheck_dir_contents(DIR* dir, expected_dirent_t* edirents, size_t len); 30bool check_dir_contents(const char* dirname, expected_dirent_t* edirents, size_t len); 31 32// Check the contents of a file are what we expect 33bool check_file_contents(int fd, const uint8_t* buf, size_t length); 34 35// Unmount and remount our filesystem, simulating a reboot 36bool check_remount(void); 37 38__END_CDECLS; 39