common/config: Allow environment defined btrfs mkfs options
[xfstests-dev.git] / tools / interop
1 #!/usr/sbin/perl
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2001 Silicon Graphics, Inc.  All Rights Reserved.
4 #
5 sub setup()
6 {
7     $PATH="$PATH:/usr/local/bin/ptools:/sbin:/usr/sbin";
8     $DISPLAY="clouds:0";
9     
10     if ("$HOST" eq "bruce") {
11         $TOOLS="/home/dxm/isms/slinx-xfs/cmd/xfs/tools";
12         $SCRATCH_DEV="/dev/sdf1";
13         $SCRATCH_MNT="/mnt/xfs3";
14         $MKFS="/sbin/mkfs -t xfs -f";
15         $SUDO="/home/dxm/su -c";
16         $MOUNT="/bin/mount -t xfs";
17         $UMOUNT="/bin/umount";
18         $MKFS_EXTRA="-f";
19     } elsif ("$HOST" eq "whack") {
20         $TOOLS="/hosts/snort/build1/people/dxm/isms/slinx-xfs/cmd/xfs/tools";
21         $SCRATCH_DEV="/dev/dsk/20000080e5114459/lun2s0/c2p1";
22         $SCRATCH_MNT="/lun2";
23         $MKFS="/sbin/mkfs";
24         $SUDO="su root -c";
25         $MOUNT="/sbin/mount -t xfs";
26         $UMOUNT="/sbin/umount";
27         $MKFS_EXTRA="";
28     } else {
29         die "unconfigured host \"$HOST\"\n"
30     }
31 }
32
33 sub run_no_check(@)
34 {
35     system(@_);
36 }
37
38 sub run(@)
39 {
40     system(@_)  == 0
41         || die "ERROR \"" . join(" ",@_) . "\" returned error\n";
42 }
43
44 sub run_expect_fail(@)
45 {
46     system(@_)  == 0
47         && die "ERROR \"" . join(" ",@_) . "\" returned non-error\n";
48 }
49
50 sub umount_no_check()
51 {
52     run_no_check("umount $SCRATCH_DEV");
53 }
54
55 sub umount()
56 {
57     run("umount $SCRATCH_DEV");
58 }
59
60 sub mount($)
61 {
62     my ($ops)=@_;
63     run("mount -t xfs $ops $SCRATCH_DEV $SCRATCH_MNT");
64 }
65
66 chomp($HOST=`hostname -s`);
67
68 die "usage: $ARGV0 <operation> [parameters]\n" unless (scalar(@ARGV));
69 print "*** $HOST: Interop started\n";
70 print "    *** ", join(" ", @ARGV), "\n";
71
72 setup();
73
74 $op=shift(@ARGV);
75
76 umount_no_check();
77
78 if ($op eq "init") {
79
80     run("mkfs -t xfs $MKFS_EXTRA $SCRATCH_DEV");
81     
82 } elsif ($op eq "test") {
83
84     run("xfs_repair -n $SCRATCH_DEV");
85     
86 } elsif ($op eq "easy") {
87
88     mount("");
89     system("mount");
90     mkdir("$SCRATCH_MNT/fish",0777);
91     
92 } elsif ($op eq "check") {
93
94     mount("-o ro");
95     system("cd $SCRATCH_MNT ; $TOOLS/fs-walk .");
96
97 } else {
98     die "unknown operation \"$op\"\n";
99 }
100
101 umount_no_check();