handle problems with incomplete gzip headers
[python-delta-tar] / runtests.py
CommitLineData
be60ffd0 1#!/usr/bin/env python3
ae48acc8 2
866c42e6
DGM
3# Copyright (C) 2013 Intra2net AG
4#
494b38aa
DGM
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU Lesser General Public License as published
7# by the Free Software Foundation; either version 3 of the License, or
866c42e6
DGM
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
494b38aa 13# GNU Lesser General Public License for more details.
866c42e6
DGM
14#
15# You should have received a copy of the GNU General Public License
494b38aa
DGM
16# along with this program. If not, see
17# <http://www.gnu.org/licenses/lgpl-3.0.html>
866c42e6
DGM
18
19
ae48acc8
ERE
20import unittest
21
3ba1441c 22from testing.test_crypto import HeaderTest, AESGCMTest
8ab92b45 23from testing.test_multivol import MultivolGnuFormatTest, MultivolPaxFormatTest
5fdff89f 24from testing.test_concat_compress import ConcatCompressTest
00b8c150 25from testing.test_recover import \
e25f31ac
PG
26 RecoverCorruptPayloadSingleTest \
27 , RecoverCorruptPayloadMultiTest \
28 , RecoverCorruptPayloadGZSingleTest \
29 , RecoverCorruptPayloadGZMultiTest \
30 , RecoverCorruptPayloadGZAESSingleTest \
31 , RecoverCorruptPayloadGZAESMultiTest \
32 , RecoverCorruptHeaderSingleTest \
33 , RecoverCorruptHeaderMultiTest \
34 , RecoverCorruptHeaderGZSingleTest \
35 , RecoverCorruptHeaderGZMultiTest \
36 , RecoverCorruptHeaderGZAESSingleTest \
37 , RecoverCorruptHeaderGZAESMultiTest \
37ccf5bc
PG
38 , RecoverCorruptTruncateTest \
39 , RecoverCorruptTruncateGZTest \
40 , RecoverCorruptTruncateGZAESTest \
afb2d647 41 , RescueCorruptHeaderCTSizeGZAESTest \
e25f31ac
PG
42 , RecoverCorruptEntireHeaderSingleTest \
43 , RecoverCorruptEntireHeaderMultiTest \
44 , RecoverCorruptEntireHeaderGZSingleTest \
45 , RecoverCorruptEntireHeaderGZMultiTest \
46 , RecoverCorruptEntireHeaderGZAESSingleTest \
47 , RecoverCorruptEntireHeaderGZAESMultiTest \
afb2d647
PG
48 , RescueCorruptLeadingGarbageSingleTest \
49 , RescueCorruptLeadingGarbageMultiTest \
e25f31ac
PG
50 , RecoverCorruptTrailingDataSingleTest \
51 , RecoverCorruptTrailingDataMultiTest \
52 , RecoverCorruptTrailingDataGZSingleTest \
53 , RecoverCorruptTrailingDataGZMultiTest \
54 , RecoverCorruptTrailingDataGZAESSingleTest \
20e1d773
PG
55 , RecoverCorruptTrailingDataGZAESMultiTest \
56 , RecoverCorruptVolumeTest \
57 , RecoverCorruptVolumeGZTest \
3692fd82
PG
58 , RecoverCorruptVolumeGZAESTest \
59 , RecoverCorruptHoleTest \
60 , RecoverCorruptHoleGZTest \
2fe5f6e7 61 , RecoverCorruptHoleGZAESTest \
37ccf5bc
PG
62 , RescueCorruptTruncateTest \
63 , RescueCorruptTruncateGZTest \
64 , RescueCorruptTruncateGZAESTest \
2fe5f6e7
PG
65 , RescueCorruptHoleTest \
66 , RescueCorruptHoleGZTest \
67 , RescueCorruptHoleGZAESTest \
047239f3
PG
68 , GenIndexIntactSingleTest \
69 , GenIndexIntactSingleGZTest \
70 , GenIndexIntactSingleGZAESTest \
71 , GenIndexIntactMultiTest \
72 , GenIndexIntactMultiGZTest \
6e1f5355 73 , GenIndexIntactMultiGZAESTest \
37ccf5bc
PG
74 , GenIndexCorruptTruncateTest \
75 , GenIndexCorruptTruncateGZTest \
76 , GenIndexCorruptTruncateGZAESTest \
6e1f5355
PG
77 , GenIndexCorruptHoleTest \
78 , GenIndexCorruptHoleGZTest \
79 , GenIndexCorruptHoleGZAESTest \
80 , GenIndexCorruptEntireHeaderTest \
81 , GenIndexCorruptEntireHeaderGZTest \
82 , GenIndexCorruptEntireHeaderGZAESTest
83
0112ba0d 84from testing.test_rescue_tar import RescueTarTest
6e812ad9 85from testing.test_encryption import EncryptionTest
1a985013
ERE
86from testing.test_deltatar import (DeltaTarTest, DeltaTar2Test,
87 DeltaTarStreamTest, DeltaTarGzipTest, DeltaTarGzipStreamTest,
88 DeltaTarGzipConcatTest, DeltaTarGzipAes128ConcatTest,
5ed1df9a 89 DeltaTarAes128ConcatTest
ac5e4184 90 )
08bb4b4a 91from testing.test_compression_level import suite
ae48acc8
ERE
92
93if __name__ == "__main__":
0165ca3c
PG
94 import sys
95 if len (sys.argv) == 1:
96 unittest.TextTestRunner().run(suite())
97 unittest.main()
98 else:
99 suite = unittest.TestSuite ()
100 def add (n):
101 ret = False
102 for group in [#testing.test_multivol
103 MultivolGnuFormatTest, MultivolPaxFormatTest
104 # testing.test_concat_compress
105 , ConcatCompressTest
106 # testing.test_rescue_tar
107 , RescueTarTest
108 # testing.test_encryption
109 , EncryptionTest
110 # testing.test_deltatar
111 , DeltaTarTest, DeltaTar2Test
112 , DeltaTarStreamTest, DeltaTarGzipTest
113 , DeltaTarGzipStreamTest, DeltaTarGzipConcatTest
114 , DeltaTarGzipAes128ConcatTest
5ed1df9a 115 , DeltaTarAes128ConcatTest
3ba1441c 116 , HeaderTest, AESGCMTest
e25f31ac 117
20e1d773 118 # testing.test_recover
e25f31ac
PG
119 , RecoverCorruptPayloadSingleTest
120 , RecoverCorruptPayloadMultiTest
121 , RecoverCorruptPayloadGZSingleTest
122 , RecoverCorruptPayloadGZMultiTest
123 , RecoverCorruptPayloadGZAESSingleTest
124 , RecoverCorruptPayloadGZAESMultiTest
125 , RecoverCorruptHeaderSingleTest
126 , RecoverCorruptHeaderMultiTest
127 , RecoverCorruptHeaderGZSingleTest
128 , RecoverCorruptHeaderGZMultiTest
129 , RecoverCorruptHeaderGZAESSingleTest
130 , RecoverCorruptHeaderGZAESMultiTest
37ccf5bc
PG
131 , RecoverCorruptTruncateTest
132 , RecoverCorruptTruncateGZTest
133 , RecoverCorruptTruncateGZAESTest
afb2d647 134 , RescueCorruptHeaderCTSizeGZAESTest
e25f31ac
PG
135 , RecoverCorruptEntireHeaderSingleTest
136 , RecoverCorruptEntireHeaderMultiTest
137 , RecoverCorruptEntireHeaderGZSingleTest
138 , RecoverCorruptEntireHeaderGZMultiTest
139 , RecoverCorruptEntireHeaderGZAESSingleTest
140 , RecoverCorruptEntireHeaderGZAESMultiTest
afb2d647
PG
141 , RescueCorruptLeadingGarbageSingleTest
142 , RescueCorruptLeadingGarbageMultiTest
e25f31ac
PG
143 , RecoverCorruptTrailingDataSingleTest
144 , RecoverCorruptTrailingDataMultiTest
145 , RecoverCorruptTrailingDataGZSingleTest
146 , RecoverCorruptTrailingDataGZMultiTest
147 , RecoverCorruptTrailingDataGZAESSingleTest
20e1d773
PG
148 , RecoverCorruptVolumeTest
149 , RecoverCorruptVolumeGZTest
150 , RecoverCorruptVolumeGZAESTest
3692fd82
PG
151 , RecoverCorruptHoleTest
152 , RecoverCorruptHoleGZTest
153 , RecoverCorruptHoleGZAESTest
37ccf5bc
PG
154 , RescueCorruptTruncateTest
155 , RescueCorruptTruncateGZTest
156 , RescueCorruptTruncateGZAESTest
2fe5f6e7
PG
157 , RescueCorruptHoleTest
158 , RescueCorruptHoleGZTest
159 , RescueCorruptHoleGZAESTest
047239f3
PG
160 , GenIndexIntactSingleTest
161 , GenIndexIntactSingleGZTest
162 , GenIndexIntactSingleGZAESTest
163 , GenIndexIntactMultiTest
164 , GenIndexIntactMultiGZTest
165 , GenIndexIntactMultiGZAESTest
37ccf5bc
PG
166 , GenIndexCorruptTruncateTest
167 , GenIndexCorruptTruncateGZTest
168 , GenIndexCorruptTruncateGZAESTest
6e1f5355
PG
169 , GenIndexCorruptHoleTest
170 , GenIndexCorruptHoleGZTest
171 , GenIndexCorruptHoleGZAESTest
172 , GenIndexCorruptEntireHeaderTest
173 , GenIndexCorruptEntireHeaderGZTest
174 , GenIndexCorruptEntireHeaderGZAESTest
0165ca3c
PG
175 ]:
176 try:
177 t = group (n)
178 except ValueError: # no such test
179 continue
180 print ("including ā€œ%sā€" % n)
181 suite.addTest(t)
182 ret = True
183 return ret
184 n = 0
185 for arg in sys.argv [1:]:
186 if add (arg) is True:
187 n += 1
188 if n == 0:
189 print ("ERROR: no valid test name specified, please double-check",
190 file=sys.stderr)
191 sys.exit (-1)
192 runner = unittest.TextTestRunner ()
193 runner.run (suite)
194