X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/143464d58d2bd6378e74eec636961ceb0d32fb91..fe8ab488e9161c46dd9885d58fc52996dc0249ff:/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 index 000000000..b7743f8eb --- /dev/null +++ b/tools/tests/perf_index/perfindex-compile.c @@ -0,0 +1,54 @@ +#include "perf_index.h" +#include "fail.h" +#include +#include + +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; +}