]> git.proxmox.com Git - pve-cluster.git/blob - data/cts/create_vm_test.pl
6af97a703cb97f5fb371b768af0e88c8a41fcaa5
[pve-cluster.git] / data / cts / create_vm_test.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4 use POSIX;
5 use File::Path qw(make_path remove_tree);
6 use IO::File;
7
8 my (undef, $nodename) = POSIX::uname();
9
10 sub safe_mkdir {
11 my $dir = shift;
12 (mkdir $dir) || die "safe_mkdir $dir failed - $!\n";
13 }
14
15 sub safe_rmdir {
16 my $dir = shift;
17 (rmdir $dir) || die "safe_rmdir $dir failed - $!\n";
18 }
19
20 sub safe_unlink {
21 my $file = shift;
22 (unlink $file) || die "safe_unlink $file failed - $!\n";
23 }
24
25 sub create_vmfile {
26 my ($filename) = shift;
27
28 my $fh = new IO::File $filename, O_RDWR|O_CREAT|O_EXCL;
29 die "cant create file $filename - $!" if !defined $fh;
30
31 #my $data = "$filename\n" x 30;
32 my $data = "0" x 1024;
33
34 (print $fh $data) || die "write $filename failed\n";
35 close ($fh);
36
37 #system("cat $filename");
38 #system("df -h /etc/pve");
39 }
40
41 sub start_vmtest {
42 my ($subdir) = @_;
43
44 for (my $i = 1000; $i < 1100; $i++) {
45 my $filename = "$subdir/${i}.conf";
46 create_vmfile($filename);
47 }
48
49 for (my $i = 1000; $i < 1100; $i++) {
50 my $filename = "$subdir/${i}.conf";
51 safe_unlink($filename);
52 }
53 }
54
55 sub start_subtest {
56 my ($subdir) = @_;
57
58 safe_mkdir $subdir;
59
60 start_vmtest($subdir);
61
62 safe_rmdir $subdir;
63 }
64
65 sub start_test {
66 my ($subdir) = @_;
67
68 safe_mkdir $subdir;
69
70 start_subtest("$subdir/qemu-server");
71
72 safe_rmdir $subdir;
73 }
74
75
76 my $basedir = "/etc/pve/nodes/";
77
78 my $testdir = "$basedir/${nodename}-test1";
79
80 remove_tree($testdir);
81
82 while(1) {
83 eval {
84 local $SIG{INT} = sub { die "interrupted" };
85 start_test("$testdir");
86 };
87 my $err = $@;
88
89 system("date; df -h /etc/pve");
90
91 die $err if $err;
92 }