File: test.sh

package info (click to toggle)
btrfs-progs 6.17.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 20,612 kB
  • sloc: ansic: 127,282; sh: 7,915; python: 1,384; makefile: 900; asm: 296
file content (76 lines) | stat: -rwxr-xr-x 1,518 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
# Change fields in super block and do test run of 'btrfs check'

source "$TEST_TOP/common" || exit
source "$TEST_TOP/common.convert" || exit

check_prereq btrfs-sb-mod

setup_root_helper
prepare_test_dev

run_check_mkfs_test_dev
run_check_mount_test_dev
#populate_fs
generate_dataset "small"
generate_dataset "sparse"
run_check_umount_test_dev

# See btrfs-sb-mod --help
fields=(
bytenr
flags
magic
generation
root
chunk_root
log_root
total_bytes
bytes_used
root_dir_objectid
num_devices
sectorsize
nodesize
stripesize
sys_chunk_array_size
chunk_root_generation
compat_flags
compat_ro_flags
incompat_flags
csum_type
root_level
chunk_root_level
log_root_level
cache_generation
uuid_tree_generation
dev_item.devid
dev_item.total_bytes
dev_item.bytes_used
dev_item.io_align
dev_item.io_width
dev_item.sector_size
dev_item.type
dev_item.generation
dev_item.start_offset
dev_item.dev_group
dev_item.seek_speed
dev_item.bandwidth)

# Attempted changes:
#
# - off by one
# - LSB bit flips
# - 32bit boundary bit flips
# - off by sector
# - off by node
# - endianness swap
for field in "${fields[@]}"; do
	for op in -1 +1 ^2 ^4 ^256 ^2147483648 ^4294967296 ^8589934592 +4096 -4096 +16384 -16384 @; do
		run_check $SUDO_HELPER truncate -s 0 image.test
		run_check $SUDO_HELPER cp --reflink=auto --sparse=auto "$TEST_DEV" image.test
		run_check $SUDO_HELPER "$TOP/btrfs-sb-mod" image.test "$field" "$op"
		run_mayfail $SUDO_HELPER "$TOP/btrfs" check image.test
	done
done

run_check $SUDO_HELPER rm -f -- image.test