Fake DNS query result inside a test
weijun.wang at oracle.com
Wed Nov 7 15:15:12 UTC 2012
As you know, krb5 can read KDC info from DNS and I want to write a
regression test on it. However, the test must be independent and it
should not access any server not inside the test suite.
Java uses those 2 lines to read the KDC info. Surely it would work if I
write my own DNS server and embed it into the test, but as you said,
that's too complicated. So I was thinking about how to trick it to
return something without querying a real server.
My current solution is to provide my own javax.naming.spi.NamingManager
and make sure it shadows the original one by setting the path to
-Xbootclasspath/p:. It is quite ugly and I feel shame to go this way.
On 11/07/2012 08:51 PM, Vincent Ryan wrote:
> Are you suggesting to run a local DNS server? If so then it is easy to access that
> via a JNDI context.
> If you're proposing developing a basic JNDI service provider then that would be
> more effort.
> On 7 Nov 2012, at 01:05, Weijun Wang wrote:
>> Hi Vinnie
>> I want to write a regression test so that
>> Context ctx = NamingManager.getURLContext("dns", new Hashtable<>(0));
>> Attributes attrs =((DirContext)ctx).getAttributes(
>> "_kerberos._udp.ASDF.COM.", SRV_RR_ATTR);
>> can return some entries without querying a real external server.
>> Is this possible by registering a local name server provider or else?
More information about the core-libs-dev