diff options
Diffstat (limited to 'src/revocation/test_local_revocation.py.in')
-rw-r--r-- | src/revocation/test_local_revocation.py.in | 157 |
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 |
21 | from __future__ import print_function | 19 | from __future__ import print_function |
@@ -26,90 +24,89 @@ import re | |||
26 | import shutil | 24 | import shutil |
27 | 25 | ||
28 | if os.name == 'posix': | 26 | if 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' |
33 | elif os.name == 'nt': | 31 | elif 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 | ||
39 | TEST_CONFIGURATION = "test_revocation.conf" | 37 | TEST_CONFIGURATION = "test_revocation.conf" |
40 | TEST_REVOCATION_EGO = "revoc_test" | 38 | TEST_REVOCATION_EGO = "revoc_test" |
41 | 39 | ||
42 | 40 | get_clean = subprocess.Popen([config, '-c', TEST_CONFIGURATION, '-s', 'PATHS', '-o', 'GNUNET_HOME', '-f'], stdout=subprocess.PIPE) | |
43 | get_clean = subprocess.Popen ([config, '-c', TEST_CONFIGURATION, '-s', 'PATHS', '-o', 'GNUNET_HOME', '-f'], stdout=subprocess.PIPE) | 41 | cleandir, x = get_clean.communicate() |
44 | cleandir, x = get_clean.communicate () | ||
45 | cleandir = cleandir.decode("utf-8") | 42 | cleandir = cleandir.decode("utf-8") |
46 | cleandir = cleandir.rstrip ('\n').rstrip ('\r') | 43 | cleandir = cleandir.rstrip('\n').rstrip('\r') |
47 | 44 | ||
48 | if os.path.isdir (cleandir): | 45 | if os.path.isdir(cleandir): |
49 | shutil.rmtree (cleandir, True) | 46 | shutil.rmtree(cleandir, True) |
50 | 47 | ||
51 | res = 0 | 48 | res = 0 |
52 | arm = subprocess.Popen ([gnunetarm, '-s', '-c', TEST_CONFIGURATION]) | 49 | arm = subprocess.Popen([gnunetarm, '-s', '-c', TEST_CONFIGURATION]) |
53 | arm.communicate () | 50 | arm.communicate() |
54 | 51 | ||
55 | try: | 52 | try: |
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 | ||
109 | finally: | 106 | finally: |
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 | ||
115 | sys.exit (res) | 112 | sys.exit(res) |