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