function run_workload()
{
local TEST_APP=$1
+ # shift the first argument, passing along the other args if any to the
+ # test app.
+ shift
local start_file_sync
start_file_sync=$(mktemp -u)
lttng_untrack_all
- ./"$TEST_APP" "$start_file_sync" &
+ ./"$TEST_APP" "$start_file_sync" "$@" &
PID=$!
lttng_track_pid $PID
lttng_enable_kernel_syscall_ok "$SESSION_NAME" "$EVENT_NAME" "$CHANNEL_NAME"
add_context_kernel_ok "$SESSION_NAME" "$CHANNEL_NAME" "callstack-kernel"
- run_workload $TEST_APP_KERNELSPACE
+ run_workload "$TEST_APP_KERNELSPACE" "/proc/cpuinfo" "/proc/cmdline"
destroy_lttng_session_ok "$SESSION_NAME"
lttng_untrack_kernel_all_ok
# Launch the testapp and save its Process ID
- ./"$TESTCMD" "$start_file_sync" &
+ ./"$TESTCMD" "$start_file_sync" "/proc/cpuinfo" "/proc/cmdline" &
PID=$!
# Set LTTng to track this PID and start the tracing
int main(int argc, char **argv)
{
int ret;
- char *start_file;
+ const char *start_file, *path1, *path2;
- if (argc != 2) {
+ if (argc != 4) {
fprintf(stderr, "Error: Missing argument\n");
+ fprintf(stderr, "USAGE: %s PATH_WAIT_FILE PATH1_TO_OPEN PATH2_TO_OPEN\n", argv[0]);
fprintf(stderr, "USAGE: %s PATH_WAIT_FILE\n", argv[0]);
ret = -1;
goto error;
}
start_file = argv[1];
+ path1 = argv[2];
+ path2 = argv[3];
/*
* Wait for the start_file to be created by an external process
* Start generating syscalls. We use syscall(2) to prevent libc to change
* the underlying syscall. e.g. calling openat(2) instead of open(2).
*/
- ret = open_read_close("/proc/cpuinfo");
+ ret = open_read_close(path1);
if (ret == -1) {
ret = -1;
goto error;
}
- ret = open_read_close("/proc/cmdline");
+ ret = open_read_close(path2);
if (ret == -1) {
ret = -1;
goto error;