Skip to content

Commit 4a607e2

Browse files
happyCoder92copybara-github
authored andcommitted
Add tests for enum to string
PiperOrigin-RevId: 966510259 Change-Id: I3398b38850b04138b29b11da5f420050ab325710
1 parent f95fea7 commit 4a607e2

3 files changed

Lines changed: 94 additions & 2 deletions

File tree

sandboxed_api/sandbox2/syscall_test.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,15 @@ TEST(SyscallTest, Empty) {
6262
EXPECT_THAT(syscall.GetArgumentsDescription().size(), Eq(Syscall::kMaxArgs));
6363
}
6464

65+
TEST(SyscallTest, ArchDescription) {
66+
EXPECT_THAT(Syscall::GetArchDescription(sapi::cpu::kX8664), Eq("[X86-64]"));
67+
EXPECT_THAT(Syscall::GetArchDescription(sapi::cpu::kX86), Eq("[X86-32]"));
68+
EXPECT_THAT(Syscall::GetArchDescription(sapi::cpu::kPPC64LE), Eq("[PPC-64]"));
69+
EXPECT_THAT(Syscall::GetArchDescription(sapi::cpu::kArm64), Eq("[Arm-64]"));
70+
EXPECT_THAT(Syscall::GetArchDescription(sapi::cpu::kArm), Eq("[Arm-32]"));
71+
EXPECT_THAT(Syscall::GetArchDescription(sapi::cpu::kUnknown),
72+
StartsWith("[UNKNOWN_ARCH"));
73+
}
74+
6575
} // namespace
6676
} // namespace sandbox2

sandboxed_api/sandbox2/util.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ std::string GetSignalName(int signo) {
346346
if (signo >= SIGRTMIN && signo <= SIGRTMAX) {
347347
return absl::StrFormat("SIGRT-%d [%d]", signo - SIGRTMIN, signo);
348348
}
349-
if (signo < 0 || signo >= static_cast<int>(std::size(kSignalNames))) {
349+
if (signo <= 0 || signo >= static_cast<int>(std::size(kSignalNames))) {
350350
return absl::StrFormat("UNKNOWN_SIGNAL [%d]", signo);
351351
}
352352
return absl::StrFormat("%s [%d]", kSignalNames[signo], signo);
@@ -369,7 +369,7 @@ std::string GetAddressFamily(int addr_family) {
369369
"AF_VSOCK", "AF_KCM", "AF_QIPCRTR", "AF_SMC",
370370
"AF_XDP", "AF_MCTP"};
371371

372-
if (addr_family < 0 && addr_family >= std::size(kAddressFamilies)) {
372+
if (addr_family < 0 || addr_family >= std::size(kAddressFamilies)) {
373373
return absl::StrFormat("UNKNOWN_ADDRESS_FAMILY [%d]", addr_family);
374374
}
375375
return std::string(kAddressFamilies[addr_family]);

sandboxed_api/sandbox2/util_test.cc

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,13 @@
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;
4549
using ::testing::ElementsAreArray;
4650
using ::testing::Eq;
4751
using ::testing::Gt;
52+
using ::testing::HasSubstr;
4853
using ::testing::IsEmpty;
4954
using ::testing::IsTrue;
5055
using ::testing::Ne;
@@ -439,5 +444,82 @@ TEST_P(WriteBytesToPidFromTest, ExceedIovMax) {
439444
INSTANTIATE_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

Comments
 (0)