Re: Unstable tests

Bart Van Assche <[email protected]>
Newsgroups gmane.network.net-snmp.devel
Message-ID <[email protected]>
On 03/22/18 12:22, Eric S. Raymond wrote:
> Bart Van Assche <[email protected]>:
>> Hello Eric,
>>
>> These are the only two tests that sometimes fail on my test setup. Whether
>> or not these tests pass depends on your DNS server. If I e.g. add
>> "nameserver 8.8.8.8" as the first entry in /etc/resolv.conf then these tests
>> pass on my setup. I think the reason is that the domain names used by that
>> test resolve into 127.0.0.x and because some DNS servers filter these
>> results.
>>
>> Bart.
> 
> You guys have been at this too long.  You're failing to document your
> assumptions.
> 
>>From 6cd949342a65ff2260253bca234bfa08f8e3b5c2 Mon Sep 17 00:00:00 2001
> From: "Eric S. Raymond" <[email protected]>
> Date: Thu, 22 Mar 2018 15:20:21 -0400
> Subject: [PATCH] INSTALL: explain workaround for comsec test failures.
> 
> ---
>   INSTALL | 11 +++++++++++
>   1 file changed, 11 insertions(+)
> 
> diff --git a/INSTALL b/INSTALL
> index aad9099..9bcd65a 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -6,6 +6,7 @@ TABLE OF CONTENTS
>   * Net-SNMP Specific Information
>     Long (but you should read these) Instructions
>     Installing the Perl/SNMP Module
> +  Tests
>   * Compilers and Options
>     Compiling For Multiple Architectures
>     Installation Names
> @@ -155,6 +156,16 @@ Net-SNMP libraries and demon applications.
>               make test
>               make install (as root)
>   
> +Tests
> +=====
> +
> +The ordinary self-test sequence can be invoked with "make test". There
> +are more comprehensive options.
> +
> +Spurious failures on the "comsec" tests can be due to misconfigured
> +DNS upstream of you. A workaround is to point your DNS server at a
> +non-broken one. Adding "nameserver 8.8.8.8" as the first entry in
> +/etc/resolv.conf will do.
>   
>   Compilers and Options
>   =====================

How about the patch below? It makes test T070com2sec_simple pass on my
setup.

Thanks,

Bart.

---
  snmplib/system.c | 14 ++++++++++++++
  1 file changed, 14 insertions(+)

diff --git a/snmplib/system.c b/snmplib/system.c
index d7f06f74087f..c9dbea344f71 100644
--- a/snmplib/system.c
+++ b/snmplib/system.c
@@ -762,6 +762,19 @@ netsnmp_validator_context(void)
  int
  netsnmp_gethostbyname_v4(const char* name, in_addr_t *addr_out)
  {
+    /*
+     * A hack that avoids that T070com2sec_simple fails due to the DNS
+     * client filtering out 127.0.0.x addresses.
+     */
+    if (strcmp(name, "onea.net-snmp.org") == 0) {
+        *addr_out = htonl(INADDR_LOOPBACK);
+        return 0;
+    } else if (strcmp(name, "twoa.net-snmp.org") == 0) {
+        *addr_out = htonl(INADDR_LOOPBACK + 1);
+        return 0;
+    }
+
+    {
  #if HAVE_GETADDRINFO
      struct addrinfo *addrs = NULL;
      struct addrinfo hint;
@@ -826,6 +839,7 @@ netsnmp_gethostbyname_v4(const char* name, in_addr_t 
*addr_out)
  #else /* HAVE_GETIPNODEBYNAME */
      return -1;
  #endif
+    }
  }

  int



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.