From a6ea08015bccffeff00ba4e82afa7bb473cde7a4 Mon Sep 17 00:00:00 2001 From: Christian Heinrich Date: Fri, 27 May 2016 14:51:57 +0200 Subject: [PATCH] [SMPI Examples] Add C-example for call location tracing. This is just a copy of the trace_simple test. It does check though that the call location is present in the trace file. --- .../smpi_trace_call_location | Bin 0 -> 122360 bytes .../trace_call_location/trace_call_location.c | 17 +++++++++++++++++ .../trace_call_location.tesh | 18 ++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100755 examples/smpi/trace_call_location/smpi_trace_call_location create mode 100644 examples/smpi/trace_call_location/trace_call_location.c create mode 100644 examples/smpi/trace_call_location/trace_call_location.tesh diff --git a/examples/smpi/trace_call_location/smpi_trace_call_location b/examples/smpi/trace_call_location/smpi_trace_call_location new file mode 100755 index 0000000000000000000000000000000000000000..9ddb4efcb6380748e9d0e013e1b31b11ccf92b0c GIT binary patch literal 122360 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 literal 0 HcmV?d00001 diff --git a/examples/smpi/trace_call_location/trace_call_location.c b/examples/smpi/trace_call_location/trace_call_location.c new file mode 100644 index 0000000000..0491db5a7d --- /dev/null +++ b/examples/smpi/trace_call_location/trace_call_location.c @@ -0,0 +1,17 @@ +/* Copyright (c) 2012, 2014. The SimGrid Team. + * All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + +#include +#include + +/* test*/ +int main(int argc, char *argv[]) +{ + MPI_Init(&argc, &argv); + MPI_Barrier (MPI_COMM_WORLD); + MPI_Finalize(); + return 0; +} diff --git a/examples/smpi/trace_call_location/trace_call_location.tesh b/examples/smpi/trace_call_location/trace_call_location.tesh new file mode 100644 index 0000000000..0d23db6edd --- /dev/null +++ b/examples/smpi/trace_call_location/trace_call_location.tesh @@ -0,0 +1,18 @@ +# use the tested library, not the installed one +# (since we want to pass it to the child, it has to be redefined before each command) +# Go for the first test + +p Test SMPI with call-location tracing. This means that the binary must have +p already been compiled with the -trace-call-location switch. +$ ../../smpi_script/bin/smpirun -trace -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../platforms/small_platform.xml --cfg=smpi/trace-call-location:1 -np 3 ./trace_call_location/smpi_trace_call_location --log=smpi_kernel.thres:warning +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes' +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_trace.trace' +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes' +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'surf/precision' to '1e-9' +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI' +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP-gamma' to '4194304' +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/trace-call-location' to '1' + +$ grep --quiet "12 0.000000 2 1 5 .*trace_call_location\.c\" 14$" smpi_trace.trace + +$ rm -f smpi_trace.trace -- 2.20.1