aboutsummaryrefslogtreecommitdiff
path: root/src/revocation/test_local_revocation.py.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/revocation/test_local_revocation.py.in')
-rw-r--r--src/revocation/test_local_revocation.py.in157
1 files changed, 77 insertions, 80 deletions
diff --git a/src/revocation/test_local_revocation.py.in b/src/revocation/test_local_revocation.py.in
index 28257715f..f31ed3cfe 100644
--- a/src/revocation/test_local_revocation.py.in
+++ b/src/revocation/test_local_revocation.py.in
@@ -1,21 +1,19 @@
1#!@PYTHON@ 1#!@PYTHON@
2# This file is part of GNUnet. 2# This file is part of GNUnet.
3# (C) 2010 Christian Grothoff (and other contributing authors) 3# (C) 2010, 2018 Christian Grothoff (and other contributing authors)
4# 4#
5# GNUnet is free software; you can redistribute it and/or modify 5# GNUnet is free software: you can redistribute it and/or modify it
6# it under the terms of the GNU General Public License as published 6# under the terms of the GNU Affero General Public License as published
7# by the Free Software Foundation; either version 2, or (at your 7# by the Free Software Foundation, either version 3 of the License,
8# option) any later version. 8# or (at your option) any later version.
9# 9#
10# GNUnet is distributed in the hope that it will be useful, but 10# GNUnet is distributed in the hope that it will be useful, but
11# WITHOUT ANY WARRANTY; without even the implied warranty of 11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details. 13# Affero General Public License for more details.
14# 14#
15# You should have received a copy of the GNU General Public License 15# You should have received a copy of the GNU Affero General Public License
16# along with GNUnet; see the file COPYING. If not, write to the 16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18# Boston, MA 02110-1301, USA.
19# 17#
20# Testcase for ego revocation 18# Testcase for ego revocation
21from __future__ import print_function 19from __future__ import print_function
@@ -26,90 +24,89 @@ import re
26import shutil 24import shutil
27 25
28if os.name == 'posix': 26if os.name == 'posix':
29 config = 'gnunet-config' 27 config = 'gnunet-config'
30 gnunetarm = 'gnunet-arm' 28 gnunetarm = 'gnunet-arm'
31 ident = 'gnunet-identity' 29 ident = 'gnunet-identity'
32 revoc = './gnunet-revocation' 30 revoc = './gnunet-revocation'
33elif os.name == 'nt': 31elif os.name == 'nt':
34 config = 'gnunet-config.exe' 32 config = 'gnunet-config.exe'
35 gnunetarm = 'gnunet-arm.exe' 33 gnunetarm = 'gnunet-arm.exe'
36 ident = 'gnunet-identity.exe' 34 ident = 'gnunet-identity.exe'
37 revoc = './gnunet-revocation.exe' 35 revoc = './gnunet-revocation.exe'
38 36
39TEST_CONFIGURATION = "test_revocation.conf" 37TEST_CONFIGURATION = "test_revocation.conf"
40TEST_REVOCATION_EGO = "revoc_test" 38TEST_REVOCATION_EGO = "revoc_test"
41 39
42 40get_clean = subprocess.Popen([config, '-c', TEST_CONFIGURATION, '-s', 'PATHS', '-o', 'GNUNET_HOME', '-f'], stdout=subprocess.PIPE)
43get_clean = subprocess.Popen ([config, '-c', TEST_CONFIGURATION, '-s', 'PATHS', '-o', 'GNUNET_HOME', '-f'], stdout=subprocess.PIPE) 41cleandir, x = get_clean.communicate()
44cleandir, x = get_clean.communicate ()
45cleandir = cleandir.decode("utf-8") 42cleandir = cleandir.decode("utf-8")
46cleandir = cleandir.rstrip ('\n').rstrip ('\r') 43cleandir = cleandir.rstrip('\n').rstrip('\r')
47 44
48if os.path.isdir (cleandir): 45if os.path.isdir(cleandir):
49 shutil.rmtree (cleandir, True) 46 shutil.rmtree(cleandir, True)
50 47
51res = 0 48res = 0
52arm = subprocess.Popen ([gnunetarm, '-s', '-c', TEST_CONFIGURATION]) 49arm = subprocess.Popen([gnunetarm, '-s', '-c', TEST_CONFIGURATION])
53arm.communicate () 50arm.communicate()
54 51
55try: 52try:
56 print ("Creating an ego " + TEST_REVOCATION_EGO) 53 print("Creating an ego " + TEST_REVOCATION_EGO)
57 sys.stdout.flush () 54 sys.stdout.flush()
58 sys.stderr.flush () 55 sys.stderr.flush()
59 idc = subprocess.Popen ([ident, '-C', TEST_REVOCATION_EGO, '-c', TEST_CONFIGURATION]) 56 idc = subprocess.Popen([ident, '-C', TEST_REVOCATION_EGO, '-c', TEST_CONFIGURATION])
60 idc.communicate () 57 idc.communicate()
61 if idc.returncode != 0: 58 if idc.returncode != 0:
62 raise Exception ("gnunet-identity failed to create an ego `" + TEST_REVOCATION_EGO + "'") 59 raise Exception("gnunet-identity failed to create an ego `" + TEST_REVOCATION_EGO + "'")
63 60
64 sys.stdout.flush () 61 sys.stdout.flush()
65 sys.stderr.flush () 62 sys.stderr.flush()
66 idd = subprocess.Popen ([ident, '-d'], stdout=subprocess.PIPE) 63 idd = subprocess.Popen([ident, '-d'], stdout=subprocess.PIPE)
67 rev_key, x = idd.communicate () 64 rev_key, x = idd.communicate()
68 rev_key = rev_key.decode("utf-8") 65 rev_key = rev_key.decode("utf-8")
69 if len (rev_key.split ()) < 3: 66 if len(rev_key.split()) < 3:
70 raise Exception ("can't get revocation key out of `" + rev_key + "'") 67 raise Exception("can't get revocation key out of `" + rev_key + "'")
71 rev_key = rev_key.split ()[2] 68 rev_key = rev_key.split()[2]
72 69
73 print ("Testing key " + rev_key) 70 print("Testing key " + rev_key)
74 sys.stdout.flush () 71 sys.stdout.flush()
75 sys.stderr.flush () 72 sys.stderr.flush()
76 tst = subprocess.Popen ([revoc, '-t', rev_key, '-c', TEST_CONFIGURATION], stdout=subprocess.PIPE) 73 tst = subprocess.Popen([revoc, '-t', rev_key, '-c', TEST_CONFIGURATION], stdout=subprocess.PIPE)
77 output_not_revoked, x = tst.communicate () 74 output_not_revoked, x = tst.communicate()
78 output_not_revoked = output_not_revoked.decode("utf-8") 75 output_not_revoked = output_not_revoked.decode("utf-8")
79 if tst.returncode != 0: 76 if tst.returncode != 0:
80 raise Exception ("gnunet-revocation failed to test a key - " + str (tst.returncode) + ": " + output_not_revoked) 77 raise Exception("gnunet-revocation failed to test a key - " + str(tst.returncode) + ": " + output_not_revoked)
81 if 'valid' not in output_not_revoked: 78 if 'valid' not in output_not_revoked:
82 res = 1 79 res = 1
83 print ("Key was not valid") 80 print("Key was not valid")
84 else: 81 else:
85 print ("Key was valid") 82 print("Key was valid")
86 83
87 print ("Revoking key " + rev_key) 84 print("Revoking key " + rev_key)
88 sys.stdout.flush () 85 sys.stdout.flush()
89 sys.stderr.flush () 86 sys.stderr.flush()
90 rev = subprocess.Popen ([revoc, '-R', TEST_REVOCATION_EGO, '-p', '-c', TEST_CONFIGURATION]) 87 rev = subprocess.Popen([revoc, '-R', TEST_REVOCATION_EGO, '-p', '-c', TEST_CONFIGURATION])
91 rev.communicate () 88 rev.communicate()
92 if rev.returncode != 0: 89 if rev.returncode != 0:
93 raise Exception ("gnunet-revocation failed to revoke a key") 90 raise Exception("gnunet-revocation failed to revoke a key")
94 91
95 print ("Testing revoked key " + rev_key) 92 print("Testing revoked key " + rev_key)
96 sys.stdout.flush () 93 sys.stdout.flush()
97 sys.stderr.flush () 94 sys.stderr.flush()
98 tst = subprocess.Popen ([revoc, '-t', rev_key, '-c', TEST_CONFIGURATION], stdout=subprocess.PIPE) 95 tst = subprocess.Popen([revoc, '-t', rev_key, '-c', TEST_CONFIGURATION], stdout=subprocess.PIPE)
99 output_revoked, x = tst.communicate () 96 output_revoked, x = tst.communicate()
100 output_revoked = output_revoked.decode("utf-8") 97 output_revoked = output_revoked.decode("utf-8")
101 if tst.returncode != 0: 98 if tst.returncode != 0:
102 raise Exception ("gnunet-revocation failed to test a revoked key") 99 raise Exception("gnunet-revocation failed to test a revoked key")
103 if 'revoked' not in output_revoked: 100 if 'revoked' not in output_revoked:
104 res = 1 101 res = 1
105 print ("Key was not revoked") 102 print("Key was not revoked")
106 else: 103 else:
107 print ("Key was revoked") 104 print("Key was revoked")
108 105
109finally: 106finally:
110 arm = subprocess.Popen ([gnunetarm, '-e', '-c', TEST_CONFIGURATION]) 107 arm = subprocess.Popen([gnunetarm, '-e', '-c', TEST_CONFIGURATION])
111 arm.communicate () 108 arm.communicate()
112 if os.path.isdir (cleandir): 109 if os.path.isdir(cleandir):
113 shutil.rmtree (cleandir, True) 110 shutil.rmtree(cleandir, True)
114 111
115sys.exit (res) 112sys.exit(res)