1616
1717#include < sched.h>
1818#include < sys/mman.h>
19+ #include < sys/ptrace.h>
20+ #include < sys/resource.h>
21+ #include < sys/socket.h>
1922#include < sys/wait.h>
2023#include < unistd.h>
2124
25+ #include < csignal>
2226#include < cstdint>
2327#include < cstdlib>
2428#include < cstring>
@@ -45,6 +49,7 @@ using ::testing::ElementsAre;
4549using ::testing::ElementsAreArray;
4650using ::testing::Eq;
4751using ::testing::Gt;
52+ using ::testing::HasSubstr;
4853using ::testing::IsEmpty;
4954using ::testing::IsTrue;
5055using ::testing::Ne;
@@ -439,5 +444,82 @@ TEST_P(WriteBytesToPidFromTest, ExceedIovMax) {
439444INSTANTIATE_TEST_SUITE_P (WriteBytesToPidFrom, WriteBytesToPidFromTest,
440445 testing::Values (true , false ));
441446
447+ TEST (UtilTest, GetSignalName) {
448+ EXPECT_THAT (GetSignalName (SIGHUP ), Eq (" SIGHUP [1]" ));
449+ EXPECT_THAT (GetSignalName (SIGINT ), Eq (" SIGINT [2]" ));
450+ EXPECT_THAT (GetSignalName (SIGQUIT ), Eq (" SIGQUIT [3]" ));
451+ EXPECT_THAT (GetSignalName (SIGILL ), Eq (" SIGILL [4]" ));
452+ EXPECT_THAT (GetSignalName (SIGTRAP ), Eq (" SIGTRAP [5]" ));
453+ EXPECT_THAT (GetSignalName (SIGABRT ), Eq (" SIGABRT [6]" ));
454+ EXPECT_THAT (GetSignalName (SIGBUS ), Eq (" SIGBUS [7]" ));
455+ EXPECT_THAT (GetSignalName (SIGFPE ), Eq (" SIGFPE [8]" ));
456+ EXPECT_THAT (GetSignalName (SIGKILL ), Eq (" SIGKILL [9]" ));
457+ EXPECT_THAT (GetSignalName (SIGUSR1 ), Eq (" SIGUSR1 [10]" ));
458+ EXPECT_THAT (GetSignalName (SIGSEGV ), Eq (" SIGSEGV [11]" ));
459+ EXPECT_THAT (GetSignalName (SIGUSR2 ), Eq (" SIGUSR2 [12]" ));
460+ EXPECT_THAT (GetSignalName (SIGPIPE ), Eq (" SIGPIPE [13]" ));
461+ EXPECT_THAT (GetSignalName (SIGALRM ), Eq (" SIGALRM [14]" ));
462+ EXPECT_THAT (GetSignalName (SIGTERM ), Eq (" SIGTERM [15]" ));
463+ EXPECT_THAT (GetSignalName (SIGSTKFLT ), Eq (" SIGSTKFLT [16]" ));
464+ EXPECT_THAT (GetSignalName (SIGCHLD ), Eq (" SIGCHLD [17]" ));
465+ EXPECT_THAT (GetSignalName (SIGCONT ), Eq (" SIGCONT [18]" ));
466+ EXPECT_THAT (GetSignalName (SIGSTOP ), Eq (" SIGSTOP [19]" ));
467+ EXPECT_THAT (GetSignalName (SIGTSTP ), Eq (" SIGTSTP [20]" ));
468+ EXPECT_THAT (GetSignalName (SIGTTIN ), Eq (" SIGTTIN [21]" ));
469+ EXPECT_THAT (GetSignalName (SIGTTOU ), Eq (" SIGTTOU [22]" ));
470+ EXPECT_THAT (GetSignalName (SIGURG ), Eq (" SIGURG [23]" ));
471+ EXPECT_THAT (GetSignalName (SIGXCPU ), Eq (" SIGXCPU [24]" ));
472+ EXPECT_THAT (GetSignalName (SIGXFSZ ), Eq (" SIGXFSZ [25]" ));
473+ EXPECT_THAT (GetSignalName (26 ), Eq (" SIGVTALARM [26]" ));
474+ EXPECT_THAT (GetSignalName (SIGPROF ), Eq (" SIGPROF [27]" ));
475+ EXPECT_THAT (GetSignalName (SIGWINCH ), Eq (" SIGWINCH [28]" ));
476+ EXPECT_THAT (GetSignalName (SIGIO ), Eq (" SIGIO [29]" ));
477+ EXPECT_THAT (GetSignalName (SIGPWR ), Eq (" SIGPWR [30]" ));
478+ EXPECT_THAT (GetSignalName (SIGSYS ), Eq (" SIGSYS [31]" ));
479+ EXPECT_THAT (GetSignalName (0 ), HasSubstr (" UNKNOWN" ));
480+ EXPECT_THAT (GetSignalName (-1 ), HasSubstr (" UNKNOWN" ));
481+ EXPECT_THAT (GetSignalName (999 ), HasSubstr (" UNKNOWN" ));
482+ }
483+
484+ TEST (UtilTest, GetAddressFamily) {
485+ EXPECT_THAT (GetAddressFamily (AF_UNSPEC ), Eq (" AF_UNSPEC" ));
486+ EXPECT_THAT (GetAddressFamily (AF_UNIX ), Eq (" AF_UNIX" ));
487+ EXPECT_THAT (GetAddressFamily (AF_INET ), Eq (" AF_INET" ));
488+ EXPECT_THAT (GetAddressFamily (AF_INET6 ), Eq (" AF_INET6" ));
489+ EXPECT_THAT (GetAddressFamily (AF_NETROM ), Eq (" AF_NETROM" ));
490+ EXPECT_THAT (GetAddressFamily (AF_BRIDGE ), Eq (" AF_BRIDGE" ));
491+ EXPECT_THAT (GetAddressFamily (AF_ATMPVC ), Eq (" AF_ATMPVC" ));
492+ EXPECT_THAT (GetAddressFamily (AF_X25 ), Eq (" AF_X25" ));
493+ EXPECT_THAT (GetAddressFamily (AF_IPX ), Eq (" AF_IPX" ));
494+ EXPECT_THAT (GetAddressFamily (AF_APPLETALK ), Eq (" AF_APPLETALK" ));
495+ EXPECT_THAT (GetAddressFamily (AF_AX25 ), Eq (" AF_AX25" ));
496+ EXPECT_THAT (GetAddressFamily (-1 ), HasSubstr (" UNKNOWN" ));
497+ EXPECT_THAT (GetAddressFamily (999 ), HasSubstr (" UNKNOWN" ));
498+ }
499+
500+ TEST (UtilTest, GetRlimitName) {
501+ EXPECT_THAT (GetRlimitName (RLIMIT_AS ), Eq (" RLIMIT_AS" ));
502+ EXPECT_THAT (GetRlimitName (RLIMIT_CORE ), Eq (" RLIMIT_CORE" ));
503+ EXPECT_THAT (GetRlimitName (RLIMIT_CPU ), Eq (" RLIMIT_CPU" ));
504+ EXPECT_THAT (GetRlimitName (RLIMIT_FSIZE ), Eq (" RLIMIT_FSIZE" ));
505+ EXPECT_THAT (GetRlimitName (RLIMIT_NOFILE ), Eq (" RLIMIT_NOFILE" ));
506+ EXPECT_THAT (GetRlimitName (-1 ), HasSubstr (" UNKNOWN" ));
507+ EXPECT_THAT (GetRlimitName (999 ), HasSubstr (" UNKNOWN" ));
508+ }
509+
510+ TEST (UtilTest, GetPtraceEventName) {
511+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_FORK ), Eq (" PTRACE_EVENT_FORK" ));
512+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_VFORK ), Eq (" PTRACE_EVENT_VFORK" ));
513+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_CLONE ), Eq (" PTRACE_EVENT_CLONE" ));
514+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_EXEC ), Eq (" PTRACE_EVENT_EXEC" ));
515+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_VFORK_DONE ),
516+ Eq (" PTRACE_EVENT_VFORK_DONE" ));
517+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_EXIT ), Eq (" PTRACE_EVENT_EXIT" ));
518+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_SECCOMP ),
519+ Eq (" PTRACE_EVENT_SECCOMP" ));
520+ EXPECT_THAT (GetPtraceEventName (PTRACE_EVENT_STOP ), Eq (" PTRACE_EVENT_STOP" ));
521+ EXPECT_THAT (GetPtraceEventName (999 ), HasSubstr (" UNKNOWN" ));
522+ }
523+
442524} // namespace
443525} // namespace sandbox2::util
0 commit comments