test-sync passes again

This commit is contained in:
Christian Grothoff 2022-02-28 23:18:40 +01:00
parent a8d9e7e0a6
commit e24a6369aa
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
6 changed files with 59 additions and 12 deletions

View File

@ -193,8 +193,11 @@ check_SCRIPTS = \
test-sync.sh
.NOTPARALLEL:
# Disabled for now: need working wallet first!
# revocation test disabled for now: need working wallet first!
# TESTS = $(check_SCRIPTS)
TESTS = \
test-auditor.sh \
test-sync.sh
EXTRA_DIST = \
taler-auditor.in \

View File

@ -91,6 +91,7 @@ struct Table
static struct Table tables[] = {
{ .rt = TALER_EXCHANGEDB_RT_DENOMINATIONS},
{ .rt = TALER_EXCHANGEDB_RT_DENOMINATION_REVOCATIONS},
{ .rt = TALER_EXCHANGEDB_RT_WIRE_TARGETS},
{ .rt = TALER_EXCHANGEDB_RT_RESERVES},
{ .rt = TALER_EXCHANGEDB_RT_RESERVES_IN},
{ .rt = TALER_EXCHANGEDB_RT_RESERVES_CLOSE},
@ -202,20 +203,16 @@ transact (void)
src->lookup_serial_by_table (src->cls,
tables[i].rt,
&tables[i].end_serial);
if (0 >
src->commit (src->cls))
return GNUNET_SYSERR;
src->rollback (src->cls);
if (GNUNET_OK !=
dst->start (src->cls,
dst->start (dst->cls,
"lookup dst serials"))
return GNUNET_SYSERR;
for (unsigned int i = 0; ! tables[i].end; i++)
dst->lookup_serial_by_table (dst->cls,
tables[i].rt,
&tables[i].start_serial);
if (0 >
dst->commit (dst->cls))
return GNUNET_SYSERR;
dst->rollback (dst->cls);
for (unsigned int i = 0; ! tables[i].end; i++)
{
struct Table *table = &tables[i];

View File

@ -16,7 +16,7 @@ echo -n "."
psql talercheck-in < auditor-basedb.sql >/dev/null 2> /dev/null
echo -n "."
taler-auditor-sync -s test-sync-in.conf -d test-sync-out.conf -t
~/bin/taler-auditor-sync -s test-sync-in.conf -d test-sync-out.conf -t
# cs_nonce_locks excluded: no point
for table in denominations denomination_revocations wire_targets reserves reserves_in reserves_close reserves_out auditors auditor_denom_sigs exchange_sign_keys signkey_revocations extensions extension_details known_coins refresh_commitments refresh_revealed_coins refresh_transfer_keys deposits refunds wire_out aggregation_tracking wire_fee recoup recoup_refresh

View File

@ -115,12 +115,15 @@ irbt_cb_table_wire_targets (struct PostgresClosure *pg,
{
struct TALER_PaytoHashP payto_hash;
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_uint64 (&td->serial),
GNUNET_PQ_query_param_auto_from_type (&payto_hash),
GNUNET_PQ_query_param_string (
td->details.wire_targets.payto_uri),
GNUNET_PQ_query_param_auto_from_type (
&td->details.wire_targets.kyc_ok),
GNUNET_PQ_query_param_string (
NULL == td->details.wire_targets.external_id
? GNUNET_PQ_query_param_null ()
: GNUNET_PQ_query_param_string (
td->details.wire_targets.external_id),
GNUNET_PQ_query_param_end
};

View File

@ -175,6 +175,7 @@ lrbt_cb_table_wire_targets (void *cls,
for (unsigned int i = 0; i<num_results; i++)
{
bool no_xid;
struct GNUNET_PQ_ResultSpec rs[] = {
GNUNET_PQ_result_spec_uint64 ("serial",
&td.serial),
@ -182,8 +183,10 @@ lrbt_cb_table_wire_targets (void *cls,
&td.details.wire_targets.payto_uri),
GNUNET_PQ_result_spec_auto_from_type ("kyc_ok",
&td.details.wire_targets.kyc_ok),
GNUNET_PQ_result_spec_string ("external_id",
&td.details.wire_targets.external_id),
GNUNET_PQ_result_spec_allow_null (
GNUNET_PQ_result_spec_string ("external_id",
&td.details.wire_targets.external_id),
&no_xid),
GNUNET_PQ_result_spec_end
};

View File

@ -1923,6 +1923,14 @@ prepare_statements (struct PostgresClosure *pg)
" ORDER BY denom_revocations_serial_id DESC"
" LIMIT 1;",
0),
GNUNET_PQ_make_prepare (
"select_serial_by_table_wire_targets",
"SELECT"
" wire_target_serial_id AS serial"
" FROM wire_targets"
" ORDER BY wire_target_serial_id DESC"
" LIMIT 1;",
0),
GNUNET_PQ_make_prepare (
"select_serial_by_table_reserves",
"SELECT"
@ -2112,6 +2120,17 @@ prepare_statements (struct PostgresClosure *pg)
" WHERE denom_revocations_serial_id > $1"
" ORDER BY denom_revocations_serial_id ASC;",
1),
GNUNET_PQ_make_prepare (
"select_above_serial_by_table_wire_targets",
"SELECT"
" wire_target_serial_id AS serial"
",payto_uri"
",kyc_ok"
",external_id"
" FROM wire_targets"
" WHERE wire_target_serial_id > $1"
" ORDER BY wire_target_serial_id ASC;",
1),
GNUNET_PQ_make_prepare (
"select_above_serial_by_table_reserves",
"SELECT"
@ -2418,6 +2437,17 @@ prepare_statements (struct PostgresClosure *pg)
") VALUES "
"($1, $2, $3);",
3),
GNUNET_PQ_make_prepare (
"insert_into_table_wire_targets",
"INSERT INTO wire_targets"
"(wire_target_serial_id"
",h_payto"
",payto_uri"
",kyc_ok"
",external_id"
") VALUES "
"($1, $2, $3, $4, $5);",
5),
GNUNET_PQ_make_prepare (
"insert_into_table_reserves",
"INSERT INTO reserves"
@ -10673,6 +10703,9 @@ postgres_lookup_serial_by_table (void *cls,
case TALER_EXCHANGEDB_RT_DENOMINATION_REVOCATIONS:
statement = "select_serial_by_table_denomination_revocations";
break;
case TALER_EXCHANGEDB_RT_WIRE_TARGETS:
statement = "select_serial_by_table_wire_targets";
break;
case TALER_EXCHANGEDB_RT_RESERVES:
statement = "select_serial_by_table_reserves";
break;
@ -10906,9 +10939,17 @@ postgres_lookup_records_by_table (void *cls,
rh,
&ctx);
if (qs < 0)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to run `%s'\n",
statement);
return qs;
}
if (ctx.error)
{
GNUNET_break (0);
return GNUNET_DB_STATUS_HARD_ERROR;
}
return qs;
}