save works

This commit is contained in:
Rongsong Shen 2026-02-28 17:55:50 +08:00
parent b1faeb94b6
commit b748e30d20
35 changed files with 1247 additions and 2149 deletions

View file

@ -5,16 +5,17 @@
#include "group.h"
#include "utils.h"
#include "xstring.h"
static void test_all(void)
{
groupmgr_t mgr;
var mgr;
xce_group_t* all = NULL;
int rc = 0;
groupmgr_init(&mgr, 16, 16);
all = get_group(&mgr, "all");
all = get_group(mgr, "all");
TEST_ASSERT_TRUE(all != NULL);
@ -22,18 +23,18 @@ static void test_all(void)
TEST_ASSERT_TRUE(rc > 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_empty(void)
{
groupmgr_t mgr;
var mgr;
xce_group_t* empty = NULL;
int rc = 0;
groupmgr_init(&mgr, 16, 16);
empty = get_group(&mgr, "empty");
empty = get_group(mgr, "empty");
TEST_ASSERT_TRUE(empty != NULL);
@ -41,12 +42,12 @@ static void test_empty(void)
TEST_ASSERT_TRUE(rc == 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_all_1(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.name = "g1",
.members = { .count = 1, .data = (char*[]) { "all" } }
@ -57,7 +58,7 @@ static void test_all_1(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata, NULL);
g = makeGroup(mgr, &gdata, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -65,12 +66,12 @@ static void test_all_1(void)
TEST_ASSERT_TRUE(rc > 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_all_2(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.name = "g1",
.members = { .count = 2, .data = (char*[]) { "g2", "all" } }
@ -81,7 +82,7 @@ static void test_all_2(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata, NULL);
g = makeGroup(mgr, &gdata, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -89,12 +90,12 @@ static void test_all_2(void)
TEST_ASSERT_TRUE(rc > 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_empty_1(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.name = "g1",
.ex_members = { .count = 1, .data = (char*[]) { "all" } }
@ -105,7 +106,7 @@ static void test_empty_1(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata, NULL);
g = makeGroup(mgr, &gdata, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -113,12 +114,12 @@ static void test_empty_1(void)
TEST_ASSERT_TRUE(rc == 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_empty_2(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.name = "g1",
.members = { .count = 1, .data = (char*[]) { "empty" } }
@ -129,7 +130,7 @@ static void test_empty_2(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata, NULL);
g = makeGroup(mgr, &gdata, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -137,12 +138,12 @@ static void test_empty_2(void)
TEST_ASSERT_TRUE(rc == 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_include(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.name = "g1",
.members = { .count = 1, .data = (char*[]) { "rshen" } }
@ -153,7 +154,7 @@ static void test_include(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata, NULL);
g = makeGroup(mgr, &gdata, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -161,12 +162,12 @@ static void test_include(void)
TEST_ASSERT_TRUE(rc > 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_exclude(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.name = "g1",
.members = { .count = 1, .data = (char*[]) { "all" } },
@ -178,7 +179,7 @@ static void test_exclude(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata, NULL);
g = makeGroup(mgr, &gdata, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -186,12 +187,12 @@ static void test_exclude(void)
TEST_ASSERT_TRUE(rc == 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_nest(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata1 = {
.name = "g1",
.members = { .count = 1, .data = (char*[]) { "rshen" } }
@ -206,11 +207,11 @@ static void test_nest(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata1, NULL);
g = makeGroup(mgr, &gdata1, NULL);
TEST_ASSERT_TRUE(g != NULL);
g = build_group(&mgr, &gdata2, NULL);
g = makeGroup(mgr, &gdata2, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -218,12 +219,12 @@ static void test_nest(void)
TEST_ASSERT_TRUE(rc != 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
static void test_nest2(void)
{
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata1 = {
.name = "g1",
.members = { .count = 1, .data = (char*[]) { "rshen" } }
@ -239,11 +240,11 @@ static void test_nest2(void)
groupmgr_init(&mgr, 16, 16);
g = build_group(&mgr, &gdata1, NULL);
g = makeGroup(mgr, &gdata1, NULL);
TEST_ASSERT_TRUE(g != NULL);
g = build_group(&mgr, &gdata2, NULL);
g = makeGroup(mgr, &gdata2, NULL);
TEST_ASSERT_TRUE(g != NULL);
@ -251,13 +252,15 @@ static void test_nest2(void)
TEST_ASSERT_TRUE(rc == 0);
groupmgr_fini(&mgr);
destroy(mgr);
}
void test_group(void)
{
printf("\n>> group test\n\n");
xstring_table_init(139);
RUN_TEST(test_all);
RUN_TEST(test_empty);
RUN_TEST(test_all_1);
@ -268,4 +271,6 @@ void test_group(void)
RUN_TEST(test_exclude);
RUN_TEST(test_nest);
RUN_TEST(test_nest2);
xstring_table_fini();
}

View file

@ -1,3 +1,4 @@
#include <rtti.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
@ -6,11 +7,12 @@
#include "group.h"
#include "xce/types.h"
#include "xcelimit.h"
#include "xstring.h"
static void test_build_consumer1(void)
{
xce_consumer_t* c = NULL;
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.members = { .count = 2, .data = (char*[]) { "rshen", "jsxing" } }
};
@ -18,7 +20,7 @@ static void test_build_consumer1(void)
char buf[1024];
groupmgr_init(&mgr, 4, 4);
rc = build_consumer(&c, &mgr, CONSUMER_USER, 1, &gdata, "user_group1");
rc = build_consumer(&c, mgr, CONSUMER_USER, 1, &gdata, "user_group1");
TEST_ASSERT_TRUE(rc == 1);
@ -29,14 +31,15 @@ static void test_build_consumer1(void)
kill_consumer(c);
groupmgr_fini(&mgr);
destroy(mgr);
return;
}
static void test_build_consumer2(void)
{
xce_consumer_t* c = NULL;
groupmgr_t mgr;
var mgr;
xce_group_config_t gdata = {
.members = { .count = 1, .data = (char*[]) { "all" } },
.ex_members = { .count = 2, .data = (char*[]) { "rshen", "jsxing" } }
@ -45,7 +48,7 @@ static void test_build_consumer2(void)
char buf[1024];
groupmgr_init(&mgr, 4, 4);
rc = build_consumer(&c, &mgr, CONSUMER_USER, 1, &gdata, "user_group1");
rc = build_consumer(&c, mgr, CONSUMER_USER, 1, &gdata, "user_group1");
TEST_ASSERT_TRUE(rc == 1);
@ -57,13 +60,17 @@ static void test_build_consumer2(void)
kill_consumer(c);
groupmgr_fini(&mgr);
destroy(mgr);
return;
}
static void test_build_limit_ok1(void)
{
groupmgr_t umgr, qmgr, hmgr, pmgr;
var umgr;
var qmgr;
var hmgr;
var pmgr;
xce_limit_t* limit;
int rc;
xce_limit_config_t limit_config = {
@ -88,7 +95,7 @@ static void test_build_limit_ok1(void)
groupmgr_init(&hmgr, 4, 4);
groupmgr_init(&pmgr, 4, 4);
rc = build_limit(&limit, &umgr, &qmgr, &hmgr, &pmgr, &limit_config);
rc = build_limit(&limit, umgr, qmgr, hmgr, pmgr, &limit_config);
TEST_ASSERT_TRUE(rc == 1);
memset(buf, 0x0, sizeof(buf));
@ -100,15 +107,18 @@ static void test_build_limit_ok1(void)
kill_limit(limit);
groupmgr_fini(&pmgr);
groupmgr_fini(&hmgr);
groupmgr_fini(&qmgr);
groupmgr_fini(&umgr);
destroy(pmgr);
destroy(hmgr);
destroy(qmgr);
destroy(umgr);
}
static void test_match_limit_ok1(void)
{
groupmgr_t umgr, qmgr, hmgr, pmgr;
var umgr;
var qmgr;
var hmgr;
var pmgr;
xce_limit_t* limit;
int rc;
xce_limit_config_t limit_config = {
@ -137,7 +147,7 @@ static void test_match_limit_ok1(void)
groupmgr_init(&hmgr, 4, 4);
groupmgr_init(&pmgr, 4, 4);
rc = build_limit(&limit, &umgr, &qmgr, &hmgr, &pmgr, &limit_config);
rc = build_limit(&limit, umgr, qmgr, hmgr, pmgr, &limit_config);
TEST_ASSERT_TRUE(rc == 1);
memset(buf, 0x0, sizeof(buf));
@ -152,15 +162,18 @@ static void test_match_limit_ok1(void)
kill_limit(limit);
groupmgr_fini(&pmgr);
groupmgr_fini(&hmgr);
groupmgr_fini(&qmgr);
groupmgr_fini(&umgr);
destroy(pmgr);
destroy(hmgr);
destroy(qmgr);
destroy(umgr);
}
static void test_match_limit_ok2(void)
{
groupmgr_t umgr, qmgr, hmgr, pmgr;
var umgr;
var qmgr;
var hmgr;
var pmgr;
xce_limit_t* limit;
int rc;
xce_limit_config_t limit_config = {
@ -183,7 +196,7 @@ static void test_match_limit_ok2(void)
groupmgr_init(&hmgr, 4, 4);
groupmgr_init(&pmgr, 4, 4);
rc = build_limit(&limit, &umgr, &qmgr, &hmgr, &pmgr, &limit_config);
rc = build_limit(&limit, umgr, qmgr, hmgr, pmgr, &limit_config);
TEST_ASSERT_TRUE(rc == 1);
memset(buf, 0x0, sizeof(buf));
@ -198,15 +211,18 @@ static void test_match_limit_ok2(void)
kill_limit(limit);
groupmgr_fini(&pmgr);
groupmgr_fini(&hmgr);
groupmgr_fini(&qmgr);
groupmgr_fini(&umgr);
destroy(pmgr);
destroy(hmgr);
destroy(qmgr);
destroy(umgr);
}
static void test_match_limit1(void)
{
groupmgr_t umgr, qmgr, hmgr, pmgr;
var umgr;
var qmgr;
var hmgr;
var pmgr;
xce_limit_t* limit;
int rc;
xce_limit_config_t limit_config = {
@ -238,7 +254,7 @@ static void test_match_limit1(void)
groupmgr_init(&hmgr, 4, 4);
groupmgr_init(&pmgr, 4, 4);
rc = build_limit(&limit, &umgr, &qmgr, &hmgr, &pmgr, &limit_config);
rc = build_limit(&limit, umgr, qmgr, hmgr, pmgr, &limit_config);
TEST_ASSERT_TRUE(rc == 1);
memset(buf, 0x0, sizeof(buf));
@ -253,15 +269,18 @@ static void test_match_limit1(void)
kill_limit(limit);
groupmgr_fini(&pmgr);
groupmgr_fini(&hmgr);
groupmgr_fini(&qmgr);
groupmgr_fini(&umgr);
destroy(pmgr);
destroy(hmgr);
destroy(qmgr);
destroy(umgr);
}
static void test_match_limit2(void)
{
groupmgr_t umgr, qmgr, hmgr, pmgr;
var umgr;
var qmgr;
var hmgr;
var pmgr;
xce_limit_t* limit;
int rc;
xce_limit_config_t limit_config = {
@ -289,7 +308,7 @@ static void test_match_limit2(void)
groupmgr_init(&hmgr, 4, 4);
groupmgr_init(&pmgr, 4, 4);
rc = build_limit(&limit, &umgr, &qmgr, &hmgr, &pmgr, &limit_config);
rc = build_limit(&limit, umgr, qmgr, hmgr, pmgr, &limit_config);
TEST_ASSERT_TRUE(rc == 1);
memset(buf, 0x0, sizeof(buf));
@ -304,15 +323,18 @@ static void test_match_limit2(void)
kill_limit(limit);
groupmgr_fini(&pmgr);
groupmgr_fini(&hmgr);
groupmgr_fini(&qmgr);
groupmgr_fini(&umgr);
destroy(pmgr);
destroy(hmgr);
destroy(qmgr);
destroy(umgr);
}
void test_limit(void)
{
printf("\n>> limit test\n\n");
xstring_table_init(139);
RUN_TEST(test_build_consumer1);
RUN_TEST(test_build_consumer2);
RUN_TEST(test_build_limit_ok1);
@ -320,5 +342,6 @@ void test_limit(void)
RUN_TEST(test_match_limit_ok2);
RUN_TEST(test_match_limit1);
RUN_TEST(test_match_limit2);
}
xstring_table_fini();
}