• src/doors/clans-src/tests

    From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, March 08, 2026 12:25:00
    https://gitlab.synchro.net/main/sbbs/-/commit/88d59dd3e85e6cab79b55495
    Added Files:
    src/doors/clans-src/tests/GNUmakefile src/doors/clans-src/tests/fixtures/ecomp/chat_topics.evt comments_legal.evt comprehensive.evt falseflag.evt fight_addenemy.evt getkey_input.evt valid.evt src/doors/clans-src/tests/fixtures/langcomp/comments_and_escape.txt no_macro.txt st_edge_cases.txt valid.txt src/doors/clans-src/tests/fixtures/makenpc/full.txt valid.txt src/doors/clans-src/tests/fixtures/makepak/dummy.txt file1.txt file2.txt listing.lst listing_comments.lst listing_multi.lst src/doors/clans-src/tests/fixtures/mclass/valid_class.txt valid_race.txt withspells.txt src/doors/clans-src/tests/fixtures/mcomp/multi.txt valid.txt src/doors/clans-src/tests/fixtures/mitems/allkinds.txt valid.txt src/doors/clans-src/tests/fixtures/mspells/allkinds.txt valid.txt src/doors/clans-src/tests/test_ecomp.sh test_harness.sh test_langcomp.sh test_makenpc.sh test_makepak.sh test_mclass.sh test_mcomp.sh test_mitems.sh test_mspells.sh
    Modified Files:
    src/doors/clans-src/GNUmakefile
    Log Message:
    Add integration tests for devkit

    Much more useful.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, March 08, 2026 16:54:00
    https://gitlab.synchro.net/main/sbbs/-/commit/5a2bc73418dbfee5e290ab20
    Added Files:
    src/doors/clans-src/tests/fixtures/qtest/acs.evt display.evt donequest.evt flags.evt getkey.evt heal.evt input.evt jump.evt misc.evt multi_option.evt news.evt npc_multi.evt npc_multi.npc.txt npc_telltopic.evt npc_telltopic.npc.txt quests.ini rewards.evt src/doors/clans-src/tests/fixtures/qtest/scripts/acs_always_true.script acs_and_false.script acs_and_true.script acs_dflag.script acs_gflag.script acs_gold.script acs_hflag.script acs_mine_k.script acs_mine_l.script acs_or.script acs_paren.script acs_pflag.script acs_questdone.script acs_random_false.script acs_random_true.script acs_tflag.script ambiguous_topic.script bad_topic.script display.script donequest.script empty_choice.script eof_no_end.script fight_lose.script fight_run.script getkey_a.script getkey_b.script givefight.script givefollowers.script givegold.script givepoints.script givexp.script heal_after_fight.script heal_hp.script heal_sp.script input_alpha.script input_beta.script invalid_choice.script jump.script malformed_line.script multi_opt_a.script multi_opt_b.script multi_opt_c.script news.script npc_merchant_telltopic.script npc_wizard_greet_exit.script npc_wizard_info.script state_dflags.script state_hflags.script state_pflags.script takegold_flat.script takegold_pct.script tellquest.script src/doors/clans-src/tests/fixtures/qtest/tellquest.evt
    Modified Files:
    src/doors/clans-src/docs/todo.txt src/doors/clans-src/tests/fixtures/qtest/fight.evt src/doors/clans-src/tests/test_qtest.sh
    Log Message:
    Add exhaustive qtest regression tests (160 tests)

    Cover the full scripting language and all qtest error paths:

    Positive tests:
    - SetFlag/ClearFlag for all flag types (G, H, P, D, T)
    - All reward commands: GiveGold, TakeGold (flat/%), GiveXP, GivePoints,
    GiveFight, GiveFollowers, GiveItem (new)
    - Heal SP; Pause (new, no-op in script mode per console.c)
    - All ACS condition types: ^, %, G, H, P, D, T, Q, $gold, L, K, R, &, |, ()
    - Jump, Display, AddNews
    - Option (3-way), GetKey, Input (Topic= hook), DoneQuest
    - Fight outcomes: Win, Lose, Run
    - Multi-topic NPC chat, TellTopic, TellQuest
    - State args: -G, -H, -P, -D, -g, -m, -q (new), -Q

    Negative/failure tests (new error code paths):
    - Exit 1: bare non-option argument (vs. unknown -flag)
    - Exit 2: premature End when hook expected
    - Exit 2: empty Choice= value
    - Exit 2: invalid Choice char not in allowed set
    - Exit 2: malformed script line (no = sign)
    - Exit 2: Topic= value not found in option list
    - Exit 2: ambiguous Topic= prefix (matches multiple options)
    - Exit 3: EOF reached instead of End marker (vs. non-End line)

    Untestable items documented in docs/todo.txt [2.1]: Heal HP
    (RunEvent resets HP unconditionally), GivePoints/GiveFight/GiveFollowers
    (not in state summary), DoneQuest->QuestsDone bit (caller's responsibility).

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, March 10, 2026 02:23:00
    https://gitlab.synchro.net/main/sbbs/-/commit/9f1c5bce8d0b9e124e41e7a2
    Added Files:
    src/doors/clans-src/tests/fixtures/qtest/scripts/acs_charisma.script acs_charisma_override.script
    Modified Files:
    src/doors/clans-src/data/stats.hlp src/doors/clans-src/devkit/clandev.txt src/doors/clans-src/docs/todo.txt src/doors/clans-src/release/player.txt prompt.md src/doors/clans-src/src/qtest.c quests.c src/doors/clans-src/tests/fixtures/qtest/acs.evt src/doors/clans-src/tests/test_qtest.sh src/doors/clans-src/web/player/stats.html
    Log Message:
    Add {Cyy} ACS condition: gate quest content on leader's Charisma

    The Charisma attribute was tracked, displayed, and trainable but never
    read by any gameplay code. {Cyy} tests whether the clan leader's
    Charisma is >= yy, following the same pattern as {Kyy} (mine level).
    This lets PAK developers gate dialogue, rewards, and alternate quest
    paths on Charisma investment.

    - quests.c: add case 'C' in legal() with NULL safety on Member[0]
    - qtest.c: add -c flag to override leader Charisma; add Member.Cha
    to state summary output
    - Integration tests: 13 new assertions (default + override)
    - clandev.txt, prompt.md: document {Cyy} with design guidance
    (threshold suggestions, never gate main quest path)
    - player.txt, web/player/stats.html, data/stats.hlp: update Charisma
    description (was "speaking out for the ruler" -- removed in v0.89b)
    - todo.txt: close 1.3, 1.8; update 1.1 to note quest/dialogue role

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, March 10, 2026 16:55:00
    https://gitlab.synchro.net/main/sbbs/-/commit/5699f954395aea6ed9651e78
    Added Files:
    src/doors/clans-src/tests/fixtures/stock_quests/pak.lst src/doors/clans-src/tests/fixtures/stock_quests/scripts/q10_help.script q10_take.script q11_win.script q12_left.script q12_right.script q13_win.script q14_win.script q15_charge.script q15_flank.script q16_win.script q17_win.script q18_win.script q19_fight.script q19_negotiate_broke.script q19_negotiate_pay.script q1_win.script q20_win_nosword.script q20_win_sword.script q2_attack.script q2_talk.script q3_enter_drink_p1.script q3_sneak_skip.script q4_ignore.script q4_investigate.script q5_ll_deadend.script q5_rr_success.script q6_altar.script q6_face.script q7_press.script q7_search.script q8_down.script q8_explore.script q9_ambush.script q9_challenge.script src/doors/clans-src/tests/test_stock_quests.sh
    Modified Files:
    src/doors/clans-src/tests/GNUmakefile
    Log Message:
    Add regression tests for stock quest campaign (115 tests)

    Exercise all 20 quests across 34 paths via qtest script mode.
    Assertions verify exit codes, gold rewards, flag state, quest
    completion, AddNews, and GiveItem. Compiles real data files
    (quests.evt, npcquote.txt, eventmon.txt, clans.txt) and builds
    a minimal PAK for NPC Chat commands.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, March 15, 2026 01:06:00
    https://gitlab.synchro.net/main/sbbs/-/commit/c56e95892537309a61d377f4
    Added Files:
    src/doors/clans-src/tests/fixtures/gtest/attack_all.script
    Modified Files:
    src/doors/clans-src/docs/gtest.txt src/doors/clans-src/src/gtest.c src/doors/clans-src/tests/test_gtest.sh
    Log Message:
    Add scripted manual combat to gtest (-c fight, -a ACTION)

    New "fight" command runs Fight_Fight with AutoFight=false, requiring
    player input for each combat round. Input comes from either:

    -a ACTION Fixed action (A=attack, R=run, I=parry) applied to
    every combat prompt via a GetAnswer hook
    -s SCRIPT Script file with Choice=/Key= lines

    Combined with -r (fixed random), -a gives fully deterministic manual
    combat without a script file. This makes it easy to test win, loss,
    and run scenarios.

    Change -r priority to check before script mode so -r and -s can be
    combined Ä the script provides Choice=/Key= lines while -r handles
    all Random= calls, avoiding the need to predict the exact number of
    random calls per combat round.

    Add 10 new integration tests: manual attack win, run away, and
    deterministic reproducibility. Total: 43 gtest tests.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net