The errno is 13 (which I think is just a generic Permission Denied). I am connecting to localhost.
I did find this post in the Apple Developer Forums (https://forums.developer.apple.com/thread/52211): How do I unittest a command line application? |Apple Developer Forums<https://forums.developer.apple.com/thread/52211> Yes, you can add the unit testing bundle, but it won't let you set Target to be Tested.. Right. That’s because the machinery to load your test bundle within a process only works if the process is based on a GUI framework (like Cocoa or Cocoa Touch). forums.developer.apple.com A command line tool typically does not use a GUI framework and thus the test machinery is unable to load your bundle into that tool. However, you can test without an app target. If you set the Target to be Tested popup to None, Xcode will load your test bundle into its built-in ‘test runner’ tool, xctest. This works well for most but there are some gotchas. Specifically, if the code you’re using requires entitlements then you won’t be able to test it like this because there’s no way to give those entitlements to xctest. The standard workaround for that is to add a dummy test target app to your project. Assuming the problem is that I need to add the App Sandbox -> Outgoing Connections (Client) entitlement to the command line target (since I can't add any entitlements to the test target; clicking "+ Capabilities" brings up a dialog saying that capabilities are not support for this target), how do I create "a dummy test target app?" As I said before, I created the test target by using the Unit Test Bundle template, and I don't see any other relevant choices. Rob ________________________________ From: Jens Alfke <j...@mooseyard.com> Sent: Thursday, December 12, 2019 1:58 PM To: Robert Walsh <rwa...@envisionware.com> Cc: Cocoa-Dev (Apple) <cocoa-dev@lists.apple.com> Subject: Re: Permission Denied trying to connect to localhost in unit test On Dec 12, 2019, at 7:42 AM, Robert Walsh via Cocoa-dev <cocoa-dev@lists.apple.com<mailto:cocoa-dev@lists.apple.com>> wrote: I am writing a command line application in Objective-C that needs to make a TCP connection to a server. In a unit test for the TcpClient class I am writing, I have a simple TCP server that listens for connections in a thread. When I try to connect to this socket from the client socket class, connect() fails and perror reports Permission Denied. That's odd. I've written plenty of macOS networking code and not seen this problem. What is the errno value? The only thing I can guess is that the Xcode test-runner process is being sandboxed to prevent outgoing networking, but I've definitely run TCP connections from XCTests without problems. Are you connecting to "localhost" / 127.0.0.1, or using an explicit IP address? —Jens _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com