X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=generator%2Fgenerator_types.ml;h=50e960405000a16005d3b9cf3b68c1f3494a2cf6;hb=aa8a9ebf29b7fdc97467e911560a1a7a774e9e1f;hp=262fb2057193e12cbdefcd444ab436e910b1f867;hpb=14490c3e1aac61c6ac90f28828896683f64f0dc9;p=libguestfs.git diff --git a/generator/generator_types.ml b/generator/generator_types.ml index 262fb20..50e9604 100644 --- a/generator/generator_types.ml +++ b/generator/generator_types.ml @@ -1,5 +1,5 @@ (* libguestfs - * Copyright (C) 2009-2010 Red Hat Inc. + * Copyright (C) 2009-2011 Red Hat 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 @@ -185,6 +185,25 @@ and argt = *) | FileIn of string | FileOut of string + (* This specifies an opaque pointer that is passed through + * untouched. Only non-daemon functions are supported. + * + * Pointer ("foo *", "bar") translates to "foo *bar" in the + * C API. The pointer ("bar") cannot be NULL. + * + * This is less well supported in other language bindings: + * if the pointer type is known then we may be able to produce + * a suitable binding, otherwise this is translated into a 64 + * bit int. + * + * Functions with this parameter type are not supported at all + * in guestfish (the function must be declared "NotInFish" else + * you will get an error). Also the function cannot contain + * tests, although we should fix this in future. + *) + | Pointer of (string * string) + +type errcode = [ `CannotReturnError | `ErrorIsMinusOne | `ErrorIsNULL ] type flags = | ProtocolLimitWarning (* display warning about protocol size limits *) @@ -201,38 +220,7 @@ and fish_output_t = | FishOutputOctal (* for int return, print in octal *) | FishOutputHexadecimal (* for int return, print in hex *) -(* You can supply zero or as many tests as you want per API call. - * - * Note that the test environment has 3 block devices, of size 500MB, - * 50MB and 10MB (respectively /dev/sda, /dev/sdb, /dev/sdc), and - * a fourth ISO block device with some known files on it (/dev/sdd). - * - * Note for partitioning purposes, the 500MB device has 1015 cylinders. - * Number of cylinders was 63 for IDE emulated disks with precisely - * the same size. How exactly this is calculated is a mystery. - * - * The ISO block device (/dev/sdd) comes from images/test.iso. - * - * To be able to run the tests in a reasonable amount of time, - * the virtual machine and block devices are reused between tests. - * So don't try testing kill_subprocess :-x - * - * Between each test we blockdev-setrw, umount-all, lvm-remove-all. - * - * Don't assume anything about the previous contents of the block - * devices. Use 'Init*' to create some initial scenarios. - * - * You can add a prerequisite clause to any individual test. This - * is a run-time check, which, if it fails, causes the test to be - * skipped. Useful if testing a command which might not work on - * all variations of libguestfs builds. A test that has prerequisite - * of 'Always' is run unconditionally. - * - * In addition, packagers can skip individual tests by setting the - * environment variables: eg: - * SKIP_TEST__=1 SKIP_TEST_COMMAND_3=1 (skips test #3 of command) - * SKIP_TEST_=1 SKIP_TEST_ZEROFREE=1 (skips all zerofree tests) - *) +(* See guestfs(3)/EXTENDING LIBGUESTFS. *) type tests = (test_init * test_prereq * test) list and test = (* Run the command sequence and just expect nothing to fail. *) @@ -348,15 +336,16 @@ and test_init = | InitEmpty (* /dev/sda contains a single partition /dev/sda1, with random - * content. /dev/sdb and /dev/sdc may have random content. - * No LVM. + * content. No LVM. *) | InitPartition (* /dev/sda contains a single partition /dev/sda1, which is formatted * as ext2, empty [except for lost+found] and mounted on /. - * /dev/sdb and /dev/sdc may have random content. * No LVM. + * + * Note: for testing filesystem operations, it is quicker to use + * InitScratchFS *) | InitBasicFS @@ -364,7 +353,9 @@ and test_init = * /dev/sda1 (is a PV): * /dev/VG/LV (size 8MB): * formatted as ext2, empty [except for lost+found], mounted on / - * /dev/sdb and /dev/sdc may have random content. + * + * Note: only use this if you really need a freshly created filesystem + * on LVM. Normally you should use InitScratchFS instead. *) | InitBasicFSonLVM @@ -373,6 +364,16 @@ and test_init = *) | InitISOFS + (* /dev/sdb1 (write scratch disk) is mounted on /. The filesystem + * will be empty. + * + * Note that this filesystem is not recreated between tests, and + * could contain random files and directories from previous tests. + * Therefore it is recommended that you create uniquely named files + * and directories for your tests. + *) + | InitScratchFS + (* Sequence of commands for testing. *) and seq = cmd list and cmd = string list