⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tests.h

📁 mtd-utils 是一套更改linux mtd設備的工具
💻 H
字号:
/* * Copyright (C) 2007 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Author: Adrian Hunter */#ifndef included_tests_tests_h__#define included_tests_tests_h__#include <stdint.h>/* Main macro for testing */#define CHECK(x) tests_test((x),__func__,__FILE__,__LINE__)/* The default directory in which tests are conducted */#define TESTS_DEFAULT_FILE_SYSTEM_MOUNT_DIR "/mnt/test_file_system"/* The default file system type to test */#define TESTS_DEFAULT_FILE_SYSTEM_TYPE "jffs2"/* Estimated size of an empty directory */#define TESTS_EMPTY_DIR_SIZE 128/* Function invoked by the CHECK macro */void tests_test(int test,const char *msg,const char *file,unsigned line);/* Handle common program options */int tests_get_args(int argc,		char *argv[],		const char *title,		const char *desc,		const char *opts);/* Return the number of files (or directories) in the given directory */unsigned tests_count_files_in_dir(const char *dir_name);/* Change to the file system mount directory, check that it is empty,   matches the file system type, and is not the root file system */void tests_check_test_file_system(void);/* Get the free space for the file system of the current directory */uint64_t tests_get_free_space(void);/* Get the total space for the file system of the current directory */uint64_t tests_get_total_space(void);/* Write size random bytes into file descriptor fd at the current position,   returning the number of bytes actually written */uint64_t tests_fill_file(int fd, uint64_t size);/* Write size random bytes into file descriptor fd at offset,   returning the number of bytes actually written */uint64_t tests_write_filled_file(int fd, off_t offset, uint64_t size);/* Check that a file written using tests_fill_file() and/or   tests_write_filled_file() and/or tests_create_file()   contains the expected random data */void tests_check_filled_file_fd(int fd);/* Check that a file written using tests_fill_file() and/or   tests_write_filled_file() and/or tests_create_file()   contains the expected random data */void tests_check_filled_file(const char *file_name);/* Delete a file */void tests_delete_file(const char *file_name);/* Create a file of size file_size */uint64_t tests_create_file(const char *file_name, uint64_t file_size);/* Calculate: free_space * numerator / denominator */uint64_t tests_get_big_file_size(unsigned numerator, unsigned denominator);/* Create file "fragment_n" where n is the file_number, and unlink it */int tests_create_orphan(unsigned file_number);/* Write size bytes at offset to the file "fragment_n" where n is the   file_number and file_number also determines the random data written   i.e. seed for random numbers */unsigned tests_write_fragment_file(unsigned file_number,				int fd,				off_t offset,				unsigned size);/* Write size bytes to the end of file descriptor fd using file_number   to determine the random data written i.e. seed for random numbers */unsigned tests_fill_fragment_file(unsigned file_number,				int fd,				unsigned size);/* Write size bytes to the end of file "fragment_n" where n is the file_number   and file_number also determines the random data written   i.e. seed for random numbers */unsigned tests_append_to_fragment_file(unsigned file_number,					unsigned size,					int create);/* Write size bytes at offset to the file "fragment_n" where n is the   file_number and file_number also determines the random data written   i.e. seed for random numbers */unsigned tests_overwite_fragment_file(	unsigned file_number,					off_t offset,					unsigned size);/* Delete file "fragment_n" where n is the file_number */void tests_delete_fragment_file(unsigned file_number);/* Check the random data in file "fragment_n" is what is expected */void tests_check_fragment_file_fd(unsigned file_number, int fd);/* Check the random data in file "fragment_n" is what is expected */void tests_check_fragment_file(unsigned file_number);/* Central point to decide whether to use fsync */void tests_maybe_sync(int fd);/* Return O_SYNC if ok to sync otherwise return 0 */int tests_maybe_sync_flag(void);/* Return random number from 0 to n - 1 */size_t tests_random_no(size_t n);/* Make a directory empty */void tests_clear_dir(const char *dir_name);/* Create an empty sub-directory or small file in the current directory */int64_t tests_create_entry(char *return_name);/* Remove a random file of empty sub-directory from the current directory */int64_t tests_remove_entry(void);/* Un-mount and re-mount test file system */void tests_remount(void);/* Un-mount test file system */void tests_unmount(void);/* Mount test file system */void tests_mount(void);/* Check whether the test file system is also the root file system */int tests_fs_is_rootfs(void);/* Try to make a directory empty */void tests_try_to_clear_dir(const char *dir_name);/* Check whether the test file system is also the current file system */int tests_fs_is_currfs(void);/* Concatenate a pid to a string in a signal safe way */void tests_cat_pid(char *buf, const char *name, pid_t pid);extern char *tests_file_system_mount_dir;extern char *tests_file_system_type;/* General purpose test parameter to specify some aspect of test size.   May be used by different tests in different ways.   Set by the -z, --size options. */extern int64_t tests_size_parameter;/* General purpose test parameter to specify some aspect of test repetition.   May be used by different tests in different ways.   Set by the -n, --repeat options. */extern int64_t tests_repeat_parameter;/* General purpose test parameter to specify some aspect of test sleeping.   May be used by different tests in different ways.   Set by the -p, --sleep options. */extern int64_t tests_sleep_parameter;/* General purpose test parameter to specify a file should be unlinked.   May be used by different tests in different ways or not at all. */extern int tests_unlink_flag;/* General purpose test parameter to specify a file should be closed.   May be used by different tests in different ways or not at all. */extern int tests_close_flag;/* General purpose test parameter to specify a file should be deleted.   May be used by different tests in different ways or not at all. */extern int tests_delete_flag;/* General purpose test parameter to specify a file have a hole.   May be used by different tests in different ways or not at all. */extern int tests_hole_flag;/* Program name from argv[0] */extern char *program_name;/* Maximum file name length of test file system (from statfs) */extern long tests_max_fname_len;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -