allow for detecting overlapping objects with tarfile
[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 \
38 , RecoverCorruptEntireHeaderSingleTest \
39 , RecoverCorruptEntireHeaderMultiTest \
40 , RecoverCorruptEntireHeaderGZSingleTest \
41 , RecoverCorruptEntireHeaderGZMultiTest \
42 , RecoverCorruptEntireHeaderGZAESSingleTest \
43 , RecoverCorruptEntireHeaderGZAESMultiTest \
44 , RecoverCorruptTrailingDataSingleTest \
45 , RecoverCorruptTrailingDataMultiTest \
46 , RecoverCorruptTrailingDataGZSingleTest \
47 , RecoverCorruptTrailingDataGZMultiTest \
48 , RecoverCorruptTrailingDataGZAESSingleTest \
20e1d773
PG
49 , RecoverCorruptTrailingDataGZAESMultiTest \
50 , RecoverCorruptVolumeTest \
51 , RecoverCorruptVolumeGZTest \
3692fd82
PG
52 , RecoverCorruptVolumeGZAESTest \
53 , RecoverCorruptHoleTest \
54 , RecoverCorruptHoleGZTest \
2fe5f6e7
PG
55 , RecoverCorruptHoleGZAESTest \
56 , RescueCorruptHoleTest \
57 , RescueCorruptHoleGZTest \
58 , RescueCorruptHoleGZAESTest \
59 , GenIndexIntactTest \
60 , GenIndexIntactGZTest \
61 , GenIndexIntactGZAESTest
0112ba0d 62from testing.test_rescue_tar import RescueTarTest
6e812ad9 63from testing.test_encryption import EncryptionTest
1a985013
ERE
64from testing.test_deltatar import (DeltaTarTest, DeltaTar2Test,
65 DeltaTarStreamTest, DeltaTarGzipTest, DeltaTarGzipStreamTest,
66 DeltaTarGzipConcatTest, DeltaTarGzipAes128ConcatTest,
5ed1df9a 67 DeltaTarAes128ConcatTest
ac5e4184 68 )
08bb4b4a 69from testing.test_compression_level import suite
ae48acc8
ERE
70
71if __name__ == "__main__":
0165ca3c
PG
72 import sys
73 if len (sys.argv) == 1:
74 unittest.TextTestRunner().run(suite())
75 unittest.main()
76 else:
77 suite = unittest.TestSuite ()
78 def add (n):
79 ret = False
80 for group in [#testing.test_multivol
81 MultivolGnuFormatTest, MultivolPaxFormatTest
82 # testing.test_concat_compress
83 , ConcatCompressTest
84 # testing.test_rescue_tar
85 , RescueTarTest
86 # testing.test_encryption
87 , EncryptionTest
88 # testing.test_deltatar
89 , DeltaTarTest, DeltaTar2Test
90 , DeltaTarStreamTest, DeltaTarGzipTest
91 , DeltaTarGzipStreamTest, DeltaTarGzipConcatTest
92 , DeltaTarGzipAes128ConcatTest
5ed1df9a 93 , DeltaTarAes128ConcatTest
3ba1441c 94 , HeaderTest, AESGCMTest
e25f31ac 95
20e1d773 96 # testing.test_recover
e25f31ac
PG
97 , RecoverCorruptPayloadSingleTest
98 , RecoverCorruptPayloadMultiTest
99 , RecoverCorruptPayloadGZSingleTest
100 , RecoverCorruptPayloadGZMultiTest
101 , RecoverCorruptPayloadGZAESSingleTest
102 , RecoverCorruptPayloadGZAESMultiTest
103 , RecoverCorruptHeaderSingleTest
104 , RecoverCorruptHeaderMultiTest
105 , RecoverCorruptHeaderGZSingleTest
106 , RecoverCorruptHeaderGZMultiTest
107 , RecoverCorruptHeaderGZAESSingleTest
108 , RecoverCorruptHeaderGZAESMultiTest
109 , RecoverCorruptEntireHeaderSingleTest
110 , RecoverCorruptEntireHeaderMultiTest
111 , RecoverCorruptEntireHeaderGZSingleTest
112 , RecoverCorruptEntireHeaderGZMultiTest
113 , RecoverCorruptEntireHeaderGZAESSingleTest
114 , RecoverCorruptEntireHeaderGZAESMultiTest
115 , RecoverCorruptTrailingDataSingleTest
116 , RecoverCorruptTrailingDataMultiTest
117 , RecoverCorruptTrailingDataGZSingleTest
118 , RecoverCorruptTrailingDataGZMultiTest
119 , RecoverCorruptTrailingDataGZAESSingleTest
20e1d773
PG
120 , RecoverCorruptVolumeTest
121 , RecoverCorruptVolumeGZTest
122 , RecoverCorruptVolumeGZAESTest
3692fd82
PG
123 , RecoverCorruptHoleTest
124 , RecoverCorruptHoleGZTest
125 , RecoverCorruptHoleGZAESTest
2fe5f6e7
PG
126 , RescueCorruptHoleTest
127 , RescueCorruptHoleGZTest
128 , RescueCorruptHoleGZAESTest
129 , GenIndexIntactTest
130 , GenIndexIntactGZTest
131 , GenIndexIntactGZAESTest
0165ca3c
PG
132 ]:
133 try:
134 t = group (n)
135 except ValueError: # no such test
136 continue
137 print ("including ā€œ%sā€" % n)
138 suite.addTest(t)
139 ret = True
140 return ret
141 n = 0
142 for arg in sys.argv [1:]:
143 if add (arg) is True:
144 n += 1
145 if n == 0:
146 print ("ERROR: no valid test name specified, please double-check",
147 file=sys.stderr)
148 sys.exit (-1)
149 runner = unittest.TextTestRunner ()
150 runner.run (suite)
151