diff --git a/golang/src/libguestfs.org/guestfs/guestfs_100_launch_test.go b/golang/src/libguestfs.org/guestfs/guestfs_100_launch_test.go index 7aa6522e7..cddc42d59 100644 --- a/golang/src/libguestfs.org/guestfs/guestfs_100_launch_test.go +++ b/golang/src/libguestfs.org/guestfs/guestfs_100_launch_test.go @@ -20,7 +20,6 @@ package guestfs import ( "testing" - "os" // "sort" ) @@ -31,17 +30,7 @@ func Test100Launch (t *testing.T) { } defer g.Close () - f, ferr := os.Create ("test.img") - if ferr != nil { - t.Errorf ("could not create file: %s", ferr) - } - defer os.Remove ("test.img") - if ferr := f.Truncate (500 * 1024 * 1024); ferr != nil { - t.Errorf ("could not truncate file: %s", ferr) - } - f.Close () - - err := g.Add_drive ("test.img", nil) + err := g.Add_drive_scratch (500 * 1024 * 1024, nil); if err != nil { t.Errorf ("%s", err) } diff --git a/haskell/Guestfs050LVCreate.hs b/haskell/Guestfs050LVCreate.hs index 21434eb2f..bec06f018 100644 --- a/haskell/Guestfs050LVCreate.hs +++ b/haskell/Guestfs050LVCreate.hs @@ -24,6 +24,8 @@ import Control.Monad main = do g <- G.create + {- XXX replace with a call to add_drive_scratch once + optional arguments are supported -} fd <- openFile "test.img" WriteMode hSetFileSize fd (500 * 1024 * 1024) hClose fd diff --git a/java/t/GuestFS100Launch.java b/java/t/GuestFS100Launch.java index ed1d29d3f..2cd4cfdba 100644 --- a/java/t/GuestFS100Launch.java +++ b/java/t/GuestFS100Launch.java @@ -25,16 +25,8 @@ public class GuestFS100Launch public static void main (String[] argv) { try { - // Delete any previous test file if one was left around. - File old = new File ("test.img"); - old.delete (); - - RandomAccessFile f = new RandomAccessFile ("test.img", "rw"); - f.setLength (500 * 1024 * 1024); - f.close (); - GuestFS g = new GuestFS (); - g.add_drive ("test.img"); + g.add_drive_scratch (500 * 1024 * 1024, null); g.launch (); g.pvcreate ("/dev/sda"); @@ -57,9 +49,6 @@ public class GuestFS100Launch g.shutdown (); g.close (); - - File f2 = new File ("test.img"); - f2.delete (); } catch (Exception exn) { System.err.println (exn); diff --git a/lua/tests/050-lvcreate.lua b/lua/tests/050-lvcreate.lua index 0a50c9f47..6cda3ab07 100755 --- a/lua/tests/050-lvcreate.lua +++ b/lua/tests/050-lvcreate.lua @@ -23,12 +23,7 @@ local G = require "guestfs" local g = G.create () -file = io.open ("test.img", "w") -file:seek ("set", 500 * 1024 * 1024) -file:write (' ') -file:close () - -g:add_drive ("test.img") +g:add_drive_scratch (500 * 1024 * 1024) g:launch () @@ -45,5 +40,3 @@ assert (table.getn (lvs) == 2 and g:shutdown () g:close () - -os.remove ("test.img") diff --git a/lua/tests/060-readdir.lua b/lua/tests/060-readdir.lua index ce95a535b..c78bc660b 100755 --- a/lua/tests/060-readdir.lua +++ b/lua/tests/060-readdir.lua @@ -23,12 +23,7 @@ local G = require "guestfs" local g = G.create () -file = io.open ("test.img", "w") -file:seek ("set", 10 * 1024 * 1024) -file:write (' ') -file:close () - -g:add_drive ("test.img") +g:add_drive_scratch (10 * 1024 * 1024) g:launch () @@ -60,5 +55,3 @@ assert (dirs[5]["name"] == "q", "incorrect name in slot 5") g:shutdown () g:close () - -os.remove ("test.img") diff --git a/ocaml/t/guestfs_100_launch.ml b/ocaml/t/guestfs_100_launch.ml index ae90100fa..3bbab0d85 100644 --- a/ocaml/t/guestfs_100_launch.ml +++ b/ocaml/t/guestfs_100_launch.ml @@ -20,12 +20,7 @@ open Unix let () = let g = new Guestfs.guestfs () in - - let fd = openfile "test.img" [O_WRONLY;O_CREAT;O_NOCTTY;O_TRUNC] 0o666 in - ftruncate fd (500 * 1024 * 1024); - close fd; - - g#add_drive "test.img"; + g#add_drive_scratch (Int64.of_int (500 * 1024 * 1024)); g#launch (); g#pvcreate "/dev/sda"; @@ -58,7 +53,6 @@ let () = failwith "Guestfs.readdir returned incorrect result"; g#shutdown (); - g#close (); - unlink "test.img" + g#close () let () = Gc.compact () diff --git a/perl/t/100-launch.t b/perl/t/100-launch.t index 853c91292..8218cfdee 100644 --- a/perl/t/100-launch.t +++ b/perl/t/100-launch.t @@ -17,18 +17,13 @@ use strict; use warnings; -use Test::More tests => 26; +use Test::More tests => 25; use Sys::Guestfs; my $g = Sys::Guestfs->new (); ok ($g); -open FILE, ">test.img"; -truncate FILE, 500*1024*1024; -close FILE; -ok (1); - -$g->add_drive ("test.img"); +$g->add_drive_scratch (500*1024*1024); ok (1); $g->launch (); @@ -76,6 +71,4 @@ $g->shutdown (); ok (1); undef $g; -ok (1); - -unlink ("test.img"); +ok (1) diff --git a/perl/t/810-mkdir-eexist.t b/perl/t/810-mkdir-eexist.t index c7df877ce..b5b855644 100644 --- a/perl/t/810-mkdir-eexist.t +++ b/perl/t/810-mkdir-eexist.t @@ -19,7 +19,7 @@ use strict; use warnings; -use Test::More tests => 15; +use Test::More tests => 14; use Errno; @@ -27,13 +27,7 @@ use Sys::Guestfs; my $g = Sys::Guestfs->new (); ok ($g); - -open FILE, ">test.img"; -truncate FILE, 500*1024*1024; -close FILE; -ok (1); - -$g->add_drive ("test.img", format => "raw"); +$g->add_drive_scratch (500*1024*1024); ok (1); $g->launch (); @@ -72,5 +66,3 @@ ok ($err != Errno::EEXIST()); undef $g; ok (1); - -unlink ("test.img"); diff --git a/php/extension/guestfs_php_002.phpt b/php/extension/guestfs_php_002.phpt index 0fa29b0c4..e4d3faf60 100644 --- a/php/extension/guestfs_php_002.phpt +++ b/php/extension/guestfs_php_002.phpt @@ -22,15 +22,7 @@ if ($g == false) { exit; } -$tmp = dirname(__FILE__)."/test.img"; -$size = 100 * 1024 * 1024; -if (! $fp = fopen ($tmp, 'w+')) { - die ("Error: cannot create file '".$tmp."'\n"); -} -ftruncate ($fp, $size); -fclose ($fp); - -if (! guestfs_add_drive ($g, $tmp) || +if (! guestfs_add_drive_scratch ($g, 100 * 1024 * 1024) || ! guestfs_launch ($g) || ! guestfs_part_disk ($g, "/dev/sda", "mbr") || ! guestfs_pvcreate ($g, "/dev/sda1") || @@ -52,8 +44,6 @@ if (!is_int ($version["major"]) || echo ("Error: incorrect return type from guestfs_version\n"); } -unlink ($tmp); - echo ("OK\n"); ?> --EXPECT-- diff --git a/python/t/100-launch.py b/python/t/100-launch.py index 6332a948f..9e25b3656 100644 --- a/python/t/100-launch.py +++ b/python/t/100-launch.py @@ -19,10 +19,7 @@ import os import guestfs g = guestfs.GuestFS (python_return_dict=True) -f = open ("test.img", "w") -f.truncate (500 * 1024 * 1024) -f.close () -g.add_drive ("test.img") +g.add_drive_scratch (500 * 1024 * 1024) g.launch () g.pvcreate ("/dev/sda") @@ -33,5 +30,3 @@ if (g.lvs () != ["/dev/VG/LV1", "/dev/VG/LV2"]): raise "Error: g.lvs() returned incorrect result" g.shutdown () g.close () - -os.unlink ("test.img") diff --git a/ruby/t/tc_100_launch.rb b/ruby/t/tc_100_launch.rb index 4bd8187cb..f6c1c1676 100644 --- a/ruby/t/tc_100_launch.rb +++ b/ruby/t/tc_100_launch.rb @@ -24,11 +24,7 @@ class TestLoad < Test::Unit::TestCase def test_launch g = Guestfs::create() - File.open("test.img", "w") { - |f| f.seek(500*1024*1024); f.write("\0") - } - - g.add_drive("test.img") + g.add_drive_scratch(500*1024*1024) g.launch() g.pvcreate("/dev/sda") @@ -42,7 +38,5 @@ class TestLoad < Test::Unit::TestCase end g.sync() - - File.unlink("test.img") end end diff --git a/ruby/t/tc_800_rhbz507346.rb b/ruby/t/tc_800_rhbz507346.rb index 60822015f..e380b7396 100644 --- a/ruby/t/tc_800_rhbz507346.rb +++ b/ruby/t/tc_800_rhbz507346.rb @@ -23,19 +23,12 @@ require 'guestfs' class TestLoad < Test::Unit::TestCase def test_rhbz507346 g = Guestfs::create() - - File.open("test.img", "w") { - |f| f.seek(10*1024*1024); f.write("\0") - } - - g.add_drive("test.img") + g.add_drive_scratch(10*1024*1024) g.launch() exception = assert_raise TypeError do g.command(1) end assert_match /wrong argument type Fixnum \(expected Array\)/, exception.message - - File.unlink("test.img") end end diff --git a/test-tool/test-tool.c b/test-tool/test-tool.c index 88d8aacd4..8ad75d361 100644 --- a/test-tool/test-tool.c +++ b/test-tool/test-tool.c @@ -45,9 +45,7 @@ #define DEFAULT_TIMEOUT 600 static int timeout = DEFAULT_TIMEOUT; -static char tmpf[] = P_tmpdir "/libguestfs-test-tool-sda-XXXXXX"; -static void make_files (void); static void set_qemu (guestfs_h *g, const char *path, int use_wrapper); static void @@ -192,8 +190,6 @@ main (int argc, char *argv[]) if (qemu) set_qemu (g, qemu, qemu_use_wrapper); - make_files (); - /* Print out any environment variables which may relate to this test. */ for (i = 0; environ[i] != NULL; ++i) { if (STRPREFIX (environ[i], "LIBGUESTFS_")) @@ -224,12 +220,9 @@ main (int argc, char *argv[]) ignore_value (system ("getenforce")); /* Configure the handle. */ - if (guestfs_add_drive_opts (g, tmpf, - GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", - -1) == -1) { + if (guestfs_add_drive_scratch (g, 100*1024*1024, -1) == -1) { fprintf (stderr, - _("libguestfs-test-tool: failed to add drive '%s'\n"), - tmpf); + _("libguestfs-test-tool: failed to add scratch drive\n")); exit (EXIT_FAILURE); } @@ -401,40 +394,3 @@ set_qemu (guestfs_h *g, const char *path, int use_wrapper) guestfs_set_qemu (g, qemuwrapper); atexit (cleanup_wrapper); } - -static void -cleanup_tmpfiles (void) -{ - unlink (tmpf); -} - -static void -make_files (void) -{ - int fd; - - /* Allocate the sparse file for /dev/sda. */ - fd = mkstemp (tmpf); - if (fd == -1) { - perror (tmpf); - exit (EXIT_FAILURE); - } - - if (lseek (fd, 100 * 1024 * 1024 - 1, SEEK_SET) == -1) { - perror ("lseek"); - close (fd); - unlink (tmpf); - exit (EXIT_FAILURE); - } - - if (write (fd, "\0", 1) == -1) { - perror ("write"); - close (fd); - unlink (tmpf); - exit (EXIT_FAILURE); - } - - close (fd); - - atexit (cleanup_tmpfiles); /* Removes tmpf. */ -} diff --git a/tests/bigdirs/test-big-dirs.pl b/tests/bigdirs/test-big-dirs.pl index a5533aeae..47f076023 100755 --- a/tests/bigdirs/test-big-dirs.pl +++ b/tests/bigdirs/test-big-dirs.pl @@ -29,12 +29,7 @@ my $g = Sys::Guestfs->new (); my $nr_files = 1000000; my $image_size = 2*1024*1024*1024; -unlink "test.img"; -open FILE, ">test.img" or die "test.img: $!"; -truncate FILE, $image_size or die "test.img: truncate: $!"; -close FILE or die "test.img: $!"; - -$g->add_drive ("test.img", format => "raw"); +$g->add_drive_scratch ($image_size); $g->launch (); @@ -79,5 +74,3 @@ die unless @a == $nr_files; $g->shutdown (); $g->close (); - -unlink "test.img" diff --git a/tests/btrfs/test-btrfs-subvolume-default.pl b/tests/btrfs/test-btrfs-subvolume-default.pl index 85b150506..fd20fa2dc 100755 --- a/tests/btrfs/test-btrfs-subvolume-default.pl +++ b/tests/btrfs/test-btrfs-subvolume-default.pl @@ -26,16 +26,9 @@ use Sys::Guestfs; # Allow the test to be skipped since btrfs is often broken. exit 77 if $ENV{SKIP_TEST_BTRFS_SUBVOLUME_DEFAULT_PL}; -my $testimg = "test1.img"; - -unlink $testimg; -open FILE, ">$testimg" or die "$testimg: $!"; -truncate FILE, 1024*1024*1024 or die "$testimg: truncate: $!"; -close FILE or die "$testimg: $!"; - my $g = Sys::Guestfs->new (); -$g->add_drive ($testimg, format => "raw"); +$g->add_drive_scratch (1024*1024*1024); $g->launch (); # If btrfs is not available, bail. @@ -94,5 +87,3 @@ $g->mkdir ("/test1/foo/bar/baz"); $g->shutdown (); $g->close (); - -unlink $testimg or die "$testimg: unlink: $!"; diff --git a/tests/c-api/test-last-errno.c b/tests/c-api/test-last-errno.c index 4d9c7baf2..135d67208 100644 --- a/tests/c-api/test-last-errno.c +++ b/tests/c-api/test-last-errno.c @@ -36,9 +36,8 @@ int main (int argc, char *argv[]) { guestfs_h *g; - int fd, r, err; + int r, err; struct guestfs_stat *stat; - const char *filename = "test1.img"; g = guestfs_create (); if (g == NULL) { @@ -46,26 +45,7 @@ main (int argc, char *argv[]) exit (EXIT_FAILURE); } - fd = open (filename, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0666); - if (fd == -1) { - perror (filename); - exit (EXIT_FAILURE); - } - if (ftruncate (fd, 524288000) == -1) { - perror (filename); - close (fd); - unlink (filename); - exit (EXIT_FAILURE); - } - if (close (fd) == -1) { - perror (filename); - unlink (filename); - exit (EXIT_FAILURE); - } - - if (guestfs_add_drive_opts (g, filename, - GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", - -1) == -1) + if (guestfs_add_drive_scratch (g, 524288000, -1) == -1) exit (EXIT_FAILURE); if (guestfs_launch (g) == -1) @@ -137,7 +117,5 @@ main (int argc, char *argv[]) guestfs_close (g); - unlink (filename); - exit (EXIT_SUCCESS); } diff --git a/tests/c-api/test-user-cancel.c b/tests/c-api/test-user-cancel.c index 40a6e5bbc..c0e2540e1 100644 --- a/tests/c-api/test-user-cancel.c +++ b/tests/c-api/test-user-cancel.c @@ -47,10 +47,8 @@ #include "guestfs.h" #include "guestfs-internal-frontend.h" -static const char *filename = "test.img"; static const off_t filesize = 1024*1024*1024; -static void remove_test_img (void); static void *start_test_thread (void *) __attribute__((noreturn)); static off_t random_cancel_posn (void); @@ -68,8 +66,6 @@ int main (int argc, char *argv[]) { guestfs_h *g; - int fd; - char c = 0; pthread_t test_thread; struct test_thread_data data; int fds[2], r, op_error, op_errno, errors = 0; @@ -83,35 +79,7 @@ main (int argc, char *argv[]) exit (EXIT_FAILURE); } - /* Create a test image and test data. */ - fd = open (filename, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY|O_CLOEXEC, 0666); - if (fd == -1) { - perror (filename); - exit (EXIT_FAILURE); - } - - atexit (remove_test_img); - - if (lseek (fd, filesize - 1, SEEK_SET) == (off_t) -1) { - perror ("lseek"); - close (fd); - exit (EXIT_FAILURE); - } - - if (write (fd, &c, 1) != 1) { - perror ("write"); - close (fd); - exit (EXIT_FAILURE); - } - - if (close (fd) == -1) { - perror ("test.img"); - exit (EXIT_FAILURE); - } - - if (guestfs_add_drive_opts (g, filename, - GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", - -1) == -1) + if (guestfs_add_drive_scratch (g, filesize, -1) == -1) exit (EXIT_FAILURE); if (guestfs_launch (g) == -1) @@ -256,12 +224,6 @@ main (int argc, char *argv[]) exit (errors == 0 ? EXIT_SUCCESS : EXIT_FAILURE); } -static void -remove_test_img (void) -{ - unlink (filename); -} - static char buffer[BUFSIZ]; static void * diff --git a/tests/charsets/test-charset-fidelity.c b/tests/charsets/test-charset-fidelity.c index 74fbd6d7f..c669b9d2b 100644 --- a/tests/charsets/test-charset-fidelity.c +++ b/tests/charsets/test-charset-fidelity.c @@ -74,8 +74,6 @@ main (int argc, char *argv[]) { char *str; guestfs_h *g; - char tmp[] = "/tmp/charsetXXXXXX"; - int fd; size_t i; struct filesystem *fs; @@ -91,17 +89,7 @@ main (int argc, char *argv[]) if (g == NULL) error (EXIT_FAILURE, 0, "failed to create handle"); - fd = mkstemp (tmp); - if (fd == -1) - error (EXIT_FAILURE, errno, "mkstemp"); - - if (ftruncate (fd, 1024 * 1024 * 1024) == -1) - error (EXIT_FAILURE, errno, "ftruncate: %s", tmp); - - if (close (fd) == -1) - error (EXIT_FAILURE, errno, "close: %s", tmp); - - if (guestfs_add_drive_opts (g, tmp, -1) == -1) + if (guestfs_add_drive_scratch (g, 1024*1024*1024, -1) == -1) exit (EXIT_FAILURE); if (guestfs_launch (g) == -1) @@ -116,7 +104,6 @@ main (int argc, char *argv[]) } guestfs_close (g); - unlink (tmp); exit (EXIT_SUCCESS); } diff --git a/tests/disk-labels/test-disk-labels.pl b/tests/disk-labels/test-disk-labels.pl index ae1065736..a989c4457 100755 --- a/tests/disk-labels/test-disk-labels.pl +++ b/tests/disk-labels/test-disk-labels.pl @@ -28,12 +28,8 @@ exit 77 if $ENV{SKIP_TEST_DISK_LABELS_PL}; my $g = Sys::Guestfs->new (); # Add two drives. -foreach (["test1.img", "a"], ["test2.img", "b"]) { - my ($output, $label) = @$_; - open FILE, ">$output" or die "$output: $!"; - truncate FILE, 512 * 1024 * 1024 or die "$output: truncate: $!"; - close FILE or die "$output: $!"; - $g->add_drive ($output, readonly => 0, format => "raw", label => $label); +foreach ("a", "b") { + $g->add_drive_scratch (512*1024*1024, label => $_); } $g->launch (); @@ -68,7 +64,4 @@ die unless $labels{"b1"} eq "/dev/sdb1"; die unless exists $labels{"b2"}; die unless $labels{"b2"} eq "/dev/sdb2"; -unlink "test1.img"; -unlink "test2.img"; - exit 0 diff --git a/tests/disks/test-max-disks.pl b/tests/disks/test-max-disks.pl index 706243429..2eb2c3d3b 100755 --- a/tests/disks/test-max-disks.pl +++ b/tests/disks/test-max-disks.pl @@ -32,15 +32,7 @@ printf "max_disks is %d\n", $max_disks; # Create large number of disks. my ($name, $i, $j); for ($i = 0; $i < $max_disks; ++$i) { - $name = sprintf "test%d.img", $i; - #print "adding $name => /dev/sd", drive_name($i), "\n"; - - unlink $name; - open FILE, ">$name" or die "$name: $!"; - truncate FILE, 1024*1024 or die "$name: truncate: $!"; - close FILE or die "$name: $!"; - - $g->add_drive ($name, format => "raw"); + $g->add_drive_scratch (1024*1024); } $g->launch (); @@ -143,11 +135,6 @@ for ($i = 0, $j = 0; $i < $max_disks; ++$i) { $g->shutdown (); $g->close (); -for ($i = 0; $i < $max_disks; ++$i) { - $name = sprintf "test%d.img", $i; - unlink $name; -} - exit ($errors == 0 ? 0 : 1); sub drive_name diff --git a/tests/fuzz/fuzz-inspection.pl b/tests/fuzz/fuzz-inspection.pl index 906f00a4e..9fcd98ee8 100755 --- a/tests/fuzz/fuzz-inspection.pl +++ b/tests/fuzz/fuzz-inspection.pl @@ -33,8 +33,6 @@ $progname =~ s{.*/}{}; my $trace_depth = 0; -my $testimg = "test1.img"; - my $srcdir = $ENV{srcdir} || "."; # Location of tests/data. my $datasrcdir = $srcdir . "/../data"; @@ -86,15 +84,6 @@ $| = 1; print "$progname: random seed: $seed\n"; my $disksize = 1024 * 1024 * 1024; -eval { unlink $testimg }; -open FILE, ">$testimg" or die "$testimg: $!"; -truncate FILE, $disksize or die "$testimg: truncate: $disksize: $!"; -close FILE or die "$testimg: $!"; - -END { - eval { unlink $testimg } -}; - my $g = Sys::Guestfs->new (); # Note this is a fuzz test so the results are different each time it @@ -102,7 +91,7 @@ my $g = Sys::Guestfs->new (); # results can be reproduced. $g->set_trace (1); -$g->add_drive ($testimg, format => "raw"); +$g->add_drive_scratch ($disksize); $g->launch (); if ($iterations == 0) { diff --git a/tests/lvm/test-lvm-mapping.pl b/tests/lvm/test-lvm-mapping.pl index f886dc298..8978e48a3 100755 --- a/tests/lvm/test-lvm-mapping.pl +++ b/tests/lvm/test-lvm-mapping.pl @@ -22,16 +22,9 @@ use warnings; use Sys::Guestfs; -my $testimg = "test.img"; - -unlink $testimg; -open FILE, ">$testimg" or die "$testimg: $!"; -truncate FILE, 256*1024*1024 or die "$testimg: truncate: $!"; -close FILE or die "$testimg: $!"; - my $g = Sys::Guestfs->new (); -$g->add_drive ($testimg, format => "raw"); +$g->add_drive_scratch (256 * 1024 * 1024); $g->launch (); # Create an arrangement of PVs, VGs and LVs. @@ -92,5 +85,3 @@ unless (@lvs_in_VG == 3 && } undef $g; - -unlink $testimg or die "$testimg: unlink: $!"; diff --git a/tests/mount-local/test-parallel-mount-local.c b/tests/mount-local/test-parallel-mount-local.c index 15eb6b428..7eb0f35b6 100644 --- a/tests/mount-local/test-parallel-mount-local.c +++ b/tests/mount-local/test-parallel-mount-local.c @@ -49,7 +49,6 @@ struct thread_state { pthread_t thread; /* Thread handle. */ - char *filename; /* Disk image. */ char *mp; /* Mount point. */ int exit_status; /* Thread exit status. */ }; @@ -82,7 +81,7 @@ main (int argc, char *argv[]) size_t i; char *skip; struct sigaction sa; - int fd, r, errors = 0; + int r, errors = 0; void *status; srandom (time (NULL)); @@ -120,28 +119,7 @@ main (int argc, char *argv[]) printf ("starting test with %zu threads\n", nr_threads); for (i = 0; i < nr_threads; ++i) { - /* Create an image file and a mount point for this thread to use. */ - if (asprintf (&threads[i].filename, "test%zu.img", i) == -1) - error (EXIT_FAILURE, errno, "asprintf"); - if (asprintf (&threads[i].mp, "mp%zu", i) == -1) - error (EXIT_FAILURE, errno, "asprintf"); - - fd = open (threads[i].filename, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, 0600); - if (fd == -1) { - cleanup_thread_state (); - error (EXIT_FAILURE, errno, "open: %s", threads[i].filename); - } - - if (ftruncate (fd, 512*1024*1024) == -1) { - cleanup_thread_state (); - error (EXIT_FAILURE, errno, "truncate: %s", threads[i].filename); - } - - if (close (fd) == -1) { - cleanup_thread_state (); - error (EXIT_FAILURE, errno, "close: %s", threads[i].filename); - } - + /* Create a mount point for this thread to use. */ rmdir (threads[i].mp); if (mkdir (threads[i].mp, 0700) == -1) { cleanup_thread_state (); @@ -196,8 +174,7 @@ start_thread (void *statevp) pthread_exit (&state->exit_status); } - if (guestfs_add_drive_opts (g, state->filename, - GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -1) == -1) + if (guestfs_add_drive_scratch (g, 512*1024*1024, -1) == -1) goto error; if (guestfs_launch (g) == -1) goto error; @@ -406,11 +383,6 @@ cleanup_thread_state (void) size_t i; for (i = 0; i < nr_threads; ++i) { - if (threads[i].filename) { - unlink (threads[i].filename); - free (threads[i].filename); - } - if (threads[i].mp) { guestunmount (threads[i].mp, GUESTUNMOUNT_SILENT|GUESTUNMOUNT_RMDIR); free (threads[i].mp); diff --git a/tests/mountable/test-internal-parse-mountable.c b/tests/mountable/test-internal-parse-mountable.c index e33db76ee..e69902d72 100644 --- a/tests/mountable/test-internal-parse-mountable.c +++ b/tests/mountable/test-internal-parse-mountable.c @@ -27,47 +27,22 @@ #include "guestfs.h" #include "guestfs-internal-all.h" -#define IMG "test.img" - int main (int argc, char *argv[]) { - int fd; guestfs_h *g; struct guestfs_internal_mountable *mountable; const char *devices[] = { "/dev/VG/LV", NULL }; - fd = open (IMG, O_WRONLY | O_CREAT | O_TRUNC, 0600); - if (fd == -1) { - perror ("open " IMG); - exit (EXIT_FAILURE); - } - - if (ftruncate (fd, 1024 * 1024 * 1024) == -1) { - perror ("truncate " IMG " 1G"); - unlink (IMG); - exit (EXIT_FAILURE); - } - - if (close (fd) == -1) { - perror ("close " IMG); - unlink (IMG); - exit (EXIT_FAILURE); - } - g = guestfs_create (); if (g == NULL) { perror ("could not create handle"); exit (EXIT_FAILURE); } - if (guestfs_add_drive_opts (g, IMG, - GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", - GUESTFS_ADD_DRIVE_OPTS_READONLY, 1, - -1) == -1) { + if (guestfs_add_drive_scratch (g, 1024*1024*1024, -1) == -1) { error: guestfs_close (g); - unlink (IMG); exit (EXIT_FAILURE); } @@ -113,7 +88,6 @@ main (int argc, char *argv[]) guestfs_free_internal_mountable (mountable); guestfs_close (g); - unlink (IMG); exit (EXIT_SUCCESS); } diff --git a/tests/selinux/run-test.pl b/tests/selinux/run-test.pl index a55dbc302..13ce14f96 100755 --- a/tests/selinux/run-test.pl +++ b/tests/selinux/run-test.pl @@ -105,18 +105,12 @@ my $g = Sys::Guestfs->new (); #$g->set_selinux (1) if $test_type eq "selinux"; -my $testimg = "test.img"; -open FILE, ">$testimg" or die "$testimg: $!"; -truncate FILE, 256*1024*1024 or die "$testimg: truncate: $!"; -close FILE or die "$testimg: $!"; - -$g->add_drive ($testimg, format => "raw"); +$g->add_drive_scratch (256*1024*1024); $g->launch (); unless ($g->feature_available (["linuxxattrs"])) { print "$prog $test_type $test_via: test skipped because 'linuxxattrs' feature not available.\n"; $g->close (); - unlink $testimg; exit 77 } @@ -158,7 +152,6 @@ if ($test_via eq "direct") { # Finish up. $g->shutdown (); $g->close (); -unlink $testimg or die "$testimg: $!"; exit ($errors == 0 ? 0 : 1);