From: Christian Grothoff Date: Wed, 19 Feb 2020 20:52:43 +0000 (+0100) Subject: fixing the GNS multirecord multipeer test X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ca8202057d58faaed3e1fa6c57adf0aa003811c4;p=oweals%2Fgnunet.git fixing the GNS multirecord multipeer test --- diff --git a/src/gns/test_gns_lookup_peer1.conf b/src/gns/test_gns_lookup_peer1.conf index 3b034f8d5..1cf0ba628 100644 --- a/src/gns/test_gns_lookup_peer1.conf +++ b/src/gns/test_gns_lookup_peer1.conf @@ -5,6 +5,8 @@ DISABLE = YES [PATHS] GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-gns-peer-1/ +GNUNET_RUNTIME_DIR = $GNUNET_TMP/test-gnunet-gns-peer-1-system-runtime/ +GNUNET_USER_RUNTIME_DIR = $GNUNET_TMP/test-gnunet-gns-peer-1-user-runtime/ [dht] START_ON_DEMAND = YES @@ -42,12 +44,17 @@ WAN_QUOTA_IN = 1 GB WAN_QUOTA_OUT = 1 GB [transport] -plugins = tcp +plugins = unix NEIGHBOUR_LIMIT = 50 PORT = 2091 -[transport-tcp] -TIMEOUT = 300 s +[transport-unix] +UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-transport-plugin-unix1.sock + +[hostlist] +SERVERS = http://localhost:9999/ +OPTIONS = -b +IMMEDIATE_START = YES [nat] DISABLEV6 = YES diff --git a/src/gns/test_gns_lookup_peer2.conf b/src/gns/test_gns_lookup_peer2.conf index d64fdcda3..2e861ff0a 100644 --- a/src/gns/test_gns_lookup_peer2.conf +++ b/src/gns/test_gns_lookup_peer2.conf @@ -5,6 +5,8 @@ DISABLE = YES [PATHS] GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-gns-peer-2/ +GNUNET_RUNTIME_DIR = $GNUNET_TMP/test-gnunet-gns-peer-2-runtime/ +GNUNET_USER_RUNTIME_DIR = $GNUNET_TMP/test-gnunet-gns-peer-2-user-runtime/ [dht] START_ON_DEMAND = YES @@ -42,17 +44,23 @@ AUTOCONNECT = YES FRIENDS-ONLY = NO MINIMUM-FRIENDS = 0 +[hostlist] +SERVERS = +HTTPPORT = 9999 +OPTIONS = -p +IMMEDIATE_START = YES + + [ats] WAN_QUOTA_IN = 1 GB WAN_QUOTA_OUT = 1 GB [transport] -plugins = tcp +plugins = unix NEIGHBOUR_LIMIT = 50 -PORT = 2092 -[transport-tcp] -TIMEOUT = 300 s +[transport-unix] +UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-transport-plugin-unix2.sock [nat] DISABLEV6 = YES diff --git a/src/gns/test_gns_multiple_record_lookup.sh b/src/gns/test_gns_multiple_record_lookup.sh index fbd9a6b13..2d00945d6 100755 --- a/src/gns/test_gns_multiple_record_lookup.sh +++ b/src/gns/test_gns_multiple_record_lookup.sh @@ -4,6 +4,10 @@ trap "gnunet-arm -e -c test_gns_lookup_peer1.conf" INT trap "gnunet-arm -e -c test_gns_lookup_peer2.conf" INT which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 5" +unset XDG_DATA_HOME +unset XDG_CONFIG_HOME +unset XDG_CACHE_HOME + LOCATION=$(which gnunet-config) if [ -z $LOCATION ] then @@ -27,18 +31,40 @@ LABEL="fnord" gnunet-arm -s -c test_gns_lookup_peer2.conf PKEY=`$DO_TIMEOUT gnunet-identity -V -C $OTHER_EGO -c test_gns_lookup_peer2.conf` + +# Note: if zonemaster is kept running, it MAY publish the "A" record in the +# DHT immediately and then _LATER_ also the "AAAA" record. But as then there +# will be TWO valid blocks in the DHT (one with only A and one with A and +# AAAA), the subsequent GET for both may fail and only return the result with +# just the "A" record). +# If we _waited_ until the original block with just "A" expired, everything +# would be fine, but we don't want to do that for the test, so we +# simply pause publishing to the DHT until all records are defined. +# In the future, it would be good to have an enhanced gnunet-namestore command +# that would read a series of changes to be made to a record set from +# stdin and do them _all_ *atomically*. Then we would not need to do this. + +gnunet-arm -c test_gns_lookup_peer2.conf -k zonemaster +gnunet-arm -c test_gns_lookup_peer2.conf -k zonemaster-monitor + gnunet-namestore -p -z $OTHER_EGO -a -n $LABEL -t A -V $TEST_IP -e 3600s -c test_gns_lookup_peer2.conf gnunet-namestore -p -z $OTHER_EGO -a -n $LABEL -t AAAA -V $TEST_IPV6 -e 3600s -c test_gns_lookup_peer2.conf gnunet-namestore -D -z $OTHER_EGO -n $LABEL -gnunet-arm -e -c test_gns_lookup_peer2.conf -echo "Second peer" +gnunet-arm -c test_gns_lookup_peer2.conf -i zonemaster +gnunet-arm -c test_gns_lookup_peer2.conf -i zonemaster-monitor + + gnunet-arm -s -c test_gns_lookup_peer1.conf -echo "Second peer started" + + RESP=`$DO_TIMEOUT gnunet-gns --raw -u $LABEL.$PKEY -t ANY -c test_gns_lookup_peer1.conf` RESP1=`$DO_TIMEOUT gnunet-gns --raw -u $LABEL.$PKEY -t A -c test_gns_lookup_peer1.conf` RESP2=`$DO_TIMEOUT gnunet-gns --raw -u $LABEL.$PKEY -t AAAA -c test_gns_lookup_peer1.conf` + + gnunet-arm -e -c test_gns_lookup_peer1.conf +gnunet-arm -e -c test_gns_lookup_peer2.conf rm -rf `gnunet-config -c test_gns_lookup_peer1.conf -f -s paths -o GNUNET_TEST_HOME` rm -rf `gnunet-config -c test_gns_lookup_peer2.conf -f -s paths -o GNUNET_TEST_HOME`