Esempio n. 1
0
        private EventWaitHandle CreateEventWaitHandle(bool initialState, EventResetMode mode, string name, EventWaitHandleSecurity expectedSecurity, bool expectedCreatedNew)
        {
            EventWaitHandle handle = EventWaitHandleAcl.Create(initialState, mode, name, out bool createdNew, expectedSecurity);

            Assert.NotNull(handle);
            Assert.Equal(expectedCreatedNew, createdNew);
            return(handle);
        }
Esempio n. 2
0
        public void EventWaitHandle_OpenExisting_PathNotFound()
        {
            string name = @"global\foo";

            Assert.Throws <DirectoryNotFoundException>(() =>
            {
                EventWaitHandleAcl.OpenExisting(name, EventWaitHandleRights.FullControl).Dispose();
            });

            Assert.False(EventWaitHandleAcl.TryOpenExisting(name, EventWaitHandleRights.FullControl, out _));
        }
Esempio n. 3
0
        public void EventWaitHandle_OpenExisting_NameInvalid()
        {
            string name = '\0'.ToString();

            Assert.Throws <WaitHandleCannotBeOpenedException>(() =>
            {
                EventWaitHandleAcl.OpenExisting(name, EventWaitHandleRights.FullControl).Dispose();
            });

            Assert.False(EventWaitHandleAcl.TryOpenExisting(name, EventWaitHandleRights.FullControl, out _));
        }
Esempio n. 4
0
        public void EventWaitHandle_OpenExisting_NameNotFound()
        {
            string name = "ThisShouldNotExist";

            Assert.Throws <WaitHandleCannotBeOpenedException>(() =>
            {
                EventWaitHandleAcl.OpenExisting(name, EventWaitHandleRights.FullControl).Dispose();
            });

            Assert.False(EventWaitHandleAcl.TryOpenExisting(name, EventWaitHandleRights.FullControl, out _));
        }
Esempio n. 5
0
        public void EventWaitHandle_OpenExisting_EmptyName()
        {
            Assert.Throws <ArgumentException>(() =>
            {
                EventWaitHandleAcl.OpenExisting(string.Empty, EventWaitHandleRights.FullControl).Dispose();
            });

            Assert.Throws <ArgumentException>(() =>
            {
                EventWaitHandleAcl.TryOpenExisting(string.Empty, EventWaitHandleRights.FullControl, out _);
            });
        }
Esempio n. 6
0
        public void EventWaitHandle_OpenExisting_BadPathName()
        {
            string name = @"\\?\Path";

            Assert.Throws <System.IO.IOException>(() =>
            {
                EventWaitHandleAcl.OpenExisting(name, EventWaitHandleRights.FullControl).Dispose();
            });

            Assert.Throws <System.IO.IOException>(() =>
            {
                EventWaitHandleAcl.TryOpenExisting(name, EventWaitHandleRights.FullControl, out _);
            });
        }
Esempio n. 7
0
        public void EventWaitHandle_OpenExisting()
        {
            string name = GetRandomName();
            EventWaitHandleSecurity expectedSecurity = GetEventWaitHandleSecurity(WellKnownSidType.BuiltinUsersSid, EventWaitHandleRights.FullControl, AccessControlType.Allow);

            using EventWaitHandle EventWaitHandleNew = CreateAndVerifyEventWaitHandle(initialState: true, EventResetMode.AutoReset, name, expectedSecurity, expectedCreatedNew: true);

            using EventWaitHandle EventWaitHandleExisting = EventWaitHandleAcl.OpenExisting(name, EventWaitHandleRights.FullControl);

            VerifyHandles(EventWaitHandleNew, EventWaitHandleExisting);
            EventWaitHandleSecurity actualSecurity = EventWaitHandleExisting.GetAccessControl();

            VerifyEventWaitHandleSecurity(expectedSecurity, actualSecurity);
        }