Add "test" to run Hush tests

This replaces the hack that was test.sh with a more extensible and less hackish
test script.

To run the tests just run "./test" . By default it shows all RPCs called via
the "--tracerpc" flag. If you want to set custom test flags you can do

TEST_FLAGS="--elite-test-flag --foo" ./test

Currently we are only running lockzins.py and shieldcoinbase_donation.py tests
which are hardcoded. The plan is to allow custom sets of tests to be run with
this script.
This commit is contained in:
Duke
2026-01-01 15:20:29 -05:00
parent 38c1251ab6
commit cb1c257b50
2 changed files with 47 additions and 11 deletions

47
test Executable file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env perl
# Copyright 2016-2026 The Hush developers
# Distributed under the GPLv3 software license, see the accompanying
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
use strict;
use warnings;
use 5.010;
my $flags = $ENV{TEST_FLAGS} || '--tracerpc';
my $test_dir = './qa/rpc-tests';
$ENV{PYTHONPATH} = "./qa/rpc-tests/test_framework/";
#$ENV{PYTHON_DEBUG} = 1;
my @tests_to_run = qw{
lockzins.py
shieldcoinbase_donation.py
};
my $exit = 0;
my $failed_tests = 0;
my $time=time();
my $num_tests = @tests_to_run;
print "# Running $num_tests tests";
for my $test (@tests_to_run) {
# send both stderr+stdout to our output file
my $cmd = "$test_dir/$test $flags 1>test-$time.txt 2>&1";
system($cmd);
print ".";
if($?) {
say "$cmd FAILED!";
$exit = 1;
$failed_tests++;
}
}
print "\n";
if ($exit) {
say "FAIL! Number of failed tests: $failed_tests . Details in test-$time.txt";
} else {
say "PASS!";
}
exit($exit);

11
test.sh
View File

@@ -1,11 +0,0 @@
#!/usr/bin/env bash
# Copyright 2016-2025 The Hush developers
# Distributed under the GPLv3 software license, see the accompanying
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
#export PYTHON_DEBUG=1
export PYTHONPATH=./qa/rpc-tests/test_framework/
#./qa/rpc-tests/ac_private.py
# ./qa/rpc-tests/lockzins.py --tracerpc
./qa/rpc-tests/shieldcoinbase_donation.py --tracerpc