Add callstack test stuff for perf
[slow/toolbox.git] / perftest / main.c
diff --git a/perftest/main.c b/perftest/main.c
new file mode 100644 (file)
index 0000000..79d069a
--- /dev/null
@@ -0,0 +1,47 @@
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <dirent.h>
+#include <sys/types.h>
+
+#include "lib.h"
+
+void obj_external(char *s);
+
+static void main_static(char *s)
+{
+       for (int i=0; i<1000; i++) {
+               printf("main [%s]: %d\n", s, i);
+       }
+}
+
+static void main_static_inter1(char *s)
+{
+       obj_external("external");
+       lib_external("external");
+       main_static(s);
+}
+
+static void main_static_inter2(char *s)
+{
+       obj_external("external");
+       lib_external("external");
+       main_static(s);
+}
+
+int main(int argc, char **argv)
+{
+       while (true) {
+               printf("main\n");
+               main_static_inter1("static");
+               main_static_inter2("static");
+               obj_external("external");
+               lib_external("external");
+       }
+       return 0;
+}