本文整理汇总了C++中ASSERT_EXIT函数的典型用法代码示例。如果您正苦于以下问题:C++ ASSERT_EXIT函数的具体用法?C++ ASSERT_EXIT怎么用?C++ ASSERT_EXIT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ASSERT_EXIT函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TEST
TEST(DEATHTEST, snprintf_fortified2) {
::testing::FLAGS_gtest_death_test_style = "threadsafe";
foo myfoo;
strcpy(myfoo.a, "012345678");
size_t n = strlen(myfoo.a) + 2;
ASSERT_EXIT(snprintf(myfoo.b, n, "a%s", myfoo.a), testing::KilledBySignal(SIGABRT), "");
}
示例2: TEST
TEST(DEATHTEST, strncpy2_fortified) {
::testing::FLAGS_gtest_death_test_style = "threadsafe";
char dest[11];
char src[10];
memcpy(src, "0123456789", sizeof(src)); // src is not null terminated
ASSERT_EXIT(strncpy(dest, src, sizeof(dest)), testing::KilledBySignal(SIGABRT), "");
}
示例3: TEST
// one byte target with longer source (should fail)
TEST(Fortify1_DeathTest, strcpy4_fortified) {
::testing::FLAGS_gtest_death_test_style = "threadsafe";
char buf[1];
char *orig = strdup("12");
ASSERT_EXIT(strcpy(buf, orig), testing::KilledBySignal(SIGABRT), "");
free(orig);
}
示例4: TEST
TEST(DEATHTEST, read_fortified) {
::testing::FLAGS_gtest_death_test_style = "threadsafe";
char buf[1];
size_t ct = atoi("2"); // prevent optimizations
int fd = open("/dev/null", O_RDONLY);
ASSERT_EXIT(read(fd, buf, ct), testing::KilledBySignal(SIGABRT), "");
close(fd);
}
示例5: GetExecutablePathQuoted
void GetExecutablePathQuoted(wchar_t* outpath, int outpath_length)
{
wchar_t* temppath = new wchar_t[outpath_length];
GetExecutablePath(temppath, outpath_length);
int result = swprintf_s(outpath, outpath_length, L"\"%s\"", temppath);
ASSERT_EXIT((-1 != result), "swprintf_s(outpath)");
delete[] temppath;
temppath = 0;
}
示例6: GetExecutablePath
void GetExecutablePath(wchar_t* outpath, int outpath_length)
{
// This path is longer than MAX_PATH, do not use it with
// windows api functions as you might get buffer overflows.
wchar_t shortpath[1024];
wchar_t longpath[1024];
DWORD dw;
dw = GetModuleFileName(NULL, shortpath, 1024);
ASSERT_EXIT(dw, "GetModuleFileName()");
dw = GetLongPathName(shortpath, longpath, 1024);
ASSERT_EXIT(dw, "GetLongPathName()");
swprintf_s(outpath, outpath_length, L"%s", longpath);
}
示例7: TEST
TEST(ExampleTests, test_no_death){
auto a = [] () {
int a = 0;
a = 7;
int b = a;
a = b;
exit(0);
};
ASSERT_EXIT(a(), ::testing::ExitedWithCode(0), "");
}
示例8: TEST_F
TEST_F(properties_DeathTest, read_only) {
#if defined(__BIONIC__)
// This test only makes sense if we're talking to the real system property service.
struct stat sb;
if (stat(PROP_FILENAME, &sb) == -1 && errno == ENOENT) {
return;
}
ASSERT_EXIT(__system_property_add("property", 8, "value", 5), KilledByFault(), "");
#else // __BIONIC__
GTEST_LOG_(INFO) << "This test does nothing.\n";
#endif // __BIONIC__
}
示例9: GetExecutableName
void GetExecutableName(wchar_t* outdir, int outdir_length)
{
// Filename without extension.
wchar_t longpath[1024];
GetExecutablePath(longpath, _countof(longpath));
wchar_t drive[3];
wchar_t dir[768];
wchar_t fname[256];
wchar_t ext[32];
errno_t result = _wsplitpath_s(longpath, drive, _countof(drive), dir, _countof(dir), fname, _countof(fname), ext, _countof(ext));
ASSERT_EXIT((result == 0), "_wsplitpath_s(longpath)");
swprintf_s(outdir, outdir_length, L"%s", fname);
}
示例10: test_policy_priv_by_id
static int test_policy_priv_by_id(const char *bus,
struct kdbus_conn *conn_dst,
bool drop_second_user,
int parent_status,
int child_status)
{
int ret = 0;
uint64_t expected_cookie = time(NULL) ^ 0xdeadbeef;
ASSERT_RETURN(conn_dst);
ret = RUN_UNPRIVILEGED_CONN(unpriv, bus, ({
ret = kdbus_msg_send(unpriv, NULL,
expected_cookie, 0, 0, 0,
conn_dst->id);
ASSERT_EXIT(ret == child_status);
}));
示例11: no_cancel_sync
static int no_cancel_sync(struct kdbus_conn *conn_src,
struct kdbus_conn *conn_dst)
{
pid_t pid;
int cancel_fd;
int ret, status;
struct kdbus_msg *msg = NULL;
/* pass eventfd, but never signal it so it shouldn't have any effect */
cancel_fd = eventfd(0, 0);
ASSERT_RETURN_VAL(cancel_fd >= 0, cancel_fd);
cookie++;
pid = fork();
ASSERT_RETURN_VAL(pid >= 0, pid);
if (pid == 0) {
ret = kdbus_msg_send_sync(conn_dst, NULL, cookie,
KDBUS_MSG_EXPECT_REPLY,
100000000ULL, 0, conn_src->id,
cancel_fd);
ASSERT_EXIT(ret == 0);
_exit(EXIT_SUCCESS);
}
ret = kdbus_msg_recv_poll(conn_src, 100, &msg, NULL);
ASSERT_RETURN_VAL(ret == 0 && msg->cookie == cookie, -1);
kdbus_msg_free(msg);
ret = kdbus_msg_send_reply(conn_src, cookie, conn_dst->id);
ASSERT_RETURN_VAL(ret >= 0, ret);
ret = waitpid(pid, &status, 0);
ASSERT_RETURN_VAL(ret >= 0, ret);
if (WIFSIGNALED(status))
return -1;
return (status == EXIT_SUCCESS) ? 0 : -1;
}