From 5bfc7fd8e38da8bee87abf323e68f8be5937e728 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Fri, 3 Feb 2012 17:57:45 +0100 Subject: tests: add FS-resize test driver * tests/fs-resize.c: New file, to test FAT/HFS resizing. --- tests/fs-resize.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 tests/fs-resize.c (limited to 'tests/fs-resize.c') diff --git a/tests/fs-resize.c b/tests/fs-resize.c new file mode 100644 index 0000000..90bb4c3 --- /dev/null +++ b/tests/fs-resize.c @@ -0,0 +1,76 @@ + +#include +#include + +#include "closeout.h" +#include "configmake.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include "xalloc.h" + +int main(int argc, char **argv) +{ + PedSector start = 0, len = 0; + PedGeometry geom, new_geom; + PedDevice *dev; + PedFileSystem *fs; + PedTimer *g_timer = NULL; + + if (argc != 2 && argc != 4) { + fprintf(stderr, "usage: %s \n" + " %s \n", + argv[0], argv[0]); + return 1; + } + + dev = ped_device_get(argv[1]); + if (!dev) { + fprintf(stderr, "cannot create device %s\n", argv[1]); + return 1; + } + + if (!ped_device_open(dev)) { + fprintf(stderr, "cannot open device %s\n", argv[1]); + return 1; + } + + if (!ped_geometry_init(&geom, dev, 0, dev->length)) { + fprintf(stderr, "cannot initialize geometry\n"); + return 1; + } + + if (argc > 2) { + start = strtoll(argv[2], NULL, 0); + len = strtoll(argv[3], NULL, 0); + } else { + start = 0; + len = dev->length; + } + + if (!ped_geometry_init(&new_geom, dev, start, len)) { + fprintf(stderr, "cannot initialize new geometry\n"); + return 1; + } + + fs = ped_file_system_open(&geom); + if (!fs) { + fprintf(stderr, "cannot read fs\n"); + return 1; + } + + if (!ped_file_system_resize(fs, &new_geom, g_timer)) { + fprintf(stderr, "cannot resize filesystem\n"); + return 1; + } + + ped_file_system_close(fs); + return 0; +} -- cgit v1.2.1