]>
Commit | Line | Data |
---|---|---|
8ab664a7 KZ |
1 | #!/bin/bash |
2 | # | |
3 | # Copyright (C) 2018 Karel Zak <kzak@redhat.com> | |
4 | # | |
5 | # This script makes a copy of relevant files from /sys and /proc. | |
314adce6 | 6 | # The files are useful for lsblk(1) regression tests. |
8ab664a7 KZ |
7 | # |
8 | progname=$(basename $0) | |
9 | ||
10 | if [ -z "$1" ]; then | |
11 | echo -e "\nusage: $progname <testname>\n" | |
12 | exit 1 | |
13 | fi | |
14 | ||
15 | TS_DUMP="$1" | |
314adce6 KZ |
16 | TS_NAME=$(basename ${TS_DUMP}) |
17 | TS_TARBALL="$TS_DUMP.tar.xz" | |
8ab664a7 KZ |
18 | TS_CMD_LSBLK=${TS_CMD_LSBLK:-"lsblk"} |
19 | ||
20 | # | |
21 | # procfs | |
22 | # | |
23 | mkdir -p $TS_DUMP/proc | |
24 | mkdir -p $TS_DUMP/proc/self | |
25 | cp /proc/self/mountinfo ${TS_DUMP}/proc/self | |
26 | cp /proc/swaps ${TS_DUMP}/proc/swaps | |
27 | cp /proc/version ${TS_DUMP}/proc/version | |
28 | ||
29 | ||
30 | # | |
31 | # sysfs | |
32 | # | |
33 | mkdir -p $TS_DUMP/sys/{block,dev/block} | |
34 | cp --no-dereference /sys/dev/block/* ${TS_DUMP}/sys/dev/block | |
35 | cp --no-dereference /sys/block/* ${TS_DUMP}/sys/block | |
36 | ||
37 | DEVS=$(find /sys/dev/block/ -type l) | |
38 | for x in ${DEVS}; do | |
39 | DEV="/sys/dev/block/$(readlink $x)" | |
40 | ||
41 | mkdir -p ${TS_DUMP}/${DEV} | |
42 | ||
43 | # attributes | |
44 | for f in $(find ${DEV} -type f -not -path '*/trace/*' -not -path '*/uevent'); do | |
45 | if [ ! -f ${TS_DUMP}/${f} ]; then | |
46 | SUB=$(dirname $f) | |
47 | mkdir -p ${TS_DUMP}/${SUB} | |
48 | cp $f ${TS_DUMP}/$f 2> /dev/null | |
49 | fi | |
50 | done | |
51 | ||
52 | # symlinks (slave, holders, etc.) | |
53 | for f in $(find ${DEV} -type l -not -path '*/subsystem' -not -path '*/bdi'); do | |
54 | if [ ! -f ${TS_DUMP}/${f} ]; then | |
55 | SUB=$(dirname $f) | |
56 | mkdir -p ${TS_DUMP}/${SUB} | |
57 | cp --no-dereference $f ${TS_DUMP}/$f | |
58 | fi | |
59 | done | |
60 | ||
61 | # device/ files | |
2bb3aa36 | 62 | if [ -d ${DEV}/device/ ]; then |
8ab664a7 KZ |
63 | for f in $(find ${DEV}/device/ -maxdepth 1 -type f -not -path '*/uevent'); do |
64 | if [ ! -f ${TS_DUMP}/${f} ]; then | |
65 | SUB=$(dirname $f) | |
66 | cp $f ${TS_DUMP}/$f 2> /dev/null | |
67 | fi | |
68 | done | |
69 | fi | |
70 | ||
71 | done | |
72 | ||
93c27237 KZ |
73 | # |
74 | # udev a lsblk specific | |
75 | # | |
76 | mkdir -p $TS_DUMP/dev | |
77 | DEVS=$(lsblk --noheadings --output PATH) | |
78 | for d in $DEVS; do | |
79 | ||
80 | # udev | |
81 | udevadm info --query=property $d > $TS_DUMP/$d | |
82 | ||
83 | # lsblk | |
84 | echo "OWNER=$($TS_CMD_LSBLK --noheadings --nodeps --output OWNER $d)" >> $TS_DUMP/$d | |
85 | echo "GROUP=$($TS_CMD_LSBLK --noheadings --nodeps --output GROUP $d)" >> $TS_DUMP/$d | |
86 | echo "MODE=$($TS_CMD_LSBLK --noheadings --nodeps --output MODE $d)" >> $TS_DUMP/$d | |
87 | done | |
8ab664a7 KZ |
88 | |
89 | function mk_output { | |
314adce6 KZ |
90 | local cols="NAME,${2}" |
91 | local subname="$1" | |
8ab664a7 | 92 | |
314adce6 KZ |
93 | echo "$cols" > ${TS_DUMP}/${subname}.cols |
94 | $TS_CMD_LSBLK -o ${cols} > ${TS_DUMP}/lsblk-${TS_NAME}-${subname} | |
8ab664a7 KZ |
95 | } |
96 | ||
314adce6 KZ |
97 | |
98 | LANG="POSIX" | |
99 | LANGUAGE="POSIX" | |
100 | LC_ALL="POSIX" | |
101 | CHARSET="UTF-8" | |
102 | ||
103 | export LANG LANGUAGE LC_ALL CHARSET | |
104 | ||
8ab664a7 KZ |
105 | # |
106 | # lsblk info | |
107 | # | |
108 | $TS_CMD_LSBLK -V &> ${TS_DUMP}/version | |
109 | ||
110 | mk_output basic KNAME,MAJ:MIN,RM,SIZE,TYPE,MOUNTPOINT | |
111 | mk_output vendor MODEL,VENDOR,REV | |
112 | mk_output state RO,RM,HOTPLUG,RAND,STATE,ROTA,TYPE,PKNAME,SCHED | |
113 | mk_output rw RA,WSAME | |
114 | mk_output topo SIZE,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,RQ-SIZE | |
115 | mk_output discard DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO | |
116 | mk_output zone ZONED | |
117 | ||
118 | ||
314adce6 | 119 | tar --xz -cvf ${TS_TARBALL} $TS_DUMP |
8ab664a7 KZ |
120 | rm -rf $TS_DUMP |
121 | ||
314adce6 | 122 | echo -e "\nPlease, send ${TS_TARBALL} to util-linux upstream. Thanks!\n" |
8ab664a7 KZ |
123 | |
124 |