scheduling using real slots number

This commit is contained in:
Rongsong Shen 2025-12-30 18:13:15 +08:00
parent 8db4458375
commit 780e9fb313
22 changed files with 980 additions and 105 deletions

View file

@ -15,6 +15,7 @@ extern void test_idgen(void);
extern void test_preason(void);
extern void test_ordq(void);
extern void test_delay(void);
extern void test_kvmgr(void);
void setUp(void) { return; }
@ -34,6 +35,7 @@ int main(int argc, char* argv[])
test_preason();
test_ordq();
test_delay();
test_kvmgr();
return UNITY_END();
}

View file

@ -0,0 +1,76 @@
#include <stdio.h>
#include <stdlib.h>
#include "kvmgr.h"
#include <unity.h>
#include "objmgr.h"
typedef struct {
char* key;
int data;
} kv_data_t;
static void test_kvadd(void)
{
kvmgr_t mgr;
char *key = "key1";
kv_data_t data = { .key = key, .data = 100 };
kv_data_t* p = NULL;
kvmgr_init(&mgr, string_hash_key, 4, 4, NULL);
kvmgr_add(&mgr, key, &data);
p = kvmgr_lock(&mgr, key, OBJREF_NOP);
TEST_ASSERT_TRUE(p != NULL);
TEST_ASSERT_TRUE(p == &data);
kvmgr_fini(&mgr);
}
static void test_kvput(void)
{
kvmgr_t mgr;
char *key = "key1";
kv_data_t data = { .key = key, .data = 100 };
kv_data_t* p = NULL;
int idx = 10;
kvmgr_init(&mgr, string_hash_key, 4, 4, NULL);
kvmgr_put(&mgr, key, idx, &data);
p = kvmgr_lock(&mgr, key, OBJREF_NOP);
TEST_ASSERT_TRUE(p != NULL);
TEST_ASSERT_TRUE(p == &data);
p = kvmgr_lock_byid(&mgr, idx, OBJREF_NOP);
TEST_ASSERT_TRUE(p != NULL);
TEST_ASSERT_TRUE(p == &data);
kvmgr_fini(&mgr);
}
static void test_kvdel(void)
{
kvmgr_t mgr;
char *key = "key1";
kv_data_t data = { .key = key, .data = 100 };
kv_data_t* p = NULL;
kvmgr_init(&mgr, string_hash_key, 4, 4, NULL);
kvmgr_add(&mgr, key, &data);
p = kvmgr_lock(&mgr, key, OBJREF_NOP);
TEST_ASSERT_TRUE(p != NULL);
TEST_ASSERT_TRUE(p == &data);
kvmgr_del(&mgr, key);
p = kvmgr_lock(&mgr, key, OBJREF_NOP);
TEST_ASSERT_TRUE( p == NULL);
kvmgr_fini(&mgr);
}
void test_kvmgr(void)
{
printf("\n>> kvmgr test\n");
RUN_TEST(test_kvadd);
RUN_TEST(test_kvput);
RUN_TEST(test_kvdel);
}