<div dir="ltr">Hi Pushkar, thanks so much for the information! That does help to clear everything up. <div><br></div><div>I&#39;m afraid I don&#39;t have a very specific solution to propose. Only that, at a high level, I think both of these earlier versions will serve as good inspiration for new tests. For example, there are some test cases in both of these earlier versions that I would never have thought of myself. </div><div><br></div><div>While it&#39;s not exactly my area of expertise, the existing loopback server is very interesting to me, so I hope to have some time soon to improve it a bit, adding URLSession tests as I go. </div><div><br></div><div>Of course, it is slightly tricky when both the system-under-test and the mechanism by which it is tested are under construction at the same time! :)</div><div><br></div><div>Cheers,</div><div><br></div><div>Peter</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 3, 2017 at 1:44 AM, Pushkar N Kulkarni <span dir="ltr">&lt;<a href="mailto:pushkar.nk@in.ibm.com" target="_blank">pushkar.nk@in.ibm.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="Verdana,Arial,Helvetica,sans-serif" size="2"><div style="font-size:small"><font face="Default Sans Serif, Verdana, Arial, Helvetica, sans-serif">Hi Peter, </font></div><div style="font-size:small"><font face="Default Sans Serif, Verdana, Arial, Helvetica, sans-serif"><br></font></div><div><font><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" size="2">I&#39;ll try to </font><font size="2" face="Default Sans Serif, Verdana, Arial, Helvetica, sans-serif">answer your questions to some extent!</font></font></div><div><br></div><div style="font-size:small;font-family:Verdana,Arial,Helvetica,sans-serif"><span class=""><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i><br></i></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i>I’m wondering if anyone has any info on what happened with the (rather more elaborate) “loopback” server and set of tests from @danieleggert’s PR #299:</i></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i><br></i></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><a href="https://github.com/apple/swift-corelibs-foundation/pull/299" target="_blank"><i>https://github.com/apple/<wbr>swift-corelibs-foundation/<wbr>pull/299</i></a></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i><br></i></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i>Is there some reason we ended up with a somewhat cut-down version of those (I understand that perhaps the URLSession implementation itself from this PR was not used, but perhaps we could pull some of the tests forward, or the more flexible loopback implementation) in master? Sorry if this is a silly question — I’m not very well-versed in the more low-level networking stuff involved here so there may be some obvious reason these are not suitable that I am missing.</i></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div></span><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif">&gt;&gt; Yes, PR 299 from Daniel Eggert had a much mature loopback server and a better test coverage. However, it used functionality from the internal classes in the NSURLSession package (HTTPBodySource and friends), for which we needed to used a <a href="https://github.com/apple/swift-corelibs-foundation/pull/299/files#diff-aec4665d7562834babd21b66fa84ee45R20" title="https://github.com/apple/swift-corelibs-foundation/pull/299/files#diff-aec4665d7562834babd21b66fa84ee45R20" target="_blank">@testable import </a>in TestFoundation. If I remember our discussions right,  to support a `@testable import` you&#39;d need to do build Foundation with the `-enable-testing` flag, which may not acceptable for Release builds. Of course, there was the possibility of rewriting this functionality (from the internal classes) all over again. But we decided to start with a simple loopback server and then build on it. </div><span class=""><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i>Mailing list user Mike Ferenduros also put together what to my eye are some pretty comprehensive tests that have not ever seemed to be PR’d or merged, described here:</i></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><a href="https://lists.swift.org/pipermail/swift-corelibs-dev/Week-of-Mon-20160912/000943.html" target="_blank"><i>https://lists.swift.org/<wbr>pipermail/swift-corelibs-dev/<wbr>Week-of-Mon-20160912/000943.<wbr>html</i></a></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div></span><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i>&gt;&gt; </i>Yes, I am aware of the extensive tests Mike Ferenduros has written. In my opinion, it will be great to have them contributed once we have a more mature loopback server infrastructure. Mike has also opened a dozen URLSession bugs!</div><span class=""><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><i>Seems like there was some concern over the use of <a href="http://httpbin.org" target="_blank">httpbin.org</a>, but these could be perhaps pulled in and simply redirected to hit the loopback, as the rest seems pretty well thought-out.</i></div></span><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif">&gt;&gt; The problem we have had with external URLs is the delays and intermittent failures which keep breaking the CI builds, causing much agony to many! Can you tell me more about this solution you propose?</div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif"><br></div><div style="font-family:&#39;Default Sans Serif&#39;,Verdana,Arial,Helvetica,sans-serif">Thanks!</div><font face="Verdana,Arial,Helvetica,sans-serif" size="2"><font><font><div class="m_7138102070348544025socmaildefaultfont" dir="ltr"><div class="m_7138102070348544025socmaildefaultfont" dir="ltr"><div class="m_7138102070348544025socmaildefaultfont" dir="ltr"><div dir="ltr" style="font-style:normal"><br><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif">Pushkar N Kulkarni,</font></div>
<div dir="ltr" style="font-style:normal"><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif">IBM Runtimes</font></div><div dir="ltr" style="font-style:normal"><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif"><br></font></div><div dir="ltr"><font face="serif, Times New Roman, Times, serif"><i>Simplicity is prerequisite for reliability - Edsger W. Dijkstra</i></font></div>
<div dir="ltr" style="font-style:normal;font-size:10.5pt;font-family:Arial"><br></div></div></div></div></font></font></font></div><br><br><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2" color="#000000" style="font-size:small;font-family:Verdana,Arial,Helvetica,sans-serif"><font color="#990099"><a href="mailto:-----swift-corelibs-dev-bounces@swift.org" target="_blank">-----swift-corelibs-dev-<wbr>bounces@swift.org</a> wrote: -----</font><div class="m_7138102070348544025iNotesHistory" style="padding-left:5px"><div style="padding-right:0px;padding-left:5px;border-left:solid black 2px">To: swift-corelibs-dev &lt;<a href="mailto:swift-corelibs-dev@swift.org" target="_blank">swift-corelibs-dev@swift.org</a>&gt;<br>From: Peter Tomaselli via swift-corelibs-dev <u></u><br>Sent by: <a href="mailto:swift-corelibs-dev-bounces@swift.org" target="_blank">swift-corelibs-dev-bounces@<wbr>swift.org</a><br>Date: 02/03/2017 08:11AM<br>Subject: Re: [swift-corelibs-dev] URLSession test fest!<div><div class="h5"><br><br>Following up on this…<div><br></div><div>I’m wondering if anyone has any info on what happened with the (rather more elaborate) “loopback” server and set of tests from @danieleggert’s PR #299:</div><div><br></div><div><a href="https://github.com/apple/swift-corelibs-foundation/pull/299" target="_blank">https://github.com/apple/<wbr>swift-corelibs-foundation/<wbr>pull/299</a></div><div><br></div><div>Is there some reason we ended up with a somewhat cut-down version of those (I understand that perhaps the URLSession implementation itself from this PR was not used, but perhaps we could pull some of the tests forward, or the more flexible loopback implementation) in master? Sorry if this is a silly question — I’m not very well-versed in the more low-level networking stuff involved here so there may be some obvious reason these are not suitable that I am missing.</div><div><br></div><div>Mailing list user Mike Ferenduros also put together what to my eye are some pretty comprehensive tests that have not ever seemed to be PR’d or merged, described here:</div><div><br></div><div><a href="https://lists.swift.org/pipermail/swift-corelibs-dev/Week-of-Mon-20160912/000943.html" target="_blank">https://lists.swift.org/<wbr>pipermail/swift-corelibs-dev/<wbr>Week-of-Mon-20160912/000943.<wbr>html</a></div><div><br></div><div>Seems like there was some concern over the use of <a href="http://httpbin.org" target="_blank">httpbin.org</a>, but these could be perhaps pulled in and simply redirected to hit the loopback, as the rest seems pretty well thought-out.</div><div><br></div><div>Just wondering if anyone has any of the background information here. I started writing some tests and loopback enhancements of my own but these other two gentlemen are way ahead of me, so maybe we should grab what we can from them, if it is possible to do so! Happy to take a crack at that if it seems like a sane idea.</div><div><br></div><div>Cheers,</div><div><br></div><div>Peter</div><div><br><div><blockquote type="cite"><div>On Jan 31, 2017, at 8:45 AM, Peter Tomaselli &lt;<a href="mailto:vast.grapes@gmail.com" target="_blank">vast.grapes@gmail.com</a>&gt; wrote:</div><br class="m_7138102070348544025Apple-interchange-newline"><div><div>Rad, thanks Tony. I can run all the tests now. Hoping to have some time soon to dig in and see if I can make a contribution. Love that this thing is spinning up its own HTTP server for this — seems real fun.<br><br>Cheers,<br><br>Peter<br><br><blockquote type="cite">On Jan 30, 2017, at 5:46 PM, Tony Parker &lt;<a href="mailto:anthony.parker@apple.com" target="_blank">anthony.parker@apple.com</a>&gt; wrote:<br><br>I see what this problem is. I’ll have a PR up shortly to fix it.<br><br>- Tony<br></blockquote><br></div></div></blockquote></div><br></div></div></div><span class=""><div><font face="Courier New,Courier,monospace" size="3">______________________________<wbr>_________________<br>swift-corelibs-dev mailing list<br><a href="mailto:swift-corelibs-dev@swift.org" target="_blank">swift-corelibs-dev@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-corelibs-dev" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>corelibs-dev</a><br></font></div><u></u></span></div></div></font></font><br>

</blockquote></div><br></div>