Website Summary Files Commits Branches @commit @diff @stats
path: root / gctest / minitrace / minitrace_test.cpp
diff options
context:
space:
mode:
Commitfefc19f44df05b8dce8eff0fcff50ad3761bb78e (patch)
Author
 Dimitar Trendafilov <trendafilov.dn@gmail.com>
2020-12-23 14:55:13 +0200
Committer
 Dimitar Trendafilov <trendafilov.dn@gmail.com>
2020-12-23 14:55:13 +0200
Filesa67c5916f28efc4267fb22ae141a23e2bbeb66dd /gctest/minitrace/minitrace_test.cpp
IPL-fefc19f44df05b8dce8eff0fcff50ad3761bb78e.tar
IPL-fefc19f44df05b8dce8eff0fcff50ad3761bb78e.tar.gz
IPL-fefc19f44df05b8dce8eff0fcff50ad3761bb78e.zip
Parent32f732d5e91da6c911e2f983e317dc4da8b1c1e3 (diff)
Parentdbe9285608507c592fede216f2c147c5a3d40cea (diff)
Merge commit 'dbe9285608507c592fede216f2c147c5a3d40cea' as 'gctest/minitrace'
1 files changed, 70 insertions, 0 deletions
-rw-r--r--gctest/minitrace/minitrace_test.cpp70
diff --git a/gctest/minitrace/minitrace_test.cpp b/gctest/minitrace/minitrace_test.cpp
new file mode 100644
index 0000000..522ac8e
--- /dev/null
+++ b/gctest/minitrace/minitrace_test.cpp
@@ -0,0 +1,70 @@
+#include "minitrace.h"
+
+#ifdef _WIN32
+#include <windows.h>
+#define usleep(x) Sleep(x/1000)
+#else
+#include <unistd.h>
+#endif
+
+void c() {
+ MTR_SCOPE("c++", "c()");
+ usleep(10000);
+}
+
+void b() {
+ MTR_SCOPE("c++", "b()");
+ usleep(20000);
+ c();
+ usleep(10000);
+}
+
+void a() {
+ MTR_SCOPE("c++", "a()");
+ usleep(20000);
+ b();
+ usleep(10000);
+}
+
+int main() {
+ int i;
+ mtr_init("trace.json");
+ mtr_register_sigint_handler();
+
+ MTR_META_PROCESS_NAME("minitrace_test");
+ MTR_META_THREAD_NAME("main thread");
+
+ int long_running_thing_1;
+ int long_running_thing_2;
+
+ MTR_START("background", "long_running", &long_running_thing_1);
+ MTR_START("background", "long_running", &long_running_thing_2);
+
+ MTR_COUNTER("main", "greebles", 3);
+ MTR_BEGIN("main", "outer");
+ usleep(80000);
+ for (i = 0; i < 3; i++) {
+ MTR_BEGIN("main", "inner");
+ usleep(40000);
+ MTR_END("main", "inner");
+ usleep(10000);
+ MTR_COUNTER("main", "greebles", 3 * i + 10);
+ }
+ MTR_STEP("background", "long_running", &long_running_thing_1, "middle step");
+ usleep(80000);
+ MTR_END("main", "outer");
+ MTR_COUNTER("main", "greebles", 0);
+
+ usleep(10000);
+ a();
+
+ usleep(50000);
+ MTR_INSTANT("main", "the end");
+ usleep(10000);
+ MTR_FINISH("background", "long_running", &long_running_thing_1);
+ MTR_FINISH("background", "long_running", &long_running_thing_2);
+
+ mtr_flush();
+ mtr_shutdown();
+ return 0;
+}