]> git.saurik.com Git - apple/xnu.git/blobdiff - tools/tests/perf_index/perfindex-compile.c
xnu-2782.1.97.tar.gz
[apple/xnu.git] / tools / tests / perf_index / perfindex-compile.c
diff --git a/tools/tests/perf_index/perfindex-compile.c b/tools/tests/perf_index/perfindex-compile.c
new file mode 100644 (file)
index 0000000..b7743f8
--- /dev/null
@@ -0,0 +1,54 @@
+#include "perf_index.h"
+#include "fail.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+static const char *src_dst = "/tmp/perf_index_compile_code";
+static const char *src_root = "/Network/Servers/xs1/release/Software/Zin/Projects/xnu/xnu-2050.7.9";
+
+DECL_SETUP {
+    char* cmd;
+    int retval;
+    const char *src = src_root;
+    if(test_argc >= 1)
+        src = (char*)test_argv[0];
+
+    retval = asprintf(&cmd, "ditto \"%s\" \"%s\"", src, src_dst);
+    VERIFY(retval > 0, "asprintf failed");
+
+    retval = system(cmd);
+    VERIFY(retval == 0, "ditto command failed");
+
+    free(cmd);
+
+    return PERFINDEX_SUCCESS;
+}
+
+DECL_TEST {
+    char* cmd;
+    int retval;
+
+    if(thread_id != 0)
+        return 0;
+
+    retval = asprintf(&cmd, "make -C \"%s\" MAKEJOBS=-j%d", src_dst, num_threads);
+    VERIFY(retval > 0, "asprintf failed");
+
+    retval = system(cmd);
+    VERIFY(retval == 0, "make command failed");
+
+    return PERFINDEX_SUCCESS;
+}
+
+DECL_CLEANUP {
+    char* cmd;
+    int retval;
+
+    retval = asprintf(&cmd, "rm -rf \"%s\"", src_dst);
+    VERIFY(retval > 0, "asprintf failed");
+
+    retval = system(cmd);
+    VERIFY(retval == 0, "rm command failed");
+
+    return PERFINDEX_SUCCESS;
+}