Fix: syscall event rule: emission sites not compared in is_equal
[lttng-tools.git] / tests / utils / testapp / gen-kernel-test-events / gen-kernel-test-events.c
CommitLineData
ba5e8d0a 1/*
9d16b343
MJ
2 * Copyright (C) 2017 Francis Deslauriers <francis.deslauriers@efficios.com>
3 * Copyright (C) 2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
ba5e8d0a 4 *
9d16b343 5 * SPDX-License-Identifier: LGPL-2.1-only
ba5e8d0a 6 *
ba5e8d0a
MD
7 */
8
28f23191
JG
9#include "utils.h"
10
ba5e8d0a
MD
11#include <fcntl.h>
12#include <stdio.h>
13#include <string.h>
14#include <sys/stat.h>
15#include <sys/types.h>
16#include <unistd.h>
17
ba5e8d0a
MD
18#define LTTNG_MODULES_FILE "/proc/lttng-test-filter-event"
19
20/*
21 * The process waits for the creation of a file passed as argument from an
22 * external processes to execute a syscall and exiting. This is useful for tests
23 * in combinaison with LTTng's PID tracker feature where we can trace the kernel
24 * events generated by our test process only.
25 */
26int main(int argc, char **argv)
27{
28 int fd = -1, ret;
29 char *start_file, *nr_events_str;
30 ssize_t len;
31
32 if (argc != 3) {
33 fprintf(stderr, "Error: Missing argument\n");
28f23191 34 fprintf(stderr, "USAGE: %s PATH_WAIT_FILE NR_EVENTS\n", argv[0]);
ba5e8d0a
MD
35 ret = -1;
36 goto end;
37 }
38
39 start_file = argv[1];
40 nr_events_str = argv[2];
41
42 /*
43 * Wait for the start_file to be created by an external process
44 * (typically the test script) before executing the syscalls.
45 */
46 ret = wait_on_file(start_file);
47 if (ret != 0) {
48 goto end;
49 }
50
51 /*
52 * Start generating events.
53 */
54 fd = open(LTTNG_MODULES_FILE, O_RDWR);
55 if (fd < 0) {
56 perror("open");
57 ret = -1;
58 goto end;
59 }
60
61 len = write(fd, nr_events_str, strlen(nr_events_str) + 1);
9184924d 62 if (len != (ssize_t) strlen(nr_events_str) + 1) {
ba5e8d0a
MD
63 perror("write");
64 ret = -1;
65 } else {
66 ret = 0;
67 }
68
69end:
70 if (fd >= 0) {
71 int closeret = close(fd);
72 if (closeret) {
73 perror("close");
74 }
75 }
76 return ret;
77}
This page took 0.048671 seconds and 5 git commands to generate.