test-tests: move assert tests to new file

Those macros are defined in tests.[ch], so the tests should be in test-tests.c.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2025-06-29 22:15:29 +02:00
parent 89181651e6
commit a1296fa5e5
3 changed files with 131 additions and 125 deletions

View File

@@ -184,6 +184,7 @@ simple_tests += files(
'test-strxcpyx.c',
'test-sysctl-util.c',
'test-terminal-util.c',
'test-tests.c',
'test-tmpfile-util.c',
'test-udev-util.c',
'test-uid-classification.c',

View File

@@ -1,10 +1,5 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <unistd.h>
#include "sd-id128.h"
#include "errno-util.h"
#include "tests.h"
@@ -1107,124 +1102,4 @@ TEST(u64_multiply_safe) {
assert_se(u64_multiply_safe(UINT64_MAX, UINT64_MAX) == 0);
}
TEST(ASSERT) {
char *null = NULL;
ASSERT_OK(0);
ASSERT_OK(255);
ASSERT_OK(printf("Hello world\n"));
ASSERT_SIGNAL(ASSERT_OK(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK(-ENOANO), SIGABRT);
ASSERT_OK_POSITIVE(1);
ASSERT_OK_POSITIVE(255);
ASSERT_SIGNAL(ASSERT_OK_POSITIVE(0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_POSITIVE(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_POSITIVE(-ENOANO), SIGABRT);
ASSERT_OK_ZERO(0);
ASSERT_SIGNAL(ASSERT_OK_ZERO(1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO(255), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO(-ENOANO), SIGABRT);
ASSERT_OK_EQ(0, 0);
ASSERT_SIGNAL(ASSERT_OK_EQ(1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ(255, 5), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ(-1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ(-ENOANO, 0), SIGABRT);
ASSERT_OK_ERRNO(0 >= 0);
ASSERT_OK_ERRNO(255 >= 0);
ASSERT_OK_ERRNO(printf("Hello world\n"));
ASSERT_SIGNAL(ASSERT_OK_ERRNO(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ERRNO(-ENOANO), SIGABRT);
ASSERT_OK_ZERO_ERRNO(0);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(255), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(-ENOANO), SIGABRT);
ASSERT_OK_EQ_ERRNO(0, 0);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(255, 5), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(-1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(-ENOANO, 0), SIGABRT);
ASSERT_FAIL(-ENOENT);
ASSERT_FAIL(-EPERM);
ASSERT_SIGNAL(ASSERT_FAIL(0), SIGABRT);
ASSERT_SIGNAL(ASSERT_FAIL(255), SIGABRT);
ASSERT_ERROR(-ENOENT, ENOENT);
ASSERT_ERROR(RET_NERRNO(mkdir("/i/will/fail/with/enoent", 666)), ENOENT);
ASSERT_SIGNAL(ASSERT_ERROR(0, ENOENT), SIGABRT);
ASSERT_SIGNAL(ASSERT_ERROR(RET_NERRNO(mkdir("/i/will/fail/with/enoent", 666)), ENOANO), SIGABRT);
errno = ENOENT;
ASSERT_ERROR_ERRNO(-1, ENOENT);
errno = 0;
ASSERT_ERROR_ERRNO(mkdir("/i/will/fail/with/enoent", 666), ENOENT);
ASSERT_SIGNAL(ASSERT_ERROR_ERRNO(0, ENOENT), SIGABRT);
errno = 0;
ASSERT_SIGNAL(ASSERT_ERROR_ERRNO(mkdir("/i/will/fail/with/enoent", 666), ENOANO), SIGABRT);
ASSERT_TRUE(true);
ASSERT_TRUE(255);
ASSERT_TRUE(getpid());
ASSERT_SIGNAL(ASSERT_TRUE(1 == 0), SIGABRT);
ASSERT_FALSE(false);
ASSERT_FALSE(1 == 0);
ASSERT_SIGNAL(ASSERT_FALSE(1 > 0), SIGABRT);
ASSERT_NULL(NULL);
ASSERT_SIGNAL(ASSERT_NULL(signal_to_string(SIGINT)), SIGABRT);
ASSERT_NOT_NULL(signal_to_string(SIGTERM));
ASSERT_SIGNAL(ASSERT_NOT_NULL(NULL), SIGABRT);
ASSERT_STREQ(NULL, null);
ASSERT_STREQ("foo", "foo");
ASSERT_SIGNAL(ASSERT_STREQ(null, "bar"), SIGABRT);
ASSERT_SIGNAL(ASSERT_STREQ("foo", "bar"), SIGABRT);
ASSERT_EQ(0, 0);
ASSERT_EQ(-1, -1);
ASSERT_SIGNAL(ASSERT_EQ(255, -1), SIGABRT);
ASSERT_GE(0, 0);
ASSERT_GE(1, -1);
ASSERT_SIGNAL(ASSERT_GE(-1, 1), SIGABRT);
ASSERT_LE(0, 0);
ASSERT_LE(-1, 1);
ASSERT_SIGNAL(ASSERT_LE(1, -1), SIGABRT);
ASSERT_NE(0, (int64_t) UINT_MAX);
ASSERT_NE(-1, 1);
ASSERT_SIGNAL(ASSERT_NE(0, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_NE(-1, -1), SIGABRT);
ASSERT_GT(1, 0);
ASSERT_GT(1, -1);
ASSERT_SIGNAL(ASSERT_GT(0, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_GT(-1, 1), SIGABRT);
ASSERT_LT(0, 1);
ASSERT_LT(-1, 1);
ASSERT_SIGNAL(ASSERT_LT(0, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_LT(1, -1), SIGABRT);
ASSERT_EQ_ID128(SD_ID128_NULL, SD_ID128_NULL);
ASSERT_NE_ID128(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8),
SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e));
ASSERT_SIGNAL(
ASSERT_EQ_ID128(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8),
SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e)),
SIGABRT);
ASSERT_SIGNAL(ASSERT_NE_ID128(SD_ID128_NULL, SD_ID128_NULL), SIGABRT);
}
DEFINE_TEST_MAIN(LOG_INFO);

130
src/test/test-tests.c Normal file
View File

@@ -0,0 +1,130 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <sys/stat.h>
#include <unistd.h>
#include "sd-id128.h"
#include "tests.h"
TEST(ASSERT) {
char *null = NULL;
ASSERT_OK(0);
ASSERT_OK(255);
ASSERT_OK(printf("Hello world\n"));
ASSERT_SIGNAL(ASSERT_OK(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK(-ENOANO), SIGABRT);
ASSERT_OK_POSITIVE(1);
ASSERT_OK_POSITIVE(255);
ASSERT_SIGNAL(ASSERT_OK_POSITIVE(0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_POSITIVE(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_POSITIVE(-ENOANO), SIGABRT);
ASSERT_OK_ZERO(0);
ASSERT_SIGNAL(ASSERT_OK_ZERO(1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO(255), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO(-ENOANO), SIGABRT);
ASSERT_OK_EQ(0, 0);
ASSERT_SIGNAL(ASSERT_OK_EQ(1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ(255, 5), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ(-1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ(-ENOANO, 0), SIGABRT);
ASSERT_OK_ERRNO(0 >= 0);
ASSERT_OK_ERRNO(255 >= 0);
ASSERT_OK_ERRNO(printf("Hello world\n"));
ASSERT_SIGNAL(ASSERT_OK_ERRNO(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ERRNO(-ENOANO), SIGABRT);
ASSERT_OK_ZERO_ERRNO(0);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(255), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(-1), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_ZERO_ERRNO(-ENOANO), SIGABRT);
ASSERT_OK_EQ_ERRNO(0, 0);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(255, 5), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(-1, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_OK_EQ_ERRNO(-ENOANO, 0), SIGABRT);
ASSERT_FAIL(-ENOENT);
ASSERT_FAIL(-EPERM);
ASSERT_SIGNAL(ASSERT_FAIL(0), SIGABRT);
ASSERT_SIGNAL(ASSERT_FAIL(255), SIGABRT);
ASSERT_ERROR(-ENOENT, ENOENT);
ASSERT_ERROR(RET_NERRNO(mkdir("/i/will/fail/with/enoent", 666)), ENOENT);
ASSERT_SIGNAL(ASSERT_ERROR(0, ENOENT), SIGABRT);
ASSERT_SIGNAL(ASSERT_ERROR(RET_NERRNO(mkdir("/i/will/fail/with/enoent", 666)), ENOANO), SIGABRT);
errno = ENOENT;
ASSERT_ERROR_ERRNO(-1, ENOENT);
errno = 0;
ASSERT_ERROR_ERRNO(mkdir("/i/will/fail/with/enoent", 666), ENOENT);
ASSERT_SIGNAL(ASSERT_ERROR_ERRNO(0, ENOENT), SIGABRT);
errno = 0;
ASSERT_SIGNAL(ASSERT_ERROR_ERRNO(mkdir("/i/will/fail/with/enoent", 666), ENOANO), SIGABRT);
ASSERT_TRUE(true);
ASSERT_TRUE(255);
ASSERT_TRUE(getpid());
ASSERT_SIGNAL(ASSERT_TRUE(1 == 0), SIGABRT);
ASSERT_FALSE(false);
ASSERT_FALSE(1 == 0);
ASSERT_SIGNAL(ASSERT_FALSE(1 > 0), SIGABRT);
ASSERT_NULL(NULL);
ASSERT_SIGNAL(ASSERT_NULL(signal_to_string(SIGINT)), SIGABRT);
ASSERT_NOT_NULL(signal_to_string(SIGTERM));
ASSERT_SIGNAL(ASSERT_NOT_NULL(NULL), SIGABRT);
ASSERT_STREQ(NULL, null);
ASSERT_STREQ("foo", "foo");
ASSERT_SIGNAL(ASSERT_STREQ(null, "bar"), SIGABRT);
ASSERT_SIGNAL(ASSERT_STREQ("foo", "bar"), SIGABRT);
ASSERT_EQ(0, 0);
ASSERT_EQ(-1, -1);
ASSERT_SIGNAL(ASSERT_EQ(255, -1), SIGABRT);
ASSERT_GE(0, 0);
ASSERT_GE(1, -1);
ASSERT_SIGNAL(ASSERT_GE(-1, 1), SIGABRT);
ASSERT_LE(0, 0);
ASSERT_LE(-1, 1);
ASSERT_SIGNAL(ASSERT_LE(1, -1), SIGABRT);
ASSERT_NE(0, (int64_t) UINT_MAX);
ASSERT_NE(-1, 1);
ASSERT_SIGNAL(ASSERT_NE(0, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_NE(-1, -1), SIGABRT);
ASSERT_GT(1, 0);
ASSERT_GT(1, -1);
ASSERT_SIGNAL(ASSERT_GT(0, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_GT(-1, 1), SIGABRT);
ASSERT_LT(0, 1);
ASSERT_LT(-1, 1);
ASSERT_SIGNAL(ASSERT_LT(0, 0), SIGABRT);
ASSERT_SIGNAL(ASSERT_LT(1, -1), SIGABRT);
ASSERT_EQ_ID128(SD_ID128_NULL, SD_ID128_NULL);
ASSERT_NE_ID128(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8),
SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e));
ASSERT_SIGNAL(
ASSERT_EQ_ID128(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8),
SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e)),
SIGABRT);
ASSERT_SIGNAL(ASSERT_NE_ID128(SD_ID128_NULL, SD_ID128_NULL), SIGABRT);
}
DEFINE_TEST_MAIN(LOG_INFO);