File: create_ewfacquirestream_option_sets.sh

package info (click to toggle)
libewf 20171104-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 19,480 kB
  • sloc: ansic: 331,188; sh: 7,656; cpp: 3,885; makefile: 2,182; yacc: 1,094; python: 449; lex: 391; sed: 16
file content (144 lines) | stat: -rwxr-xr-x 3,475 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/bin/bash
# Script to create the ewfacquirestream option sets
#
# Version: 20160402

EXIT_SUCCESS=0;
EXIT_FAILURE=1;
EXIT_IGNORE=77;

INPUT_GLOB="*.[Rr][Aa][Ww]";

list_contains()
{
	LIST=$1;
	SEARCH=$2;

	for LINE in ${LIST};
	do
		if test ${LINE} = ${SEARCH};
		then
			return ${EXIT_SUCCESS};
		fi
	done

	return ${EXIT_FAILURE};
}

TEST_PROFILE_DIR="input/.ewfacquirestream";
IGNORE_FILE="${TEST_PROFILE_DIR}/ignore";
IGNORE_LIST="";

if test -f "${IGNORE_FILE}";
then
	IGNORE_LIST=`cat ${IGNORE_FILE} | sed '/^#/d'`;
fi

for INPUT_DIR in input/*;
do
	if ! test -d "${INPUT_DIR}";
	then
		continue
	fi
	INPUT_NAME=`basename ${INPUT_DIR}`;

	if list_contains "${IGNORE_LIST}" "${INPUT_NAME}";
	then
		continue
	fi
	TEST_SET_DIR="${TEST_PROFILE_DIR}/${INPUT_NAME}";

	if ! test -d "${TEST_SET_DIR}";
	then
		mkdir "${TEST_SET_DIR}";
	fi
	INPUT_FILES=`ls ${INPUT_DIR}/${INPUT_GLOB}`;

	for INPUT_FILE in ${INPUT_FILES};
	do
		INPUT_NAME=`basename ${INPUT_FILE}`;

		FILE_SIZE=`ls -al ${INPUT_FILE} | awk '{ print $5 }'`;

		# Use a small input file for most of the functional tests.
		if test ${FILE_SIZE} -le 1474560;
		then
			# Test the different supported formats. 
			for FORMAT in encase2 encase3 encase4 encase5 encase6 encase7 encase7-v2 ewfx ftk linen5 linen6 linen7;
			do
				OUTPUT_FILE="${TEST_SET_DIR}/${INPUT_NAME}.format:${FORMAT}";

				echo "Creating option set file: ${OUTPUT_FILE}";

				echo "-f${FORMAT} -j0" > "${OUTPUT_FILE}";
			done

			for FORMAT in encase7 encase7-v2;
			do
				# Test the different supported compression methods and levels.
				for COMPRESSION_METHOD in deflate;
				do
					# TODO: add bzip2 support for encase7-v2
					if test COMPRESSION_METHOD = "bzip2";
					then
						continue;
					fi

					for COMPRESSION_LEVEL in none empty-block fast best;
					do
						OUTPUT_FILE="${TEST_SET_DIR}/${INPUT_NAME}.${COMPRESSION_METHOD}:${COMPRESSION_LEVEL}:${FORMAT}";

						echo "Creating option set file: ${OUTPUT_FILE}";

						echo "-c${COMPRESSION_METHOD}:${COMPRESSION_LEVEL} -f${FORMAT} -j0" > "${OUTPUT_FILE}";
					done
				done

				# Test the multi segment file handling.
				OUTPUT_FILE="${TEST_SET_DIR}/${INPUT_NAME}.segmentsize:1mib:${FORMAT}";

				echo "Creating option set file: ${OUTPUT_FILE}";

				echo "-cdeflate:none -f${FORMAT} -j0 -S1MiB" > "${OUTPUT_FILE}";
			done

			# Test the different supported chunk sizes.
			for CHUNK_SIZE in 16 32 128 256 512 1024 2048 4096 8192 16384 32768;
			do
				OUTPUT_FILE="${TEST_SET_DIR}/${INPUT_NAME}.blocksize:${CHUNK_SIZE}";

				echo "Creating option set file: ${OUTPUT_FILE}";

				echo "-b${CHUNK_SIZE} -cdeflate:empty-block -fencase7 -j0" > "${OUTPUT_FILE}";
			done

			# Test the different supported formats. 
			for HASHING_METHOD in sha1 sha256;
			do
				OUTPUT_FILE="${TEST_SET_DIR}/${INPUT_NAME}.hash:${HASHING_METHOD}";

				echo "Creating option set file: ${OUTPUT_FILE}";

				echo "-cdeflate:empty-block -d${HASHING_METHOD} -fencase7 -j0" > "${OUTPUT_FILE}";
			done

			OUTPUT_FILE="${TEST_SET_DIR}/${INPUT_NAME}.hash:all";

			echo "Creating option set file: ${OUTPUT_FILE}";

			echo "-cdeflate:empty-block -dsha1,sha256 -fencase7 -j0" > "${OUTPUT_FILE}";
		else
			for FORMAT in encase7 encase7-v2;
			do
				OUTPUT_FILE="${TEST_SET_DIR}/${INPUT_NAME}.format:${FORMAT}";

				echo "Creating option set file: ${OUTPUT_FILE}";

				echo "-cdeflate:empty-block -f${FORMAT} -j4 -x" > "${OUTPUT_FILE}";
			done
		fi
	done
done

exit ${EXIT_SUCCESS};