summaryrefslogtreecommitdiffstats
path: root/t/lib-chunk.sh
blob: a7cd9c3c6dff6e21eaf4420596809ddb8605730c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Shell library for working with "chunk" files (commit-graph, midx, etc).

# corrupt_chunk_file <fn> <chunk> <offset> <bytes>
#
# Corrupt a chunk-based file (like a commit-graph) by overwriting the bytes
# found in the chunk specified by the 4-byte <chunk> identifier. If <offset> is
# "clear", replace the chunk entirely. Otherwise, overwrite data <offset> bytes
# into the chunk.
#
# The <bytes> are interpreted as pairs of hex digits (so "000000FE" would be
# big-endian 254).
corrupt_chunk_file () {
	fn=$1; shift
	perl "$TEST_DIRECTORY"/lib-chunk/corrupt-chunk-file.pl \
		"$@" <"$fn" >"$fn.tmp" &&
	mv "$fn.tmp" "$fn"
}