[LTP] [RFC PATCH 1/1] Remove fs-bench
xuyang2018.jy@fujitsu.com
xuyang2018.jy@fujitsu.com
Thu Nov 24 02:57:12 CET 2022
Hi Petr
> fs-bench is horribly broken and there does not seem to be a lot of value
> in keeping it.
I never use it, so
Acked-by: Yang Xu <xuyang2018.jy@fujitsu.com>
Best Regards
Yang Xu
>
> Closes: https://github.com/linux-test-project/ltp/issues/994
>
> Suggested-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> testcases/kernel/fs/fs-bench/.gitignore | 3 -
> testcases/kernel/fs/fs-bench/Makefile | 41 ------
> testcases/kernel/fs/fs-bench/README | 45 ------
> testcases/kernel/fs/fs-bench/boxmuler.c | 28 ----
> testcases/kernel/fs/fs-bench/create-files.c | 119 ---------------
> testcases/kernel/fs/fs-bench/fs-bench-test.sh | 50 -------
> .../kernel/fs/fs-bench/fs-bench-test2.sh | 63 --------
> testcases/kernel/fs/fs-bench/modaltr.sh | 124 ----------------
> .../fs/fs-bench/random-access-del-create.c | 136 ------------------
> testcases/kernel/fs/fs-bench/random-access.c | 92 ------------
> .../kernel/fs/fs-bench/random-del-create.c | 134 -----------------
> 11 files changed, 835 deletions(-)
> delete mode 100644 testcases/kernel/fs/fs-bench/.gitignore
> delete mode 100644 testcases/kernel/fs/fs-bench/Makefile
> delete mode 100644 testcases/kernel/fs/fs-bench/README
> delete mode 100644 testcases/kernel/fs/fs-bench/boxmuler.c
> delete mode 100644 testcases/kernel/fs/fs-bench/create-files.c
> delete mode 100755 testcases/kernel/fs/fs-bench/fs-bench-test.sh
> delete mode 100755 testcases/kernel/fs/fs-bench/fs-bench-test2.sh
> delete mode 100755 testcases/kernel/fs/fs-bench/modaltr.sh
> delete mode 100644 testcases/kernel/fs/fs-bench/random-access-del-create.c
> delete mode 100644 testcases/kernel/fs/fs-bench/random-access.c
> delete mode 100644 testcases/kernel/fs/fs-bench/random-del-create.c
>
> diff --git a/testcases/kernel/fs/fs-bench/.gitignore b/testcases/kernel/fs/fs-bench/.gitignore
> deleted file mode 100644
> index 5824a4002..000000000
> --- a/testcases/kernel/fs/fs-bench/.gitignore
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -/create-files
> -/random-access
> -/random-access-del-create
> diff --git a/testcases/kernel/fs/fs-bench/Makefile b/testcases/kernel/fs/fs-bench/Makefile
> deleted file mode 100644
> index bc570f7eb..000000000
> --- a/testcases/kernel/fs/fs-bench/Makefile
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -#
> -# kernel/fs/fs-bench testcases Makefile.
> -#
> -# Copyright (C) 2009, Cisco Systems Inc.
> -#
> -# This program is free software; you can redistribute it and/or modify
> -# it under the terms of the GNU General Public License as published by
> -# the Free Software Foundation; either version 2 of the License, or
> -# (at your option) any later version.
> -#
> -# 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 Street, Fifth Floor, Boston, MA 02110-1301 USA.
> -#
> -# Ngie Cooper, July 2009
> -#
> -
> -top_srcdir ?= ../../../..
> -
> -include $(top_srcdir)/include/mk/env_pre.mk
> -
> -INSTALL_TARGETS := modaltr.sh fs-bench-test.sh fs-bench-test2.sh
> -
> -LDLIBS += -lm
> -
> -create-files: boxmuler.o create-files.o
> -
> -random-access-del-create: boxmuler.o random-access-del-create.o
> -
> -MAKE_TARGETS := create-files random-access\
> - random-access-del-create
> -
> -dist: clean
> - (cd $(abs_srcdir); tar zcvf fs-bench.tar.gz $(abs_srcdir))
> -
> -include $(top_srcdir)/include/mk/generic_leaf_target.mk
> diff --git a/testcases/kernel/fs/fs-bench/README b/testcases/kernel/fs/fs-bench/README
> deleted file mode 100644
> index 20d49a951..000000000
> --- a/testcases/kernel/fs/fs-bench/README
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -Programs for File system stress test.
> -
> -All of programs are distributed under GPL 2 license
> -by Hironobu SUZUKI <hironobu@h2np.net>
> -
> -HOW TO TEST
> -------------
> -
> -1: Type "make"
> -
> - # cd
> - # tar zxvf fs-bench.tar.gz
> - # cd fs-bench
> - # make
> -
> -2: Change directory to terget file system and do-it!
> - (I always use one-HDD/one-partition for fs stress test.)
> -
> - # mount -t jfs /dev/hdc1 /jfs
> - # cd /jfs
> - # ~/fs-bench/test.sh 2>&1 | tee ~/fs-bench/jfs-test
> -
> -
> -NOTE
> ------
> -
> -The size of files that are created for stress test is not fixed. The
> -file size are determined by probabilistic algorithm, box-muler
> -algorithm.
> -
> -number
> -of files
> - ^
> - | ****
> - | * *
> - | * *
> - | * *
> - | ** **
> - |** **
> - +-------------------> file size
> - min max
> -
> -
> -------
> -$Id: README,v 1.1 2004/11/18 20:23:05 robbiew Exp $
> diff --git a/testcases/kernel/fs/fs-bench/boxmuler.c b/testcases/kernel/fs/fs-bench/boxmuler.c
> deleted file mode 100644
> index e923a1617..000000000
> --- a/testcases/kernel/fs/fs-bench/boxmuler.c
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -#include <math.h>
> -#include <stdlib.h>
> -
> -#define M_2PI (M_PI*2)
> -
> -int box_muler(int min, int max)
> -{
> - double u1, u2, z;
> - int i;
> - int ave;
> - int range;
> - int ZZ;
> - if (min >= max) {
> - return (-1);
> - }
> - range = max - min;
> - ave = range / 2;
> - for (i = 0; i < 10; i++) {
> - u1 = ((double)(random() % 1000000)) / 1000000;
> - u2 = ((double)(random() % 1000000)) / 1000000;
> - z = sqrt(-2.0 * log(u1)) * cos(M_2PI * u2);
> - ZZ = min + (ave + (z * (ave / 4)));
> - if (ZZ >= min && ZZ < max) {
> - return (ZZ);
> - }
> - }
> - return (-1);
> -}
> diff --git a/testcases/kernel/fs/fs-bench/create-files.c b/testcases/kernel/fs/fs-bench/create-files.c
> deleted file mode 100644
> index c6cba6f69..000000000
> --- a/testcases/kernel/fs/fs-bench/create-files.c
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -/* create.c (GPL)*/
> -/* Hironobu SUZUKI <hironobu@h2np.net> */
> -#include <stdio.h>
> -#include <sys/stat.h>
> -#include <sys/types.h>
> -#include <fcntl.h>
> -#include <unistd.h>
> -#include <time.h>
> -#include <stdlib.h>
> -
> -#define MAXN 4096
> -
> -#define MAXFSIZE 1024 * 192
> -
> -char wbuf[MAXFSIZE];
> -static int filecount = 0;
> -
> -void makedir(char *dir1);
> -void changedir(char *dir);
> -void create_file(char *filename);
> -
> -extern int box_muler(int, int);
> -
> -int startc = 0;
> -int main(int ac, char *av[])
> -{
> - int i = 0;
> - int j = 0;
> - int k = 0;
> - int l = 0;
> - char dir1[MAXN];
> - char dir2[MAXN];
> - char dir3[MAXN];
> - char filename[MAXN];
> - time_t t;
> - int maxfiles = 0xFFFFFF;
> - int createfiles = 0;
> -
> - if (ac > 1) {
> - sscanf(av[1], "%x", &maxfiles);
> - if (maxfiles == 0) {
> - printf("maxfile argument error (0 value)\n");
> - exit(1);
> - }
> - }
> - time(&t);
> - srandom((unsigned int)getpid() ^
> - (((unsigned int)t << 16) | (unsigned int)t >> 16));
> - printf("Create files\n");
> - for (i = 0; i < 0xFF; i++) {
> - sprintf(dir1, "%2.2x", i);
> - makedir(dir1);
> - changedir(dir1);
> - for (j = 0; j < 0xFF; j++) {
> - sprintf(dir2, "%2.2x", j);
> - makedir(dir2);
> - changedir(dir2);
> - for (k = 0; k < 0xFF; k++) {
> - sprintf(dir3, "%2.2x", k);
> - makedir(dir3);
> - changedir(dir3);
> - for (l = 0; l < 0xFF; l++) {
> - sprintf(filename, "%s%s%s%2.2x", dir1,
> - dir2, dir3, l);
> - create_file(filename);
> - if (maxfiles < createfiles++) {
> - goto end;
> - }
> - }
> - changedir("../");
> - }
> - changedir("../");
> - }
> - changedir("../");
> - }
> -end:
> - fprintf(stderr, "\nTotal create files: %d\n", filecount);
> - printf("Done\n");
> - return 0;
> -}
> -
> -int showchar[] = { 124, 47, 45, 92, 124, 47, 45, 92 };
> -
> -void makedir(char *dir1)
> -{
> - if (mkdir(dir1, S_IRWXU) < 0) {
> - perror(dir1);
> - exit(1);
> - }
> -}
> -
> -void changedir(char *dir)
> -{
> - if (chdir(dir) < 0) {
> - perror(dir);
> - exit(1);
> - }
> -}
> -
> -void create_file(char *filename)
> -{
> - int fd;
> - int randomsize;
> - if ((fd = creat(filename, S_IRWXU)) < 0) {
> - fprintf(stderr, "\nTotal create files: %d\n", filecount);
> - perror(filename);
> - exit(1);
> - }
> - if ((randomsize = box_muler(0, MAXFSIZE)) < 0) {
> - randomsize = MAXFSIZE;
> - }
> - if (write(fd, wbuf, randomsize) < 0) {
> - fprintf(stderr, "\nTotal create files: %d\n", filecount);
> - perror(filename);
> - exit(1);
> - }
> - filecount++;
> - close(fd);
> -}
> diff --git a/testcases/kernel/fs/fs-bench/fs-bench-test.sh b/testcases/kernel/fs/fs-bench/fs-bench-test.sh
> deleted file mode 100755
> index c2ca767f0..000000000
> --- a/testcases/kernel/fs/fs-bench/fs-bench-test.sh
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -#! /bin/bash
> -
> -echo "## Start Test"
> -date
> -if [ -d ./00 ] ; then
> - echo -n "Clear old files..."
> - /bin/rm -fr ./00 >& /dev/null
> - echo "done"
> -fi
> -STARTT=`date +%s`
> -echo $STARTT
> -echo ""
> -echo "## Create files "
> -time ~/fs-bench/cr
> -
> -echo ""
> -echo "## tar all "
> -MAXFILE=`tar cBf - 00 | tar tvBf - 2>&1 | tail -n 1 | awk '{print $6;}'| awk -F'/' '{print $4;}'`
> -
> -echo ""
> -echo "## Change owner"
> -time chown -R $USER ./00
> -
> -echo ""
> -echo "## random access"
> -time ~/fs-bench/ra $MAXFILE
> -
> -echo ""
> -echo "## Change mode "
> -time chmod -R go+rw ./00
> -
> -echo ""
> -echo "## Random delete and create"
> -time ~/fs-bench/radc $MAXFILE
> -
> -echo ""
> -echo "## Change mode again"
> -time chmod -R go-rw ./00
> -
> -echo ""
> -echo "## Remove all files and directories"
> -time /bin/rm -fr ./00
> -echo ""
> -echo "## Finish test"
> -ENDT=`date +%s`
> -echo $ENDT
> -date
> -
> -echo -n 'TOTAL(seconds): '
> -expr $ENDT - $STARTT
> diff --git a/testcases/kernel/fs/fs-bench/fs-bench-test2.sh b/testcases/kernel/fs/fs-bench/fs-bench-test2.sh
> deleted file mode 100755
> index 25c67afe0..000000000
> --- a/testcases/kernel/fs/fs-bench/fs-bench-test2.sh
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -#! /bin/bash
> -
> -echo "## Start Test"
> -date
> -date +%s
> -if [ -d ./00 ] ; then
> -/bin/rm -fr ./00 >& /dev/null
> -fi
> -STARTT=`date +%s`
> -echo $STARTT
> -
> -echo ""
> -echo "## Create files "
> -time ~/fs-bench/cr
> -
> -echo ""
> -echo "## tar all "
> -MAXFILE=`tar cBf - 00 | tar tvBf - 2>&1 | tail -n 1 | awk '{print $6;}'| awk -F'/' '{print $4;}'`
> -HALFFILE=`echo "obase=F;ibase=F;$MAXFILE/2" | bc`
> -
> -echo ""
> -echo "## Remove all files and directories"
> -/bin/rm -fr ./00 >& /dev/null
> -
> -echo ""
> -echo "## Create half files"
> -echo create half files
> -time ~/fs-bench/cr $HALFFILE
> -
> -echo ""
> -echo "## Change owner"
> -time chown -R $USER ./00
> -
> -echo ""
> -echo "## random access"
> -time ~/fs-bench/ra $HALFFILE
> -
> -
> -echo ""
> -echo "## Change mode "
> -time chmod -R go+rw ./00
> -
> -echo ""
> -echo "## Random delete and create"
> -time ~/fs-bench/radc $HALFFILE
> -
> -echo ""
> -echo "## Change mode again"
> -time chmod -R go-rw ./00
> -
> -echo ""
> -echo "## Remove all files and directories"
> -time /bin/rm -fr ./00
> -
> -echo ""
> -echo "## Finish test"
> -date
> -ENDT=`date +%s`
> -echo $ENDT
> -echo -n 'TOTAL(seconds): '
> -expr $ENDT - $STARTT
> -
> -
> diff --git a/testcases/kernel/fs/fs-bench/modaltr.sh b/testcases/kernel/fs/fs-bench/modaltr.sh
> deleted file mode 100755
> index e44c17f13..000000000
> --- a/testcases/kernel/fs/fs-bench/modaltr.sh
> +++ /dev/null
> @@ -1,124 +0,0 @@
> -#!/bin/sh
> -#To run this script the following is necessary
> -# 1.kernel should mtd support as module.
> -# 2.kernel should hsve jffs2 support as module.
> -# 3.kernel should have loopback device support .
> -# 4.you should have fs-bench utility (http://h2np.net/tools/fs-bench-0.2.tar.gz)
> -# 5.results will be copied to /tmp/log and /tmp/log1 files
> -
> -#DESCRIPTION: This testscript creates a jffs2 file system type and tests the filesystem test
> -#and places the log in the log directory.The file system test actually creates a tree of large
> -#directories and performs the delete and random delete operations as per the filesystem stress
> -#algorithim and gives a report of real time ,user time,system time taken to perform the file
> -#operations.
> -
> -#script created G.BANU PRAKASH (mailto:prakash.banu@wipro.com).
> -#
> -# This program is free software; you can redistribute it and/or modify
> -# it under the terms of the GNU General Public License as published by
> -# the Free Software Foundation; either version 2 of the License, or
> -# (at your option) any later version.
> -#
> -# 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 Street, Fifth Floor, Boston, MA 02110-1301 USA
> -#
> -
> -MTD_RAM=mtdram
> -MTD_BLOCK=mtdblock
> -JFFS2=jffs2
> -LOOP=loop
> -MTD_BLKDEVS=mtd_blkdevs
> -ZLIB_DEFLATE=zlib_deflate
> -ZLIB_INFLATE=zlib_inflate
> -MTD_CORE=mtdcore
> -MOUNT_DIR=/mnt
> -LOG_DIR=/tmp/log
> -LOG_DIR1=/tmp/log1
> -HOME_DIR=/home
> -BLOCK_DIR=/dev/mtdblock
> -export PATH=$PATH:/sbin
> - if [ $(id -ru) -ne 0 ];
> -then
> - echo "must be root to run this"
> - exit
> -fi
> -
> -
> -
> -lsmod |grep $MTD_RAM
> -
> - if [ $? -ne 0 ];
> -then
> - echo "inserting mtd ram and its dependencies"
> -fi
> -modprobe $MTD_RAM total_size=32768 erase_size=256
> - if [ $? -ne 0 ];
> -then
> - echo "check wheather MTD -mtdram is been compiled in the kernel"
> -fi
> -lsmod |grep $MTD_BLOCK
> - if [ $? -ne 0 ]; then
> - echo "inserting mtdblock and its dependencies"
> -fi
> -modprobe $MTD_BLOCK
> - if [ $? -ne 0 ]; then
> - echo "check wheather mtdblock is been compiled in the kernel"
> -fi
> -
> -lsmod |grep $JFFS2
> - if [ $? -ne 0 ]; then
> - echo "inserting jffs2 and its dependencies"
> -fi
> -modprobe $JFFS2
> - if [ $? -ne 0 ]; then
> - echo "check wheather jffs2 is been compiled in the kernel"
> -fi
> -
> -lsmod |grep $LOOP
> - if [ $? -ne 0 ]; then
> - echo "inserting loopback device module"
> -fi
> -modprobe $LOOP
> - if [ $? -ne 0 ]; then
> - echo "check wheather loopback device option is been compiled in the kernel"
> -fi
> -mkdir -p $BLOCK_DIR
> -mknod $BLOCK_DIR/0 b 31 0 >/dev/null 2>&1
> -mount -t jffs2 $BLOCK_DIR/0 $MOUNT_DIR
> -mount|grep $JFFS2
> - if [ $? -eq 0 ]; then
> - echo "jffs2 mounted sucessfully"
> - else
> - echo "mount unsucessfull"
> -fi
> -cd $MOUNT_DIR
> -echo "This is will take long time "
> -./test.sh >log 2>&1
> -./test2.sh >log1 2>&1
> -
> -mv log $LOG_DIR
> -mv log1 $LOG_DIR1
> -cd $HOME_DIR
> -
> -
> -#cleanup
> -echo "unmounting $MOUNT_DIR "
> -umount $MOUNT_DIR
> -echo "removing the modules inserted"
> -rmmod $MTD_BLOCK
> -rmmod $MTD_BLKDEVS
> -rmmod $LOOP
> -rmmod $JFFS2
> -rmmod $ZLIB_DEFLATE
> -rmmod $ZLIB_INFLATE
> -rmmod $MTD_RAM
> -rmmod $MTD_CORE
> -rm -rf /dev/mtdblock
> -echo "TEST COMPLETE"
> -echo "RESULTS LOGGED IN FILE /tmp/log and /tmp/log1 "
> diff --git a/testcases/kernel/fs/fs-bench/random-access-del-create.c b/testcases/kernel/fs/fs-bench/random-access-del-create.c
> deleted file mode 100644
> index 1878fd78b..000000000
> --- a/testcases/kernel/fs/fs-bench/random-access-del-create.c
> +++ /dev/null
> @@ -1,136 +0,0 @@
> -/* random-del-create.c (GPL)*/
> -/* Hironobu SUZUKI <hironobu@h2np.net> */
> -
> -#include <stdio.h>
> -#include <sys/stat.h>
> -#include <sys/types.h>
> -#include <fcntl.h>
> -#include <unistd.h>
> -#include <time.h>
> -#include <stdlib.h>
> -#define FAIL 0
> -#define SUCCESS 1
> -
> -#define MAXNUM 0x100000
> -
> -#define MAXERROR 1024
> -
> -extern int box_muler(int, int);
> -extern void create_or_delete(char *);
> -
> -int delete_file(char *filename);
> -int create_file(char *filename);
> -
> -int cfilecount = 0;
> -int dfilecount = 0;
> -int errorcount = 0;
> -
> -int main(int ac, char **av)
> -{
> - int r;
> - char fname[1024];
> - time_t t;
> - int i;
> - int m;
> -
> - if (ac != 2) {
> - printf("%s hex-style-filename \n", av[0]);
> - printf("ex) %s 00022300\n", av[0]);
> - exit(1);
> - }
> - sscanf(av[1], "%x", &m);
> - if (m < 1 || m > MAXNUM) {
> - printf("out of size %d\n", m);
> - exit(1);
> - }
> -
> - time(&t);
> - srandom((unsigned int)getpid() ^
> - (((unsigned int)t << 16) | (unsigned int)t >> 16));
> -
> - /* 00/00/00/00 */
> - for (i = 0; i < m; i++) {
> - r = random() % m;
> - sprintf(fname, "00/%2.2x/%2.2x/00%2.2x%2.2x%2.2x",
> - ((r >> 16) & 0xFF),
> - ((r >> 8) & 0xFF),
> - ((r >> 16) & 0xFF), ((r >> 8) & 0xFF), (r & 0xFF));
> - create_or_delete(fname);
> - }
> - fprintf(stderr, "Total create files: %d\n", cfilecount);
> - fprintf(stderr, "Total delete files: %d\n", dfilecount);
> - fprintf(stderr, "Total error : %d\n", errorcount);
> - exit(0);
> -}
> -
> -#define MAXFSIZE (192*1024)
> -#define AVEFSIZE (MAXFSIZE/2)
> -#define POOLDISKSPACE (AVEFSIZE*128)
> -
> -static int disk_space_pool = 0;
> -void create_or_delete(char *fname)
> -{
> - int r;
> -
> - r = (random() & 1);
> - if (r && disk_space_pool > POOLDISKSPACE) {
> - /* create */
> - create_file(fname);
> - } else {
> - delete_file(fname);
> - }
> - if ((errorcount > dfilecount || errorcount > cfilecount)
> - && (errorcount > MAXERROR)) {
> - fprintf(stderr, "too much error -- stop\n");
> - fprintf(stderr, "Total create files: %d\n", cfilecount);
> - fprintf(stderr, "Total delete files: %d\n", dfilecount);
> - fprintf(stderr, "Total error : %d\n", errorcount);
> - exit(1);
> - }
> -}
> -
> -int create_file(char *filename)
> -{
> - int fd;
> - int randomsize;
> - char wbuf[MAXFSIZE];
> - if ((fd = creat(filename, S_IRWXU)) < 0) {
> - errorcount++;
> - return (-1);
> - }
> - if ((randomsize = box_muler(0, MAXFSIZE)) < 0) {
> - randomsize = MAXFSIZE;
> - }
> - if (write(fd, wbuf, randomsize) < 0) {
> - errorcount++;
> - close(fd);
> - return (-1);
> - }
> - cfilecount++;
> - disk_space_pool -= randomsize;
> - close(fd);
> -
> - return 0;
> -}
> -
> -#include <sys/stat.h>
> -#include <unistd.h>
> -
> -int delete_file(char *filename)
> -{
> - struct stat buf;
> - int st;
> - st = stat(filename, &buf);
> - if (st < 0) {
> - errorcount++;
> - return (-1);
> - }
> - disk_space_pool += buf.st_size;
> - if (unlink(filename) < 0) {
> - errorcount++;
> - return (-1);
> - }
> - dfilecount++;
> -
> - return 0;
> -}
> diff --git a/testcases/kernel/fs/fs-bench/random-access.c b/testcases/kernel/fs/fs-bench/random-access.c
> deleted file mode 100644
> index c2f32b86e..000000000
> --- a/testcases/kernel/fs/fs-bench/random-access.c
> +++ /dev/null
> @@ -1,92 +0,0 @@
> -/* random-access.c (GPL)*/
> -/* Hironobu SUZUKI <hironobu@h2np.net> */
> -#include <stdio.h>
> -#include <errno.h>
> -#include <sys/stat.h>
> -#include <sys/types.h>
> -#include <fcntl.h>
> -#include <unistd.h>
> -#include <time.h>
> -#include <stdlib.h>
> -#define FAIL 0
> -#define SUCCESS 1
> -
> -static int openlog[2] = { 0, 0 };
> -
> -#define MAXNUM 0x100000
> -
> -void open_read_close(char *fname);
> -
> -int nullfd;
> -
> -int main(int ac, char **av)
> -{
> - int r;
> - char fname[1024];
> - time_t t;
> - int i;
> - int m;
> -
> - if (ac != 2) {
> - printf("%s hex-style-filename \n", av[0]);
> - printf("ex) %s 00022300\n", av[0]);
> - exit(1);
> - }
> - sscanf(av[1], "%x", &m);
> - if (m < 1 || m > MAXNUM) {
> - printf("out of size %d\n", m);
> - exit(1);
> - }
> -
> - time(&t);
> - srandom((unsigned int)getpid() ^
> - (((unsigned int)t << 16) | (unsigned int)t >> 16));
> -
> - if ((nullfd = open("/dev/null", O_WRONLY)) < 0) {
> - perror("/dev/null");
> - exit(1);
> - }
> -
> - /* 00/00/00/00 */
> - for (i = 0; i < m; i++) {
> - r = random() % m;
> - sprintf(fname, "00/%2.2x/%2.2x/00%2.2x%2.2x%2.2x",
> - ((r >> 16) & 0xFF),
> - ((r >> 8) & 0xFF),
> - ((r >> 16) & 0xFF), ((r >> 8) & 0xFF), (r & 0xFF));
> - open_read_close(fname);
> - }
> - close(nullfd);
> - printf("Success:\t%d\nFail:\t%d\n", openlog[SUCCESS], openlog[FAIL]);
> - exit(0);
> -}
> -
> -#define BUFS 8192
> -void open_read_close(char *fname)
> -{
> - int fd;
> - char buf[BUFS];
> - int c;
> -
> - if ((fd = open(fname, O_RDONLY)) < 0) {
> - openlog[FAIL]++;
> - close(fd);
> - return;
> - }
> - openlog[SUCCESS]++;
> - while ((c = read(fd, buf, BUFS)) > 0) {
> - if (write(nullfd, buf, c) < 0) {
> - perror("/dev/null");
> - printf("Opened\t %d\nUnopend:\t%d\n", openlog[SUCCESS],
> - openlog[FAIL]);
> - exit(1);
> - }
> - }
> - if (c < 0) {
> - perror(fname);
> - printf("Opened\t %d\nUnopend:\t%d\n", openlog[SUCCESS],
> - openlog[FAIL]);
> - exit(1);
> - }
> - close(fd);
> -}
> diff --git a/testcases/kernel/fs/fs-bench/random-del-create.c b/testcases/kernel/fs/fs-bench/random-del-create.c
> deleted file mode 100644
> index 345031f28..000000000
> --- a/testcases/kernel/fs/fs-bench/random-del-create.c
> +++ /dev/null
> @@ -1,134 +0,0 @@
> -/* random-del-create.c (GPL)*/
> -/* Hironobu SUZUKI <hironobu@h2np.net> */
> -
> -#include <stdio.h>
> -#include <sys/stat.h>
> -#include <sys/types.h>
> -#include <fcntl.h>
> -#include <unistd.h>
> -#include <time.h>
> -#include <stdlib.h>
> -#define FAIL 0
> -#define SUCCESS 1
> -
> -static int openlog[2] = { 0, 0 };
> -
> -#define MAXNUM 0x100000
> -
> -#define MAXERROR 1024
> -
> -extern int box_muler(int, int);
> -extern void create_or_delete(char *);
> -
> -int cfilecount = 0;
> -int dfilecount = 0;
> -int errorcount = 0;
> -
> -int main(int ac, char **av)
> -{
> - int r;
> - char fname[1024];
> - time_t t;
> - int i;
> - int m;
> -
> - if (ac != 2) {
> - printf("%s hex-style-filename \n", av[0]);
> - printf("ex) %s 00022300\n", av[0]);
> - exit(1);
> - }
> - sscanf(av[1], "%x", &m);
> - if (m < 1 || m > MAXNUM) {
> - printf("out of size %d\n", m);
> - exit(1);
> - }
> -
> - time(&t);
> - srandom((unsigned int)getpid() ^
> - (((unsigned int)t << 16) | (unsigned int)t >> 16));
> -
> - /* 00/00/00/00 */
> - for (i = 0; i < m; i++) {
> - r = random() % m;
> - sprintf(fname, "00/%2.2x/%2.2x/00%2.2x%2.2x%2.2x",
> - ((r >> 16) & 0xFF),
> - ((r >> 8) & 0xFF),
> - ((r >> 16) & 0xFF), ((r >> 8) & 0xFF), (r & 0xFF));
> - create_or_delete(fname);
> - }
> - fprintf(stderr, "Total create files: %d\n", cfilecount);
> - fprintf(stderr, "Total delete files: %d\n", dfilecount);
> - fprintf(stderr, "Total error : %d\n", errorcount);
> - exit(0);
> -}
> -
> -#define MAXFSIZE (192*1024)
> -#define AVEFSIZE (MAXFSIZE/2)
> -#define POOLDISKSPACE (AVEFSIZE*128)
> -
> -static int disk_space_pool = 0;
> -void create_or_delete(char *fname)
> -{
> - int r;
> - int fsize;
> -
> - r = (random() & 1);
> - if (r && disk_space_pool > POOLDISKSPACE) {
> - /* create */
> - create_file(fname);
> - } else {
> - delete_file(fname);
> - }
> - if ((errorcount > dfilecount || errorcount > cfilecount)
> - && (errorcount > MAXERROR)) {
> - fprintf(stderr, "too much error -- stop\n");
> - fprintf(stderr, "Total create files: %d\n", cfilecount);
> - fprintf(stderr, "Total delete files: %d\n", dfilecount);
> - fprintf(stderr, "Total error : %d\n", errorcount);
> - exit(1);
> - }
> -}
> -
> -int create_file(char *filename)
> -{
> - int fd;
> - int randomsize;
> - char wbuf[MAXFSIZE];
> - if ((fd = creat(filename, S_IRWXU)) < 0) {
> - errorcount++;
> - return (-1);
> - }
> - if ((randomsize = box_muler(0, MAXFSIZE)) < 0) {
> - randomsize = MAXFSIZE;
> - }
> - if (write(fd, wbuf, randomsize) < 0) {
> - errorcount++;
> - close(fd);
> - return (-1);
> - }
> - cfilecount++;
> - disk_space_pool -= randomsize;
> - close(fd);
> - return 0;
> -}
> -
> -#include <sys/stat.h>
> -#include <unistd.h>
> -
> -int delete_file(char *filename)
> -{
> - struct stat buf;
> - int st;
> - st = stat(filename, &buf);
> - if (st < 0) {
> - errorcount++;
> - return (-1);
> - }
> - disk_space_pool += buf.st_size;
> - if (unlink(filename) < 0) {
> - errorcount++;
> - return (-1);
> - }
> - dfilecount++;
> - return 0;
> -}
More information about the ltp
mailing list