public void Method(object o) { Tracer.Tracer tracer = (Tracer.Tracer)o; tracer.StartTrace(); Thread.Sleep(100); tracer.StopTrace(); }
public void MultiThreadTest() { tracer = new Tracer.Tracer(); var threads = new List <Thread>(); long expectedTime = 0; Thread newThread; for (int i = 0; i < threadsCount; i++) { newThread = new Thread(SingleThreadedMethod); threads.Add(newThread); newThread.Start(); expectedTime += waitTime; } foreach (Thread thread in threads) { thread.Join(); } long actual = 0; foreach (ThreadTracingResult threadResult in tracer.GetTraceResult().ThreadTracingResults) { actual += threadResult.ExecutionTime; } TestExecutionTime(actual, expectedTime); }
static void Main(string[] args) { ITracer tracer = new Tracer.Tracer(); ISerializer serializerJSON = new SerializerJSON(); ISerializer serializerXML = new SerializerXML(); IOutputWriter writer = new OutputWriter.OutputWriter(); //Process var test = new Foo(tracer); test.MyMethod(); Thread thread = new Thread(test.MyMethod); thread.Start(); thread.Join(); //Serialize string result = serializerXML.Serialize(tracer.GetTraceResult()); StreamWriter fs = new StreamWriter("test.xml"); //Write writer.Write(result, fs); writer.Write(result); //Serialize result = serializerJSON.Serialize(tracer.GetTraceResult()); StreamWriter fs2 = new StreamWriter("test.json"); //Write writer.Write(result, fs2); writer.Write(result); fs.Close(); fs2.Close(); }
static void Main(string[] args) { Program program = new Program(); Thread thread = new Thread(new ParameterizedThreadStart(program.Method)); ITracer tracer = new Tracer.Tracer(); Foo foo = new Foo(tracer); foo.MyMethod(); foo.MyMethod2(); thread.Start(tracer); thread.Join(); XmlSerializer xmlTracerSerializer = new XmlSerializer(); JsonTracerSerializer jsonTracerSerializer = new JsonTracerSerializer(); TraceResult traceResult = tracer.GetTraceResult(); string xml = xmlTracerSerializer.Serialize(traceResult); string json = jsonTracerSerializer.Serialize(traceResult); FileSaver fs = new FileSaver("trace.json"); fs.Print(xml); fs.Print(json); ConsolePrinter cp = new ConsolePrinter(); cp.Print(xml); cp.Print(json); Console.ReadKey(); }
public void InnerMethodTest() { tracer = new Tracer.Tracer(); tracer.StartTrace(); Thread.Sleep(waitTime); SingleThreadedMethod(); tracer.StopTrace(); TraceResult traceResult = tracer.GetTraceResult(); Assert.AreEqual(1, traceResult.ThreadTracingResults.Count); TestExecutionTime(tracer.GetTraceResult().ThreadTracingResults[0].ExecutionTime, waitTime * 2); Assert.AreEqual(1, traceResult.ThreadTracingResults[0].ThreadMethods.Count); MethodTracingResult methodResult = traceResult.ThreadTracingResults[0].ThreadMethods[0]; Assert.AreEqual(nameof(UnitTests), methodResult.ClassName); Assert.AreEqual(nameof(InnerMethodTest), methodResult.MethodName); TestExecutionTime(methodResult.ExecutionTime, waitTime * 2); Assert.AreEqual(1, methodResult.InnerMethods.Count); MethodTracingResult innerMethodResult = methodResult.InnerMethods[0]; Assert.AreEqual(nameof(UnitTests), innerMethodResult.ClassName); Assert.AreEqual(nameof(SingleThreadedMethod), innerMethodResult.MethodName); TestExecutionTime(innerMethodResult.ExecutionTime, waitTime); }
public void SimpleMultiThreadTest() { tracer = new Tracer.Tracer(); var threads = new List <Thread>(); long expected = 0; Thread newThread; for (int i = 0; i < threadsCount; i++) { newThread = new Thread(SimpleTestMethod); threads.Add(newThread); newThread.Start(); expected += waitTime; } foreach (Thread thread in threads) { thread.Join(); } long actual = 0; foreach (ThreadTracer threadResult in tracer.GetTraceResult().ThreadsList) { actual += threadResult.Time; } Assert.AreEqual(TimeTest(actual, expected), true, timeTestFailMessage); }
static void Main(string[] args) { Console.WriteLine("Start:"); exampleTracer = new Tracer.Tracer(); new ExampleTests(exampleTracer).MultiThreadedMethod(); IWriter writer; //Вывод в консоль writer = new ConsoleWriter(); writer.WriteResult(exampleTracer.GetTraceResult(), new JsonSerializer()); Console.WriteLine(""); writer.WriteResult(exampleTracer.GetTraceResult(), new XmlSerializer()); // Вывод в файл string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); writer = new FileWriter(desktopPath + "\\xmlSerialized.xml"); writer.WriteResult(exampleTracer.GetTraceResult(), new XmlSerializer()); writer = new FileWriter(desktopPath + "\\jsonSerialized.json"); writer.WriteResult(exampleTracer.GetTraceResult(), new JsonSerializer()); Console.ReadKey(); }
private void ff(Tracer.Tracer tracer) { tracer.StartTrace(); f(tracer); f(tracer); f(tracer); Thread.Sleep(100); tracer.StopTrace(); }
public void SingleThreadTest() { tracer = new Tracer.Tracer(); tracer.StartTrace(); Thread.Sleep(waitTime); tracer.StopTrace(); long actual = tracer.GetTraceResult().ThreadsList[0].Time; Assert.AreEqual(TimeTest(actual, waitTime), true, timeTestFailMessage); }
public void Test3() { Tracer.Tracer tracer = new Tracer.Tracer(); Thread thread = new Thread(new ParameterizedThreadStart(f1)); thread.Start(tracer); ff(tracer); Thread.Sleep(100); Assert.AreEqual(2, tracer.GetTraceResult().Threads.Length); }
public void CommonTest1() { Tracer.Tracer tracer = new Tracer.Tracer(); tracer.StartTrace(); Thread.Sleep(100); tracer.StopTrace(); string[] actual = tracer.GetTraceResult(); string[] expected = { "[\r\n {\r\n \"time\": 0,\r\n \"methodName\": \"1\",\r\n \"className\": \"Thread\",\r\n \"traceResultList\": [\r\n {\r\n \"time\": 116,\r\n \"methodName\": \"Main\",\r\n \"className\": \"Program\",\r\n \"traceResultList\": []\r\n }\r\n ]\r\n }\r\n]", "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<ArrayOfTraceResult xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n <TraceResult>\r\n <stopwatch />\r\n <time>0</time>\r\n <methodName>1</methodName>\r\n <className>Thread</className>\r\n <traceResultList>\r\n <TraceResult>\r\n <stopwatch />\r\n <time>106</time>\r\n <methodName>Main</methodName>\r\n <className>Program</className>\r\n <traceResultList />\r\n </TraceResult>\r\n </traceResultList>\r\n </TraceResult>\r\n</ArrayOfTraceResult>" }; Assert.AreEqual(expected, actual); }
public void SingleThreadTest() { tracer = new Tracer.Tracer(); tracer.StartTrace(); Thread.Sleep(waitTime); tracer.StopTrace(); long actual = tracer.GetTraceResult().ThreadTracingResults[0].ExecutionTime; TestExecutionTime(actual, waitTime); }
static void Main(string[] args) { tracer = new Tracer.Tracer(); var test = new UnitTestMethod(tracer); test.HardMethod(); new ConsoleWrite().Write(new XmlSerialize(), tracer.GetTraceResult()); new ConsoleWrite().Write(new JSONSerialize(), tracer.GetTraceResult()); new FileWrite("D:\\Учеба\\лабы\\5 сем\\СПП\\1 лаба\\Result1.txt").Write(new XmlSerialize(), tracer.GetTraceResult()); new FileWrite("D:\\Учеба\\лабы\\5 сем\\СПП\\1 лаба\\Result.txt").Write(new JSONSerialize(), tracer.GetTraceResult()); Console.ReadKey(); }
static void Main(string[] args) { tracer = new Tracer.Tracer(); var test = new TestMethods(tracer); test.XXXMethod(); new ConsoleWriter().Write(new SerializerJSON(), tracer.GetTraceResult()); string filename = "D:\\УНИВЕР\\5 семестр\\СПП\\ThreadsInfo.txt"; new FileWriter(filename).Write(new SerializerXML(), tracer.GetTraceResult()); Console.ReadKey(); }
public void HardMultiThreadTest() { tracer = new Tracer.Tracer(); var threads = new List <Thread>(); long expected = 0; Thread newThread; for (int i = 0; i < threadsCount; i++) { newThread = new Thread(MultiThreadedMethod); threads.Add(newThread); newThread.Start(); expected += waitTime * (threadsCount + 1); } foreach (Thread thread in threads) { thread.Join(); } long actual = 0; TraceResult result = tracer.GetTraceResult(); foreach (ThreadTracer threadResult in result.ThreadsList) { actual += threadResult.Time; } Assert.AreEqual(TimeTest(actual, expected), true, timeTestFailMessage); Assert.AreEqual(threadsCount * threadsCount + threadsCount, result.ThreadsList.Count, countTestFailMessage); int multiThreadedMethodCounter = 0, singleThreadedMethodCounter = 0; MethodTracer methodResult; foreach (ThreadTracer threadTracer in result.ThreadsList) { methodResult = threadTracer.InnerMethods[0]; Assert.AreEqual(0, methodResult.InnerMethods.Count, countTestFailMessage); Assert.AreEqual(nameof(TracerUnitTest), methodResult.ClassName, classNameTestFailMessage); Assert.AreEqual(TimeTest(methodResult.Time, waitTime), true, timeTestFailMessage); if (methodResult.Name == nameof(MultiThreadedMethod)) { multiThreadedMethodCounter++; } if (methodResult.Name == nameof(SimpleTestMethod)) { singleThreadedMethodCounter++; } } Assert.AreEqual(threadsCount, multiThreadedMethodCounter, countTestFailMessage); Assert.AreEqual(threadsCount * threadsCount, singleThreadedMethodCounter, countTestFailMessage); }
static void Main(string[] args) { Tracer.Tracer tracer = new Tracer.Tracer(); Foo foo = new Foo(tracer); Bar bar = new Bar(tracer); WriterResult wr = new WriterResult(); Thread myThread = new Thread(new ThreadStart(bar.InnerMethodForSecondThread)); myThread.Start(); foo.MyMethod(); bar.InnerMethod(); bar.InnerMethod1(); bar.InnerMethod2(); wr.JsonXmlToConsole(tracer.GetTraceResult()); wr.JsonXmlToFile(tracer.GetTraceResult()); }
static void Main(string[] args) { Tracer.Tracer _tracer = new Tracer.Tracer(); Thread thread1 = new Thread(new Foo(_tracer).MyMethod); thread1.Name = "FIRST"; thread1.Start(); Thread.Sleep(100); // thread2.Start(); thread1.Join(); // wait all threads terminate // thread2.Join(); foreach (TracedThread thread in _tracer.GetTraceResult().tracedthreadslist) { Console.WriteLine(thread.threadId + " " + thread.Time); } Console.ReadLine(); ITraceResult serial = new JsonSerializer(); Console.WriteLine(serial.SerializeResult(_tracer.GetTraceResult())); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("Start testing Tracer Usage:"); exampleTracer = new Tracer.Tracer(); new ExampleTests(exampleTracer).MultiThreadedMethod(); IWriter writer; // Вывод в консоль, сериализация в JSON writer = new ConsoleWriter(); writer.WriteResult(exampleTracer.GetTraceResult(), new JsonSerializer()); // XML-сериализация string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); writer = new FileWriter(desktopPath + "\\xmlSerialized.xml"); writer.WriteResult(exampleTracer.GetTraceResult(), new XmlSerializer()); Console.WriteLine("Finished testing Tracer Usage."); Console.ReadKey(); }
public void MethodInMethodTest() { tracer = new Tracer.Tracer(); tracer.StartTrace(); Thread.Sleep(waitTime); SimpleTestMethod(); tracer.StopTrace(); TraceResult traceResult = tracer.GetTraceResult(); Assert.AreEqual(1, traceResult.ThreadsList.Count, countTestFailMessage); Assert.AreEqual(TimeTest(traceResult.ThreadsList[0].Time, waitTime * 2), true, timeTestFailMessage); Assert.AreEqual(1, traceResult.ThreadsList[0].InnerMethods.Count, countTestFailMessage); MethodTracer methodResult = traceResult.ThreadsList[0].InnerMethods[0]; Assert.AreEqual(nameof(TracerUnitTest), methodResult.ClassName, classNameTestFailMessage); Assert.AreEqual(nameof(MethodInMethodTest), methodResult.Name, methodNameTestFailMessage); Assert.AreEqual(TimeTest(methodResult.Time, waitTime), true, timeTestFailMessage); Assert.AreEqual(1, methodResult.InnerMethods.Count, countTestFailMessage); MethodTracer innerMethodResult = methodResult.InnerMethods[0]; Assert.AreEqual(nameof(TracerUnitTest), innerMethodResult.ClassName, classNameTestFailMessage); Assert.AreEqual(nameof(SimpleTestMethod), innerMethodResult.Name, methodNameTestFailMessage); Assert.AreEqual(TimeTest(innerMethodResult.Time, waitTime), true, timeTestFailMessage); }
public void Test1() { Tracer.Tracer tracer = new Tracer.Tracer(); f(tracer); Assert.AreEqual(1, tracer.GetTraceResult().Threads.Length); }
public void NestedMultiThreadTest() { tracer = new Tracer.Tracer(); var threads = new List <Thread>(); long expectedTime = 0; Thread newThread; for (int i = 0; i < threadsCount; i++) { newThread = new Thread(MultiThreadedMethod); threads.Add(newThread); newThread.Start(); expectedTime += waitTime * (threadsCount + 1); } foreach (Thread thread in threads) { thread.Join(); } long actualTime = 0; TraceResult result = tracer.GetTraceResult(); foreach (ThreadTracingResult threadResult in result.ThreadTracingResults) { actualTime += threadResult.ExecutionTime; } TestExecutionTime(actualTime, expectedTime); // “естирование количества общего числа потоков Assert.AreEqual(threadsCount * threadsCount + threadsCount, result.ThreadTracingResults.Count); int multiThreadedMethodCounter = 0, singleThreadedMethodCounter = 0; MethodTracingResult methodResult; foreach (ThreadTracingResult threadResult in result.ThreadTracingResults) { // “естирование количества методов в потоках Assert.AreEqual(threadResult.ThreadMethods.Count, 1); methodResult = threadResult.ThreadMethods[0]; // “естирование количества вложенных методов Assert.AreEqual(0, methodResult.InnerMethods.Count); // “естирование имени класса Assert.AreEqual(nameof(UnitTests), methodResult.ClassName); // “естирование времени выполнени¤ TestExecutionTime(methodResult.ExecutionTime, waitTime); if (methodResult.MethodName == nameof(MultiThreadedMethod)) { multiThreadedMethodCounter++; } if (methodResult.MethodName == nameof(SingleThreadedMethod)) { singleThreadedMethodCounter++; } } // “естирование количества многопоточных и однопоточных методов Assert.AreEqual(threadsCount, multiThreadedMethodCounter); Assert.AreEqual(threadsCount * threadsCount, singleThreadedMethodCounter); }
public void Test2() { Tracer.Tracer tracer = new Tracer.Tracer(); ff(tracer); Assert.AreEqual(3, tracer.GetTraceResult().Threads[0].Methods[0].Methods.Length); }
public void Test4() { Tracer.Tracer tracer = new Tracer.Tracer(); f2(tracer); Assert.AreEqual("Tests.Tests", tracer.GetTraceResult().Threads[0].Methods[0].ClassName); }
private void f2(Tracer.Tracer tracer) { tracer.StartTrace(); tracer.StopTrace(); }
internal Bar(Tracer.Tracer tracer) { _tracer = tracer; }
internal Foo(Tracer.Tracer tracer) { _tracer = tracer; _bar = new Bar(_tracer); }
/// <summary> /// Логи будут писаться в этой папке /// </summary> /// <param name="folderName"></param> public static void SetFolder(string folderName) { Instance = new Tracer(folderName); }