Loading...
tests/ipc/mach_port_construct_errors.c xnu-12377.101.15 /dev/null
--- xnu/xnu-12377.101.15/tests/ipc/mach_port_construct_errors.c
+++ /dev/null
@@ -1,98 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <mach/mach.h>
-#include <mach/mach_port.h>
-#include <sys/code_signing.h>
-#include <sys/sysctl.h>
-#include <darwintest.h>
-#include "ipc_utils.h"
-
-T_GLOBAL_META(
-	T_META_NAMESPACE("xnu.ipc"),
-	T_META_RUN_CONCURRENTLY(TRUE),
-	T_META_RADAR_COMPONENT_NAME("xnu"),
-	T_META_RADAR_COMPONENT_VERSION("IPC"),
-	T_META_TAG_VM_PREFERRED);
-
-
-T_DECL(mach_port_construct_invalid_arguments_and_values,
-    "mach_port_construct invalid arguments and values")
-{
-	kern_return_t kr;
-	mach_port_t port;
-
-	mach_port_options_t conn_opts = {
-		.flags = MPO_CONNECTION_PORT,
-		.service_port_name = 0x0
-	};
-
-	kr = mach_port_construct(mach_task_self(), &conn_opts, 0x0, &port);
-	T_ASSERT_MACH_ERROR(kr,
-	    KERN_INVALID_ARGUMENT,
-	    "MPO_CONNECTION_PORT failed on service_port_name");
-
-	conn_opts.service_port_name = MPO_ANONYMOUS_SERVICE;
-
-	kr = mach_port_construct(mach_task_self(), &conn_opts, 0x0, &port);
-	T_ASSERT_MACH_SUCCESS(kr, "MPO_CONNECTION_PORT succeeds with anonymous service name");
-	kr = mach_port_destruct(mach_task_self(), port, 0, 0);
-	T_ASSERT_MACH_SUCCESS(kr, "destroy anonymous service name");
-
-	mach_port_options_t qlimit_opts = {
-		.flags = MPO_QLIMIT,
-		.mpl.mpl_qlimit = MACH_PORT_QLIMIT_MAX + 1
-	};
-
-	kr = mach_port_construct(mach_task_self(), &qlimit_opts, 0x0, &port);
-	T_ASSERT_MACH_ERROR(kr,
-	    KERN_INVALID_VALUE,
-	    "MPO_QLIMIT failed on invalid value");
-
-	/* Enumerate on all unknown MPO flags */
-	mach_port_options_t unknown_flags_opts;
-	for (uint32_t i = 0; i < sizeof(unknown_flags_opts.flags) * CHAR_BIT; ++i) {
-		unknown_flags_opts.flags = MPO_UNUSED_BITS & (1 << i);
-
-		if (unknown_flags_opts.flags != 0) {
-			kr = mach_port_construct(mach_task_self(), &unknown_flags_opts, 0x0, &port);
-			T_ASSERT_MACH_ERROR(kr,
-			    KERN_INVALID_ARGUMENT,
-			    "Unknown MPO flags 0x%x failed with KERN_INVALID_ARGUMENT",
-			    unknown_flags_opts.flags);
-		}
-	}
-}
-
-T_DECL(mach_port_construct_fatal_failure,
-    "mach_port_construct kern defined fatal failures",
-    T_META_IGNORECRASHES(".*mach_port_construct_errors.*"),
-    T_META_ENABLED(!TARGET_OS_OSX && !TARGET_OS_BRIDGE))
-{
-	expect_sigkill(^{
-		mach_port_t port;
-		mach_port_options_t opts = {
-		        .flags = MPO_CONNECTION_PORT_WITH_PORT_ARRAY
-		};
-		(void)mach_port_construct(mach_task_self(), &opts, 0x0, &port);
-	}, "passing MPO_CONNECTION_PORT_WITH_PORT_ARRAY without entitlement");
-}
-
-T_DECL(mach_port_construct_kern_denied,
-    "mach_port_construct kern defined failures",
-    T_META_TAG_VM_PREFERRED,
-    T_META_ENABLED(!TARGET_OS_OSX && !TARGET_OS_BRIDGE))
-{
-	kern_return_t kr;
-	mach_port_t port;
-	mach_port_options_t opts;
-
-	/*
-	 * should fail because only TASK_GRAPHICS_SERVER is allowed to
-	 * use MPO_TG_BLOCK_TRACKING.
-	 */
-	opts.flags = MPO_TG_BLOCK_TRACKING;
-
-	kr = mach_port_construct(mach_task_self(), &opts, 0x0, &port);
-	T_ASSERT_MACH_ERROR(kr,
-	    KERN_DENIED, "MPO_TG_BLOCK_TRACKING failed with KERN_DENIED");
-}