https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80803

--- Comment #11 from boger at us dot ibm.com ---
The first failure happens in TestParseIP from ip_test.go because the "out"
entries in the var parseIPTests are not initialized correctly.  This causes the
failures because the actual value (which is correct) doesn't match the expected
value (which is incorrect).

var parseIPTests = []struct {
        in  string
        out IP
}{
        {"127.0.1.2", IPv4(127, 0, 1, 2)},
        {"127.0.0.1", IPv4(127, 0, 0, 1)},
        {"127.001.002.003", IPv4(127, 1, 2, 3)},
        {"::ffff:127.1.2.3", IPv4(127, 1, 2, 3)},
        {"::ffff:127.001.002.003", IPv4(127, 1, 2, 3)},
        {"::ffff:7f01:0203", IPv4(127, 1, 2, 3)},
        {"0:0:0:0:0000:ffff:127.1.2.3", IPv4(127, 1, 2, 3)},
        {"0:0:0:0:000000:ffff:127.1.2.3", IPv4(127, 1, 2, 3)},
        {"0:0:0:0::ffff:127.1.2.3", IPv4(127, 1, 2, 3)},
.....

I believe this is a static var, and the initialization of "out" is done through
a call to IPv4 (which does a make) but I'm not sure where and when this
initialization is supposed to occur?  I tried to use gdb and set a watch where
I thought it should be initialized and it didn't trigger.

Another oddity, when the entire net.test is run, the output from the call to
UnmarshalText is extremely long and that is what causes the output file to get
so large, but if the test ParseIP is run by itself, it fails but does not
generate the excessive output.  But in both cases, the initial failure is due
to  bad initialization of the "out" entries.

Reply via email to