Пример #1
0
        public static void TestKillCrit()
        {
            var sut = ReaderThread.TextChecker(
                "[RLS]V952 killed Tom with sniperrifle. (crit)");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.KillCrit));
        }
Пример #2
0
        public static void TestKillCrit()
        {
            var sut = ReaderThread.TextChecker(
                "DllMain | aimware killed One-Man Cheeseburger Apocalypse with sniperrifle. (crit)");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.KillCrit));
        }
Пример #3
0
        public static void TestChat()
        {
            var sut = ReaderThread.TextChecker(
                "*DEAD* Hey : ImJust a test lul");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.Chatted));
        }
Пример #4
0
        /* Methods */
        /// <summary>
        /// TCP provider constructor
        /// </summary>
        /// <param name="lcm">LCM object</param>
        /// <param name="up">URL parser object</param>
        public TCPProvider(LCM lcm, URLParser up)
        {
            this.lcm = lcm;

            string[] addrport = up.Get("network", DEFAULT_NETWORK).Split(':');
            if (addrport.Length == 1)
            {
                inetAddr = System.Net.Dns.GetHostAddresses(addrport[0])[0];
                inetPort = 7700;
            }
            else if (addrport.Length == 2)
            {
                inetAddr = System.Net.Dns.GetHostAddresses(addrport[0])[0];
                inetPort = Int32.Parse(addrport[1]);
            }
            else
            {
                Console.Error.WriteLine("TCPProvider: Don't know how to parse " + up.Get("network", DEFAULT_NETWORK));
                Environment.Exit(-1);
            }

            reader = new ReaderThread(this);

            reader.Connected    += OnConnect;
            reader.Disconnected += OnDisconnect;

            reader.Start();
        }
Пример #5
0
        public static void TestCommandExecute()
        {
            var sut = ReaderThread.TextChecker(
                "nickname test lyl:) : !request https://www.youtube.com/watch?v=DZV3Xtp-BK0");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.CommandExecute));
        }
Пример #6
0
        public static void TestKill()
        {
            var sut = ReaderThread.TextChecker("BoyPussi killed dat boi 28 with sniperrifle. (crit)");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.KillCrit));
            sut = ReaderThread.TextChecker(
                "[NCC] DllMain killed $20 users with tf_projectile_rocket.");
            Assert.That(sut, Is.EqualTo(ReaderThread.Result.Kill));
        }
Пример #7
0
        public static void TestKill()
        {
            var sut = ReaderThread.TextChecker("BoyPussi killed dat boi 28 with sniperrifle. (crit)");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.KillCrit));
            sut = ReaderThread.TextChecker(
                "DllMain | aimware killed One-Man Cheeseburger Apocalypse with tf_projectile_rocket.");
            Assert.That(sut, Is.EqualTo(ReaderThread.Result.Kill));
        }
        public static void TestOne()
        {
            ReaderThread[] readers = new ReaderThread[5];
            WriterThread[] writers = new WriterThread[2];

            for (int i = 0; i < readers.Length; ++i)
            {
                readers [i] = new ReaderThread("#" + i);
                readers [i].Start();
            }

            for (int i = 0; i < writers.Length; ++i)
            {
                writers [i] = new WriterThread("#" + i);
                writers [i].Start();
            }
        }
Пример #9
0
        /// <summary>
        /// Close the TCP provider
        /// </summary>
        public virtual void Close()
        {
            lock (this)
            {
                if (reader != null)
                {
                    reader.Close();

                    try
                    {
                        reader.Join();
                    }
                    catch (System.Threading.ThreadInterruptedException)
                    {
                    }
                }

                reader = null;
            }
        }
Пример #10
0
        public virtual void TestIsCurrentWithThreads()
        {
            Directory         dir    = NewDirectory();
            IndexWriterConfig conf   = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random));
            IndexWriter       writer = new IndexWriter(dir, conf);
            ReaderHolder      holder = new ReaderHolder();

            ReaderThread[] threads      = new ReaderThread[AtLeast(3)];
            CountdownEvent latch        = new CountdownEvent(1);
            WriterThread   writerThread = new WriterThread(holder, writer, AtLeast(500), Random, latch);

            for (int i = 0; i < threads.Length; i++)
            {
                threads[i] = new ReaderThread(holder, latch);
                threads[i].Start();
            }
            writerThread.Start();

            writerThread.Join();
            bool failed = writerThread.failed != null;

            if (failed)
            {
                Console.WriteLine(writerThread.failed.ToString());
                Console.Write(writerThread.failed.StackTrace);
            }
            for (int i = 0; i < threads.Length; i++)
            {
                threads[i].Join();
                if (threads[i].failed != null)
                {
                    Console.WriteLine(threads[i].failed.ToString());
                    Console.Write(threads[i].failed.StackTrace);
                    failed = true;
                }
            }
            Assert.IsFalse(failed);
            writer.Dispose();
            dir.Dispose();
        }
        public virtual void TestIsCurrentWithThreads()
        {
            Directory dir = NewDirectory();
            IndexWriterConfig conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));
            IndexWriter writer = new IndexWriter(dir, conf);
            ReaderHolder holder = new ReaderHolder();
            ReaderThread[] threads = new ReaderThread[AtLeast(3)];
            CountdownEvent latch = new CountdownEvent(1);
            WriterThread writerThread = new WriterThread(holder, writer, AtLeast(500), Random(), latch);
            for (int i = 0; i < threads.Length; i++)
            {
                threads[i] = new ReaderThread(holder, latch);
                threads[i].Start();
            }
            writerThread.Start();

            writerThread.Join();
            bool failed = writerThread.Failed != null;
            if (failed)
            {
                Console.WriteLine(writerThread.Failed.ToString());
                Console.Write(writerThread.Failed.StackTrace);
            }
            for (int i = 0; i < threads.Length; i++)
            {
                threads[i].Join();
                if (threads[i].Failed != null)
                {
                    Console.WriteLine(threads[i].Failed.ToString());
                    Console.Write(threads[i].Failed.StackTrace);
                    failed = true;
                }
            }
            Assert.IsFalse(failed);
            writer.Dispose();
            dir.Dispose();
        }
Пример #12
0
		/* Methods */
		/// <summary>
		/// TCP provider constructor
		/// </summary>
		/// <param name="lcm">LCM object</param>
		/// <param name="up">URL parser object</param>
		public TCPProvider(LCM lcm, URLParser up)
		{
			this.lcm = lcm;
			
			string[] addrport = up.Get("network", DEFAULT_NETWORK).Split(':');
			if (addrport.Length == 1)
			{
				inetAddr = System.Net.Dns.GetHostAddresses(addrport[0])[0];
				inetPort = 7700;
			}
			else if (addrport.Length == 2)
			{
				inetAddr = System.Net.Dns.GetHostAddresses(addrport[0])[0];
				inetPort = Int32.Parse(addrport[1]);
			}
			else
			{
				Console.Error.WriteLine("TCPProvider: Don't know how to parse " + up.Get("network", DEFAULT_NETWORK));
				Environment.Exit(-1);
			}
			
			reader = new ReaderThread(this);
			reader.Start();
		}
Пример #13
0
        protected override void ExecuteConcrete()
        {
            #region Extension of the compressed file
            try
            {
                var extension = Path.GetExtension(destination);
                if (!extension.Equals(".gz", StringComparison.CurrentCultureIgnoreCase))
                {
                    destination += ".gz";
                }
            }
            catch
            {
                Console.WriteLine("Resulting file name contrains invalid characters.");
                return;
            }
            #endregion

            #region Checking and re-writing existing file
            try
            {
                if (File.Exists(destination))
                {
                    Console.WriteLine($"The file {destination} already exists. Rewrite it? y/n");
                    var answer = Console.ReadLine();
                    if (!answer.Equals("y", StringComparison.CurrentCultureIgnoreCase))
                    {
                        return;
                    }
                    else
                    {
                        try
                        {
                            File.Delete(destination);
                        }
                        catch (UnauthorizedAccessException)
                        {
                            Console.WriteLine("You have no rights to overwrite the file, or this file is in use by another app.");
                            return;
                        }
                        catch (IOException)
                        {
                            Console.WriteLine("The file is in use by another app, so it is unable to overwrite it.");
                            return;
                        }
                        catch
                        {
                            Console.WriteLine("Unable to overwrite this file. Probably you've set an invalid file name.");
                            return;
                        }
                    }
                }
            }
            catch
            {
                Console.WriteLine("Unknown error. Please try set another resulting file name.");
            }
            #endregion

            var numberOfCompressorThreads   = Environment.ProcessorCount;
            var sharedStateAfterReadFile    = ReaderCompressorSharedState.Create(numberOfCompressorThreads, c_readFileChunkSize);
            var sharedStateAfterCompression = CompressorWriterSharedState.Create(numberOfCompressorThreads, numberOfCompressorThreads * 2);
            var reader      = new ReaderThread(source, c_readFileChunkSize, (IForReaderThread)sharedStateAfterReadFile);
            var compressors = Enumerable
                              .Range(0, numberOfCompressorThreads)
                              .Select(x => new CompressorThread(c_readFileChunkSize, (IForCompressorThreadInput)sharedStateAfterReadFile, (IForCompressorThreadOutput)sharedStateAfterCompression))
                              .ToList();
            var writer = new WriterThread(destination, c_readFileChunkSize, (IForWriterThread)sharedStateAfterCompression);

            //Console.WriteLine("Press 'c' to cancel.");
            //if (Console.ReadKey(true).KeyChar == 'c')
            //{
            //    sharedStateAfterReadFile.Cancel();
            //}
            reader.Join();
            compressors.ForEach(x => x.Join());
            writer.Join();

            Console.WriteLine("Finished. Press enter to exit.");
            Console.ReadLine();
        }
Пример #14
0
		public virtual void  TestThreadSafety()
		{
			Directory dir = new MockRAMDirectory();
			int n = 150;
			
			IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(), IndexWriter.MaxFieldLength.LIMITED);
			for (int i = 0; i < n; i++)
			{
				writer.AddDocument(CreateDocument(i, 3));
			}
			writer.Optimize();
			writer.Close();
			
			TestReopen test = new AnonymousClassTestReopen7(dir, n, this);
			
			System.Collections.IList readers = (System.Collections.IList) System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(new System.Collections.ArrayList()));
			IndexReader firstReader = IndexReader.Open(dir);
			IndexReader reader = firstReader;
			System.Random rnd = NewRandom();
			
			ReaderThread[] threads = new ReaderThread[n];
			System.Collections.Hashtable readersToClose = System.Collections.Hashtable.Synchronized(new System.Collections.Hashtable());
			
			for (int i = 0; i < n; i++)
			{
				if (i % 10 == 0)
				{
					IndexReader refreshed = reader.Reopen();
					if (refreshed != reader)
					{
						SupportClass.CollectionsHelper.AddIfNotContains(readersToClose, reader);
					}
					reader = refreshed;
				}
				IndexReader r = reader;
				
				int index = i;
				
				ReaderThreadTask task;
				
				if (i < 20 || (i >= 50 && i < 70) || i > 90)
				{
					task = new AnonymousClassReaderThreadTask(index, r, test, readersToClose, readers, rnd, this);
				}
				else
				{
					task = new AnonymousClassReaderThreadTask1(readers, rnd, this);
				}
				
				threads[i] = new ReaderThread(task);
				threads[i].Start();
			}
			
			lock (this)
			{
				System.Threading.Monitor.Wait(this, 15000);
			}
			
			for (int i = 0; i < n; i++)
			{
				if (threads[i] != null)
				{
					threads[i].StopThread();
				}
			}
			
			for (int i = 0; i < n; i++)
			{
				if (threads[i] != null)
				{
					threads[i].Join();
					if (threads[i].error != null)
					{
						System.String msg = "Error occurred in thread " + threads[i].Name + ":\n" + threads[i].error.Message;
						Assert.Fail(msg);
					}
				}
			}
			
			System.Collections.IEnumerator it = readersToClose.GetEnumerator();
			while (it.MoveNext())
			{
				((IndexReader) ((System.Collections.DictionaryEntry)it.Current).Key).Close();
			}
			
			firstReader.Close();
			reader.Close();
			
			it = readersToClose.GetEnumerator();
			while (it.MoveNext())
			{
                AssertReaderClosed((IndexReader)((System.Collections.DictionaryEntry)it.Current).Key, true, true);
			}
			
			AssertReaderClosed(reader, true, true);
			AssertReaderClosed(firstReader, true, true);
			
			dir.Close();
		}
Пример #15
0
		/// <summary>
		/// Close the TCP provider
		/// </summary>
		public virtual void Close()
		{
			lock (this)
			{
				if (reader != null)
				{
					reader.Close();
					
					try
					{
						reader.Join();
					}
					catch (System.Threading.ThreadInterruptedException)
					{
					}
				}
				
				reader = null;
			}
		}
Пример #16
0
        public static void TestConnect()
        {
            var sut = ReaderThread.TextChecker("[NCC]Effie connected");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.Connected));
        }
		public virtual void  TestThreadSafety()
		{
			Directory dir = new RAMDirectory();
			int n = 150;
			
			IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer());
			for (int i = 0; i < n; i++)
			{
				writer.AddDocument(CreateDocument(i, 3));
			}
			writer.Optimize();
			writer.Close();
			
			TestReopen_Renamed_Class test = new AnonymousClassTestReopen7(dir, n, this);
			
			System.Collections.IList readers = (System.Collections.IList) System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(new System.Collections.ArrayList()));
			IndexReader firstReader = IndexReader.Open(dir);
			IndexReader reader = firstReader;
			System.Random rnd = new System.Random();
			
			ReaderThread[] threads = new ReaderThread[n];
			System.Collections.Hashtable readersToClose = System.Collections.Hashtable.Synchronized(new System.Collections.Hashtable());
			
			for (int i = 0; i < n; i++)
			{
				if (i % 10 == 0)
				{
					IndexReader refreshed = reader.Reopen();
					if (refreshed != reader)
					{
						if (!readersToClose.Contains(reader))
							readersToClose.Add(reader, reader);
					}
					reader = refreshed;
				}
				IndexReader r = reader;
				
				int index = i;
				
				ReaderThreadTask task;
				
				if (i < 20 || (i >= 50 && i < 70) || i > 90)
				{
					task = new AnonymousClassReaderThreadTask(index, r, test, readersToClose, readers, rnd, this);
				}
				else
				{
					task = new AnonymousClassReaderThreadTask1(readers, rnd, this);
				}
				
				threads[i] = new ReaderThread(task);
				threads[i].Start();
			}
			
			lock (this)
			{
				try
				{
					System.Threading.Monitor.Wait(this, 15000);
				}
				catch (System.Threading.ThreadInterruptedException)
				{
				}
			}
			
			for (int i = 0; i < n; i++)
			{
				if (threads[i] != null)
				{
					threads[i].StopThread();
				}
			}
			
			for (int i = 0; i < n; i++)
			{
				if (threads[i] != null)
				{
					try
					{
						threads[i].Join();
						if (threads[i].exception != null)
						{
							throw threads[i].exception;
						}
					}
					catch (System.Threading.ThreadInterruptedException)
					{
					}
				}
			}
			
			System.Collections.IEnumerator it = readersToClose.Keys.GetEnumerator();
			while (it.MoveNext())
			{
				((IndexReader) it.Current).Close();
			}
			
			firstReader.Close();
			reader.Close();
			
			it = readersToClose.Keys.GetEnumerator();
			while (it.MoveNext())
			{
				AssertReaderClosed((IndexReader) it.Current, true, true);
			}
			
			AssertReaderClosed(reader, true, true);
			AssertReaderClosed(firstReader, true, true);
		}
Пример #18
0
    IEnumerator LeseDaten10()
    {
        /*
         * Die Blöcke 6 und 7-1 bis 7-x (x.Max = 12) werden ausgelesenen und auf Grundlage dieser Daten
         * entstehen die Punkt und Dreiecksnetze
         */

        // List<Thread> threadList = new List<Thread>();
        var listeDerThreads  = new List <Thread>();
        var eingeleseneZeile = "";

        do
        {
            eingeleseneZeile = _daten10Leser.ReadLine();

            if (eingeleseneZeile != null)
            {
                if (eingeleseneZeile.Contains("BLOCK  6"))
                {
                    SchreibeLogEintrag("Beginne mit der Bearbeitung vom Block 6");

                    var leseBlock6 = new ReaderGeometrie(_datenAblage);

                    SchreibeLogEintrag("Bearbeitung vom Block 6 beendet");

                    InitialisierungDynamischeVariablen();

                    BearbeiteDreiecke();

                    SchreibeLogEintrag("Dreiecke sortiert");


                    for (int indexLeiter = 1; indexLeiter < 10; indexLeiter++)
                    {
                        SchreibeLogEintrag("Starte Thread " + indexLeiter);

                        var readerThread = new ReaderThread("BLOCK  7-" + indexLeiter, indexLeiter - 1, _datenAblage);
                        var readThread   = new Thread(new ThreadStart(readerThread.read));
                        readThread.Start();
                        listeDerThreads.Add(readThread);
                    }


                    for (int indexLeiter = 10; indexLeiter < 13; indexLeiter++)
                    {
                        SchreibeLogEintrag("Starte Thread " + indexLeiter);

                        var readerThread = new ReaderThread("BLOCK  7" + indexLeiter, indexLeiter - 1, _datenAblage);
                        var readThread   = new Thread(new ThreadStart(readerThread.read));
                        readThread.Start();
                        listeDerThreads.Add(readThread);
                    }

                    SchreibeLogEintrag(" Anzahl der gestarteten Threads " + listeDerThreads.Count);

                    // _anzeigeText = (" Anzahl der gestarteten Threads " + listeDerThreads.Count);

                    for (int zeigerAufDenThreadIndex = 0; zeigerAufDenThreadIndex < listeDerThreads.Count; zeigerAufDenThreadIndex++)
                    {
                        listeDerThreads[zeigerAufDenThreadIndex].Join();
                        _anzeigeText = (" Anzahl der beendeten Threads " + zeigerAufDenThreadIndex + 1);
                        SchreibeLogEintrag("Thread" + zeigerAufDenThreadIndex + " fertig");
                    }
                }
            }
        } while (!eingeleseneZeile.Contains("BLOCK  8"));

        SchreibeLogEintrag("Korrektur der Raumlage ");

        KorrekturDerRaumlage(_vectorDerLeiterOberkanten);

        SchreibeLogEintrag("Beginne mit der Netzgenerierung ");

        KonstruiereAngefordertesGameObject();

        return(null);
    }
        public virtual void TestThreadSafety()
        {
            Directory dir = NewDirectory();
            // NOTE: this also controls the number of threads!
            int         n      = TestUtil.NextInt(Random(), 20, 40);
            IndexWriter writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())));

            for (int i = 0; i < n; i++)
            {
                writer.AddDocument(CreateDocument(i, 3));
            }
            writer.ForceMerge(1);
            writer.Dispose();

            TestReopen test = new TestReopenAnonymousInnerClassHelper3(this, dir, n);

            IList <ReaderCouple> readers     = new SynchronizedCollection <ReaderCouple>();
            DirectoryReader      firstReader = DirectoryReader.Open(dir);
            DirectoryReader      reader      = firstReader;

            ReaderThread[]         threads        = new ReaderThread[n];
            ISet <DirectoryReader> readersToClose = new ConcurrentHashSet <DirectoryReader>(new HashSet <DirectoryReader>());

            for (int i = 0; i < n; i++)
            {
                if (i % 2 == 0)
                {
                    DirectoryReader refreshed = DirectoryReader.OpenIfChanged(reader);
                    if (refreshed != null)
                    {
                        readersToClose.Add(reader);
                        reader = refreshed;
                    }
                }
                DirectoryReader r = reader;

                int index = i;

                ReaderThreadTask task;

                if (i < 4 || (i >= 10 && i < 14) || i > 18)
                {
                    task = new ReaderThreadTaskAnonymousInnerClassHelper(this, test, readers, readersToClose, r, index);
                }
                else
                {
                    task = new ReaderThreadTaskAnonymousInnerClassHelper2(this, readers);
                }

                threads[i] = new ReaderThread(task);
                threads[i].Start();
            }

            lock (this)
            {
                Monitor.Wait(this, TimeSpan.FromMilliseconds(1000));
            }

            for (int i = 0; i < n; i++)
            {
                if (threads[i] != null)
                {
                    threads[i].StopThread();
                }
            }

            for (int i = 0; i < n; i++)
            {
                if (threads[i] != null)
                {
                    threads[i].Join();
                    if (threads[i].Error != null)
                    {
                        string msg = "Error occurred in thread " + threads[i].Name + ":\n" + threads[i].Error.Message;
                        Assert.Fail(msg);
                    }
                }
            }

            foreach (DirectoryReader readerToClose in readersToClose)
            {
                readerToClose.Dispose();
            }

            firstReader.Dispose();
            reader.Dispose();

            foreach (DirectoryReader readerToClose in readersToClose)
            {
                AssertReaderClosed(readerToClose, true);
            }

            AssertReaderClosed(reader, true);
            AssertReaderClosed(firstReader, true);

            dir.Dispose();
        }
Пример #20
0
        public static void TestSuicide()
        {
            var sut = ReaderThread.TextChecker("DurRud suicided.");

            Assert.That(sut, Is.EqualTo(ReaderThread.Result.Suicide));
        }