Skip to content

Commit 82b4b68

Browse files
committed
feat(libsinsp_e2e): more granular test settings
Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
1 parent eee55f3 commit 82b4b68

File tree

13 files changed

+101
-28
lines changed

13 files changed

+101
-28
lines changed

test/libsinsp_e2e/container/container.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ TEST_F(sys_call_test, container_cgroups) {
113113
filter,
114114
event_capture::do_nothing,
115115
event_capture::do_nothing,
116+
event_capture::do_nothing,
116117
libsinsp::events::sinsp_state_sc_set());
117118
});
118119
ASSERT_TRUE(done);
@@ -180,6 +181,7 @@ TEST_F(sys_call_test, container_clone_nspid) {
180181
filter,
181182
event_capture::do_nothing,
182183
event_capture::do_nothing,
184+
event_capture::do_nothing,
183185
libsinsp::events::sinsp_state_sc_set());
184186
});
185187
ASSERT_TRUE(done);
@@ -233,6 +235,7 @@ TEST_F(sys_call_test, container_clone_nspid_ioctl) {
233235
filter,
234236
event_capture::do_nothing,
235237
event_capture::do_nothing,
238+
event_capture::do_nothing,
236239
libsinsp::events::sinsp_state_sc_set());
237240
});
238241
ASSERT_TRUE(done);
@@ -312,6 +315,7 @@ static void run_container_docker_test(bool fork_after_container_start) {
312315
filter,
313316
event_capture::do_nothing,
314317
event_capture::do_nothing,
318+
event_capture::do_nothing,
315319
libsinsp::events::sinsp_state_sc_set());
316320
});
317321
ASSERT_TRUE(done);
@@ -351,7 +355,7 @@ TEST_F(sys_call_test, container_docker_bad_socket) {
351355
return;
352356
}
353357

354-
before_capture_t setup = [&](sinsp* inspector) {
358+
before_open_t setup = [&](sinsp* inspector) {
355359
inspector->set_docker_socket_path("/invalid/path");
356360
};
357361

@@ -407,7 +411,9 @@ TEST_F(sys_call_test, container_docker_bad_socket) {
407411
inspector->set_docker_socket_path("/var/run/docker.sock");
408412
};
409413

410-
ASSERT_NO_FATAL_FAILURE({ event_capture::run(test, callback, filter, setup, cleanup); });
414+
ASSERT_NO_FATAL_FAILURE({
415+
event_capture::run(test, callback, filter, setup, event_capture::do_nothing, cleanup);
416+
});
411417
ASSERT_TRUE(done);
412418
}
413419

@@ -420,7 +426,7 @@ TEST_F(sys_call_test, container_libvirt) {
420426
}
421427

422428
// Setup phase before capture has start, to avoid generating too many events
423-
before_capture_t setup = [](sinsp* inspector) {
429+
before_open_t setup = [](sinsp* inspector) {
424430
FILE* f = fopen("/tmp/conf.xml", "w");
425431
ASSERT_TRUE(f != NULL);
426432
fprintf(f,
@@ -495,6 +501,7 @@ TEST_F(sys_call_test, container_libvirt) {
495501
callback,
496502
filter,
497503
setup,
504+
event_capture::do_nothing,
498505
cleanup,
499506
libsinsp::events::sinsp_state_sc_set());
500507
});
@@ -643,6 +650,7 @@ static void healthcheck_helper(
643650
filter,
644651
event_capture::do_nothing,
645652
event_capture::do_nothing,
653+
event_capture::do_nothing,
646654
libsinsp::events::sinsp_state_sc_set());
647655
});
648656

@@ -684,6 +692,7 @@ static void healthcheck_tracefile_helper(
684692
filter,
685693
event_capture::do_nothing,
686694
event_capture::do_nothing,
695+
event_capture::do_nothing,
687696
libsinsp::events::sinsp_state_sc_set());
688697
});
689698

@@ -833,7 +842,7 @@ TEST_F(sys_call_test, docker_container_large_json) {
833842

834843
ASSERT_TRUE(dhelper.build_image() == 0);
835844

836-
before_capture_t before = [&](sinsp* inspector) {
845+
before_open_t before = [&](sinsp* inspector) {
837846
inspector->set_container_labels_max_len(60000);
838847
};
839848

@@ -892,6 +901,7 @@ TEST_F(sys_call_test, docker_container_large_json) {
892901
callback,
893902
filter,
894903
before,
904+
event_capture::do_nothing,
895905
cleanup,
896906
libsinsp::events::sinsp_state_sc_set());
897907
});

test/libsinsp_e2e/event_capture.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,16 @@ std::string event_capture::s_engine_path;
3131
unsigned long event_capture::s_buffer_dim = DEFAULT_DRIVER_BUFFER_BYTES_DIM * 4;
3232

3333
event_capture::event_capture(captured_event_callback_t captured_event_callback,
34-
before_capture_t before_open,
34+
before_open_t before_open,
35+
before_capture_t before_capture,
3536
after_capture_t before_close,
3637
event_filter_t filter,
3738
uint32_t max_thread_table_size,
3839
uint64_t thread_timeout_ns,
3940
uint64_t inactive_thread_scan_time_ns) {
4041
m_captured_event_callback = std::move(captured_event_callback);
41-
m_before_capture = std::move(before_open);
42+
m_before_open = std::move(before_open);
43+
m_before_capture = std::move(before_capture);
4244
m_after_capture = std::move(before_close);
4345
m_filter = std::move(filter);
4446

@@ -68,7 +70,7 @@ void event_capture::start(bool dump, libsinsp::events::set<ppm_sc_code>& sc_set)
6870
}
6971
}
7072
}
71-
m_before_capture(m_inspector.get());
73+
m_before_open(m_inspector.get());
7274
open_engine(event_capture::get_engine(), sc_set);
7375

7476
const ::testing::TestInfo* const test_info =
@@ -84,6 +86,8 @@ void event_capture::start(bool dump, libsinsp::events::set<ppm_sc_code>& sc_set)
8486
0,
8587
true);
8688
}
89+
90+
m_before_capture(m_inspector.get());
8791
m_inspector->start_capture();
8892
}
8993

test/libsinsp_e2e/event_capture.h

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class callback_param {
4646
sinsp* m_inspector;
4747
};
4848

49+
// Right before inspector->open_*() gets called.
50+
typedef std::function<void(sinsp* inspector)> before_open_t;
4951
// Right before inspector->start_capture() gets called.
5052
// Engine is already opened (thus scap handle is already alive).
5153
typedef std::function<void(sinsp* inspector)> before_capture_t;
@@ -62,7 +64,8 @@ typedef std::function<void()> run_callback_async_t;
6264
class event_capture {
6365
public:
6466
event_capture(captured_event_callback_t captured_event_callback,
65-
before_capture_t before_open,
67+
before_open_t before_open,
68+
before_capture_t before_capture,
6669
after_capture_t before_close,
6770
event_filter_t filter,
6871
uint32_t max_thread_table_size,
@@ -87,7 +90,8 @@ class event_capture {
8790
static void run(const run_callback_t& run_function,
8891
captured_event_callback_t captured_event_callback,
8992
event_filter_t filter,
90-
before_capture_t before_open = event_capture::do_nothing,
93+
before_open_t before_open = event_capture::do_nothing,
94+
before_capture_t before_capture = event_capture::do_nothing,
9195
after_capture_t before_close = event_capture::do_nothing,
9296
libsinsp::events::set<ppm_sc_code> sc_set = {},
9397
uint32_t max_thread_table_size = 131072,
@@ -96,6 +100,7 @@ class event_capture {
96100
bool dump = true) {
97101
event_capture capturing(std::move(captured_event_callback),
98102
std::move(before_open),
103+
std::move(before_capture),
99104
std::move(before_close),
100105
std::move(filter),
101106
max_thread_table_size,
@@ -125,7 +130,8 @@ class event_capture {
125130
static void run(const run_callback_async_t& run_function,
126131
captured_event_callback_t captured_event_callback,
127132
event_filter_t filter,
128-
before_capture_t before_open = event_capture::do_nothing,
133+
before_open_t before_open = event_capture::do_nothing,
134+
before_capture_t before_capture = event_capture::do_nothing,
129135
after_capture_t before_close = event_capture::do_nothing,
130136
libsinsp::events::set<ppm_sc_code> sc_set = {},
131137
uint32_t max_thread_table_size = 131072,
@@ -134,6 +140,7 @@ class event_capture {
134140
bool dump = true) {
135141
event_capture capturing(std::move(captured_event_callback),
136142
std::move(before_open),
143+
std::move(before_capture),
137144
std::move(before_close),
138145
std::move(filter),
139146
max_thread_table_size,
@@ -176,6 +183,7 @@ class event_capture {
176183
std::unique_ptr<sinsp_cycledumper> m_dumper;
177184
event_filter_t m_filter;
178185
captured_event_callback_t m_captured_event_callback;
186+
before_open_t m_before_open;
179187
before_capture_t m_before_capture;
180188
after_capture_t m_after_capture;
181189
callback_param m_param{};

test/libsinsp_e2e/forking.cpp

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ TEST_F(sys_call_test, forking_process_expired) {
277277
filter,
278278
event_capture::do_nothing,
279279
event_capture::do_nothing,
280+
event_capture::do_nothing,
280281
{},
281282
131072,
282283
5 * ONE_SECOND_IN_NS,
@@ -579,8 +580,14 @@ TEST_F(sys_call_test, forking_clone_nofs) {
579580

580581
after_capture_t cleanup = [&](sinsp* inspector) { free(stack); };
581582

582-
ASSERT_NO_FATAL_FAILURE(
583-
{ event_capture::run(test, callback, filter, event_capture::do_nothing, cleanup); });
583+
ASSERT_NO_FATAL_FAILURE({
584+
event_capture::run(test,
585+
callback,
586+
filter,
587+
event_capture::do_nothing,
588+
event_capture::do_nothing,
589+
cleanup);
590+
});
584591

585592
EXPECT_EQ(callnum, 4);
586593
}
@@ -687,8 +694,14 @@ TEST_F(sys_call_test, forking_clone_cwd) {
687694

688695
after_capture_t cleanup = [&](sinsp* inspector) { free(stack); };
689696

690-
ASSERT_NO_FATAL_FAILURE(
691-
{ event_capture::run(test, callback, filter, event_capture::do_nothing, cleanup); });
697+
ASSERT_NO_FATAL_FAILURE({
698+
event_capture::run(test,
699+
callback,
700+
filter,
701+
event_capture::do_nothing,
702+
event_capture::do_nothing,
703+
cleanup);
704+
});
692705

693706
EXPECT_EQ(3, callnum);
694707
}
@@ -759,6 +772,7 @@ TEST_F(sys_call_test, forking_main_thread_exit) {
759772
filter,
760773
event_capture::do_nothing,
761774
event_capture::do_nothing,
775+
event_capture::do_nothing,
762776
libsinsp::events::all_sc_set());
763777
});
764778
EXPECT_EQ(3, callnum);

test/libsinsp_e2e/fs.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,7 @@ TEST_F(sys_call_test, fs_readv) {
544544
filter,
545545
event_capture::do_nothing,
546546
event_capture::do_nothing,
547+
event_capture::do_nothing,
547548
libsinsp::events::all_sc_set());
548549
});
549550

@@ -1248,6 +1249,7 @@ TEST_F(sys_call_test, large_read_write) {
12481249
event_capture::run(test,
12491250
callback,
12501251
filter,
1252+
event_capture::do_nothing,
12511253
setup,
12521254
event_capture::do_nothing,
12531255
libsinsp::events::all_sc_set(),
@@ -1367,6 +1369,7 @@ TEST_F(sys_call_test, large_readv_writev) {
13671369
event_capture::run(test,
13681370
callback,
13691371
filter,
1372+
event_capture::do_nothing,
13701373
setup,
13711374
event_capture::do_nothing,
13721375
libsinsp::events::all_sc_set(),

test/libsinsp_e2e/process.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ TEST_F(sys_call_test, process_signalfd_kill) {
208208
filter,
209209
event_capture::do_nothing,
210210
event_capture::do_nothing,
211+
event_capture::do_nothing,
211212
libsinsp::events::all_sc_set());
212213
});
213214

@@ -349,6 +350,7 @@ TEST_F(sys_call_test, process_inotify) {
349350
filter,
350351
event_capture::do_nothing,
351352
event_capture::do_nothing,
353+
event_capture::do_nothing,
352354
libsinsp::events::all_sc_set());
353355
});
354356

@@ -569,8 +571,14 @@ TEST_F(sys_call_test, process_prlimit) {
569571
syscall(SYS_prlimit64, getpid(), RLIMIT_NOFILE, &orirl, NULL);
570572
};
571573

572-
ASSERT_NO_FATAL_FAILURE(
573-
{ event_capture::run(test, callback, filter, event_capture::do_nothing, cleanup); });
574+
ASSERT_NO_FATAL_FAILURE({
575+
event_capture::run(test,
576+
callback,
577+
filter,
578+
event_capture::do_nothing,
579+
event_capture::do_nothing,
580+
cleanup);
581+
});
574582

575583
EXPECT_EQ(6, callnum);
576584
}

test/libsinsp_e2e/suppress_events.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ static void test_helper_quotactl(test_helper_args& hargs) {
119119
event_capture::run(test,
120120
callback,
121121
filter,
122+
event_capture::do_nothing,
122123
before_open,
123124
before_close,
124125
{},
@@ -289,8 +290,14 @@ void suppress_types::run_test(std::vector<std::string> supp_syscalls) {
289290
}
290291
};
291292

292-
ASSERT_NO_FATAL_FAILURE(
293-
{ event_capture::run(test, callback, m_tid_filter, before_open, before_close); });
293+
ASSERT_NO_FATAL_FAILURE({
294+
event_capture::run(test,
295+
callback,
296+
m_tid_filter,
297+
event_capture::do_nothing,
298+
before_open,
299+
before_close);
300+
});
294301
EXPECT_EQ(m_expected_calls, callnum);
295302
}
296303

0 commit comments

Comments
 (0)