Compare commits
1 Commits
ce54f782bf
...
99d957b461
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
99d957b461 |
@@ -139,7 +139,7 @@ jobs:
|
|||||||
echo "go down"
|
echo "go down"
|
||||||
echo "go south"
|
echo "go south"
|
||||||
echo "attack thief"
|
echo "attack thief"
|
||||||
sleep 8
|
sleep 15
|
||||||
echo "stats"
|
echo "stats"
|
||||||
echo "quit"
|
echo "quit"
|
||||||
) | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 smoketest@localhost
|
) | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 smoketest@localhost
|
||||||
@@ -173,27 +173,43 @@ jobs:
|
|||||||
|
|
||||||
- name: Verify logging
|
- name: Verify logging
|
||||||
run: |
|
run: |
|
||||||
|
set +e
|
||||||
if [ ! -d "logs" ]; then
|
if [ ! -d "logs" ]; then
|
||||||
echo "Error: logs directory not found"
|
echo "Error: logs directory not found"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! ls logs/mudserver_*.log >/dev/null 2>&1; then
|
|
||||||
|
MS_LOG=$(ls -t logs/mudserver_*.log 2>/dev/null | head -n 1)
|
||||||
|
CB_LOG=$(ls -t logs/combat_*.log 2>/dev/null | head -n 1)
|
||||||
|
|
||||||
|
FAILED=0
|
||||||
|
|
||||||
|
if [ -z "$MS_LOG" ]; then
|
||||||
echo "Error: no mudserver log files found"
|
echo "Error: no mudserver log files found"
|
||||||
exit 1
|
FAILED=1
|
||||||
fi
|
else
|
||||||
if ! ls logs/combat_*.log >/dev/null 2>&1; then
|
|
||||||
echo "Error: no combat log files found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
MS_LOG=$(ls -t logs/mudserver_*.log | head -n 1)
|
|
||||||
CB_LOG=$(ls -t logs/combat_*.log | head -n 1)
|
|
||||||
|
|
||||||
echo "Checking mudserver log: $MS_LOG"
|
echo "Checking mudserver log: $MS_LOG"
|
||||||
grep -q "World '.*': .* rooms" "$MS_LOG"
|
grep -q "World '.*': .* rooms" "$MS_LOG" || { echo "Failed: World loading log missing"; FAILED=1; }
|
||||||
grep -q "MUD server listening on" "$MS_LOG"
|
grep -q "MUD server listening on" "$MS_LOG" || { echo "Failed: Listen log missing"; FAILED=1; }
|
||||||
grep -q "New character created: smoketest" "$MS_LOG"
|
grep -q "New character created: smoketest" "$MS_LOG" || { echo "Failed: smoketest creation log missing"; FAILED=1; }
|
||||||
grep -q "Admin action: registration setting updated: '.*'" "$MS_LOG"
|
grep -q "Admin action: registration setting updated: '.*'" "$MS_LOG" || { echo "Failed: Admin action log missing"; FAILED=1; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$CB_LOG" ]; then
|
||||||
|
echo "Error: no combat log files found"
|
||||||
|
FAILED=1
|
||||||
|
else
|
||||||
echo "Checking combat log: $CB_LOG"
|
echo "Checking combat log: $CB_LOG"
|
||||||
grep -q "Combat: Player 'smoketest' (ID .*) killed NPC 'Shadowy Thief'" "$CB_LOG"
|
grep -q "Combat: Player 'smoketest' (ID .*) engaged NPC 'Shadowy Thief'" "$CB_LOG" || { echo "Failed: Combat engagement log missing"; FAILED=1; }
|
||||||
|
grep -q "Combat: Player 'smoketest' (ID .*) killed NPC 'Shadowy Thief'" "$CB_LOG" || { echo "Failed: NPC kill log missing"; FAILED=1; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $FAILED -ne 0 ]; then
|
||||||
|
echo "--- LOG VERIFICATION FAILED ---"
|
||||||
|
echo "--- MUDSERVER LOG CONTENTS ---"
|
||||||
|
[ -n "$MS_LOG" ] && cat "$MS_LOG"
|
||||||
|
echo "--- COMBAT LOG CONTENTS ---"
|
||||||
|
[ -n "$CB_LOG" ] && cat "$CB_LOG"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Logging verification passed."
|
||||||
|
|||||||
BIN
mudserver.db.test
Normal file
BIN
mudserver.db.test
Normal file
Binary file not shown.
BIN
mudserver.db.test-shm
Normal file
BIN
mudserver.db.test-shm
Normal file
Binary file not shown.
BIN
mudserver.db.test-wal
Normal file
BIN
mudserver.db.test-wal
Normal file
Binary file not shown.
@@ -70,8 +70,7 @@ pub fn resolve_combat_tick(
|
|||||||
|
|
||||||
if new_npc_hp <= 0 {
|
if new_npc_hp <= 0 {
|
||||||
let player_name = state.players.get(&player_id).map(|c| c.player.name.clone()).unwrap_or_else(|| "Unknown".into());
|
let player_name = state.players.get(&player_id).map(|c| c.player.name.clone()).unwrap_or_else(|| "Unknown".into());
|
||||||
log::info!(target: "{combat}",
|
log::info!(target: "{combat}", "Combat: Player '{}' (ID {}) killed NPC '{}' ({})", player_name, player_id, npc_template.name, npc_id);
|
||||||
"Combat: Player '{}' (ID {}) killed NPC '{}' ({})", player_name, player_id, npc_template.name, npc_id);
|
|
||||||
if let Some(inst) = state.npc_instances.get_mut(&npc_id) {
|
if let Some(inst) = state.npc_instances.get_mut(&npc_id) {
|
||||||
inst.alive = false;
|
inst.alive = false;
|
||||||
inst.hp = 0;
|
inst.hp = 0;
|
||||||
@@ -356,8 +355,7 @@ pub fn player_death_respawn(player_id: usize, state: &mut GameState) -> String {
|
|||||||
.map(|c| c.player.name.clone())
|
.map(|c| c.player.name.clone())
|
||||||
.unwrap_or_else(|| "Unknown".into());
|
.unwrap_or_else(|| "Unknown".into());
|
||||||
|
|
||||||
log::info!(target: "{combat}",
|
log::info!(target: "{combat}", "Combat: Player '{}' (ID {}) died and respawned at {}", player_name, player_id, spawn_room);
|
||||||
"Combat: Player '{}' (ID {}) died and respawned at {}", player_name, player_id, spawn_room);
|
|
||||||
|
|
||||||
if let Some(conn) = state.players.get_mut(&player_id) {
|
if let Some(conn) = state.players.get_mut(&player_id) {
|
||||||
conn.player.stats.hp = conn.player.stats.max_hp;
|
conn.player.stats.hp = conn.player.stats.max_hp;
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ async fn main() {
|
|||||||
Naming::Numbers,
|
Naming::Numbers,
|
||||||
Cleanup::KeepLogFiles(7),
|
Cleanup::KeepLogFiles(7),
|
||||||
)
|
)
|
||||||
.write_mode(WriteMode::BufferAndFlush)
|
.write_mode(WriteMode::Direct)
|
||||||
.add_writer("combat", Box::new(combat_writer))
|
.add_writer("combat", Box::new(combat_writer))
|
||||||
.start()
|
.start()
|
||||||
.unwrap_or_else(|e| {
|
.unwrap_or_else(|e| {
|
||||||
|
|||||||
Reference in New Issue
Block a user