aboutsummaryrefslogtreecommitdiff
path: root/tests/functional_tests
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2020-01-27 16:31:43 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2020-03-26 11:33:58 +0000
commitf5a11f05feca2016d0802f01b48f602c70408e51 (patch)
treea7e1fcb2bcaf87abfd27518e86232a0c87b748bb /tests/functional_tests
parentfunctional_tests: update cookie at 10 seconds interval (diff)
downloadmonero-f5a11f05feca2016d0802f01b48f602c70408e51.tar.xz
functional_tests: speed up signature generation
Executing a new binary for each signature can get really slow
Diffstat (limited to 'tests/functional_tests')
-rw-r--r--tests/functional_tests/make_test_signature.cc22
-rwxr-xr-xtests/functional_tests/rpc_payment.py12
2 files changed, 29 insertions, 5 deletions
diff --git a/tests/functional_tests/make_test_signature.cc b/tests/functional_tests/make_test_signature.cc
index 789523de5..6ac1a6a86 100644
--- a/tests/functional_tests/make_test_signature.cc
+++ b/tests/functional_tests/make_test_signature.cc
@@ -33,9 +33,9 @@
int main(int argc, const char **argv)
{
TRY_ENTRY();
- if (argc > 2)
+ if (argc > 3)
{
- fprintf(stderr, "usage: %s <secret_key>\n", argv[0]);
+ fprintf(stderr, "usage: %s [<secret_key> [N]]\n", argv[0]);
return 1;
}
@@ -55,8 +55,22 @@ int main(int argc, const char **argv)
fprintf(stderr, "invalid secret key\n");
return 1;
}
- std::string signature = cryptonote::make_rpc_payment_signature(skey);
- printf("%s\n", signature.c_str());
+ uint32_t count = 1;
+ if (argc == 3)
+ {
+ int i = atoi(argv[2]);
+ if (i <= 0)
+ {
+ fprintf(stderr, "invalid count\n");
+ return 1;
+ }
+ count = (uint32_t)i;
+ }
+ while (count--)
+ {
+ std::string signature = cryptonote::make_rpc_payment_signature(skey);
+ printf("%s\n", signature.c_str());
+ }
return 0;
CATCH_ENTRY_L0("main()", 1);
}
diff --git a/tests/functional_tests/rpc_payment.py b/tests/functional_tests/rpc_payment.py
index 90c5e1211..3bf995f0c 100755
--- a/tests/functional_tests/rpc_payment.py
+++ b/tests/functional_tests/rpc_payment.py
@@ -44,6 +44,7 @@ class RPCPaymentTest():
self.make_test_signature = os.environ['MAKE_TEST_SIGNATURE']
assert len(self.make_test_signature) > 0
self.secret_key, self.public_key = self.get_keys()
+ self.signatures = []
self.reset()
self.test_access_tracking()
self.test_access_mining()
@@ -57,8 +58,17 @@ class RPCPaymentTest():
assert len(fields) == 2
return fields
+ def refill_signatures(self):
+ signatures = subprocess.check_output([self.make_test_signature, self.secret_key, '256']).decode('utf-8')
+ for line in signatures.split():
+ self.signatures.append(line.rstrip())
+
def get_signature(self):
- return subprocess.check_output([self.make_test_signature, self.secret_key]).decode('utf-8').rstrip()
+ if len(self.signatures) == 0:
+ self.refill_signatures()
+ s = self.signatures[0]
+ self.signatures = self.signatures[1:]
+ return s
def reset(self):
print('Resetting blockchain')