- expire 改为 update+refresh_ttl:键不存在返回 false,与 del/update 约定一致 - _require_string 适配 Boost 1.83(boost::json::string 已非 std::string) - 新增 --backlog(默认 128,libmsg 默认 10 短连接突刺易丢连接) - Makefile 补 HOST/PORT 默认值,test-memdb 用 PID 文件替代失效的 kill %1 - 补测试:复制构造/源销毁后副本有效/refresh 延长 TTL/expire 不存在键
51 lines
1.5 KiB
Makefile
51 lines
1.5 KiB
Makefile
CPP = g++
|
|
CPPFLAGS = -std=c++20 -O3 -Wall -Werror -pipe
|
|
INCS = -I ../libmsg/inc -I ../libmemdb/inc
|
|
LIBS = -L ../libmsg/build -lus_msg -lboost_json -lboost_program_options -lpthread
|
|
RPATH = -Wl,-rpath,'$$ORIGIN/../../libmsg/build'
|
|
|
|
BUILD = build
|
|
TARGET = $(BUILD)/memdb
|
|
SRC = src/memdb.cpp
|
|
|
|
HOST ?= 127.0.0.1
|
|
PORT ?= 8011
|
|
|
|
all: $(TARGET)
|
|
|
|
$(BUILD):
|
|
mkdir -p $(BUILD)
|
|
|
|
$(TARGET): $(SRC) | $(BUILD)
|
|
$(CPP) $(CPPFLAGS) $(INCS) -o $@ $< $(LIBS) $(RPATH)
|
|
|
|
# ── libmemdb 单元测试 ────────────────────────────────────────────────────
|
|
|
|
TEST_LIBMEMDB = test_libmemdb
|
|
TEST_CPPFLAGS = -std=c++20 -O0 -g -Wall -Werror
|
|
|
|
$(TEST_LIBMEMDB): test_libmemdb.cpp
|
|
$(CPP) $(TEST_CPPFLAGS) -I ../libmemdb/inc -o $@ $<
|
|
|
|
test: $(TARGET)
|
|
@echo "=== memdb unit tests ==="
|
|
$(MAKE) $(TEST_LIBMEMDB)
|
|
./$(TEST_LIBMEMDB)
|
|
@echo ""
|
|
@echo "=== memdb RPC integration tests (requires running server) ==="
|
|
-python3 test_memdb.py $(HOST) $(PORT)
|
|
|
|
test-libmemdb: $(TEST_LIBMEMDB)
|
|
./$(TEST_LIBMEMDB)
|
|
|
|
test-memdb: $(TARGET)
|
|
@echo "Starting memdb server..."
|
|
@./$(TARGET) --host $(HOST) --port $(PORT) --workers 2 --max-time 10 >/dev/null 2>&1 & echo $$! > .memdb.pid
|
|
@sleep 1
|
|
@python3 test_memdb.py $(HOST) $(PORT); EXIT=$$?; \
|
|
kill $$(cat .memdb.pid) 2>/dev/null; rm -f .memdb.pid; exit $$EXIT
|
|
|
|
clean:
|
|
rm -f $(TARGET) $(TEST_LIBMEMDB) .memdb.pid
|
|
|
|
.PHONY: all clean test test-libmemdb test-memdb |