[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FHYN85N7A8FSGCS6FHPGF6":3,"skill-same:01M6FHYN85N7A8FSGCS6FHPGF6":52},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":25,"linkOnly":26,"markdownContent":27,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":34,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M6FHYN85N7A8FSGCS6FHPGF6","running-tests",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fstellar\u002Fstellar-core\u002Frunning-tests\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24],"running tests","tests","2026-11-10 10:12:30",false,"# Overview\n\nThis skill is for running tests systematically, starting with fast\u002Ffocused tests\nand progressing to slower\u002Fbroader tests. This ordering allows failures to be\ncaught early, minimizing wasted time.\n\nThis skill is designed to be run as a **subagent** to avoid cluttering the\ninvoking agent's context. The output is either confirmation that all tests\npassed, or a report of failures.\n\n# Required Inputs (Before Launching Subagent)\n\nSince subagents cannot ask for clarification, the **invoking agent must gather\nthis information before launching**:\n\n1. **Changed files\u002Fmodules**: Which files or modules were changed, so the\n   subagent can identify appropriate smoke tests and focused tests.\n\n2. **Test levels to run**: Which levels to execute. Options:\n   - \"smoke only\" - just Level 1\n   - \"through focused\" - Levels 1-2\n   - \"through full suite\" - Levels 1-3 (usually sufficient for small changes)\n   - \"through full suite with tx-meta\" - Levels 1-3 plus tx-meta baseline check\n   - \"through sanitizers\" - Levels 1-4 (for memory\u002Fconcurrency-sensitive code)\n\nThe subagent prompt should include: \"Run tests \u003Clevels> for changes in \u003Cfiles\u002Fmodules>.\"\n\n# Test Output Control\n\nTo reduce noise and keep agent context manageable, always use these flags:\n\n```bash\n# Recommended flags for quiet output\n--ll fatal           # Only log fatal errors (not info\u002Fdebug messages)\n-r simple            # Use simple reporter (minimal output)\n--disable-dots       # Don't print progress dots\n--abort              # Stop on first failure (don't run remaining tests)\n```\n\nExample:\n```bash\n.\u002Fstellar-core test --ll fatal -r simple --disable-dots --abort \"test name\"\n```\n\nNote that if you ever do need information about a test when trying to diagnose\nwhat went wrong with it, you might want to turn the log level up from fatal to\ninfo, debug or even trace, using `--ll debug` or `--ll trace` for example.\n\n# Protocol Versions\n\nMany tests are protocol-specific and can behave differently across protocol\nversions. Use these flags to control which protocol versions are tested:\n\n```bash\n--version \u003CN>        # Run tests for a specific protocol version\n--all-versions       # Run tests for all supported protocol versions\n```\n\nFor focused testing during development, test with the current protocol version,\nwhich is the default. The full test suite should eventually be run with\n`--all-versions`.\n\n# Deterministic Random Number Generator\n\nTests use a deterministic PRNG. By default, the seed varies, but you can set\na specific seed for reproducibility:\n\n```bash\n--rng-seed \u003CN>       # Use a specific RNG seed for reproducibility\n```\n\nThis is useful for reproducing failures or for baseline checks that require\nconsistent output.\n\n# Test Levels\n\nTests are run in order of increasing cost. Stop at the first failure.\n\n## Level 1: Smoke Tests\n\nRun 2-3 specific tests that are most likely to catch breakage in the changed\ncode. These should complete in seconds.\n\nTo identify smoke tests:\n1. Find tests in the same file\u002Fmodule as the changed code\n2. Pick tests that directly exercise the modified functions\n3. Prefer fast tests over slow ones\n\n```bash\n# Run a specific test by name (use quotes for exact match)\n.\u002Fstellar-core test --ll fatal -r simple --abort \"exact test name\"\n```\n\n## Level 2: Focused Unit Tests\n\nRun all tests in the test file(s) related to the change. This typically takes\na few minutes.\n\n```bash\n# Run tests matching a tag pattern\n.\u002Fstellar-core test --ll fatal -r simple --abort \"[ModuleName*]\"\n\n# Run tests from a specific area\n.\u002Fstellar-core test --ll fatal -r simple --abort \"[ledgertxn]\"\n\n# Combine tags (AND logic - must match all)\n.\u002Fstellar-core test --ll fatal -r simple --abort \"[tx][soroban]\"\n```\n\n### Example Test Names by Area\n\n**Ledger\u002FTransaction tests:**\n- `\"[ledgertxn]\"` - LedgerTxn operations\n- `\"[tx][payment]\"` - Payment transaction tests\n- `\"[tx][createaccount]\"` - CreateAccount tests\n- `\"[tx][offers]\"` - Offer\u002FDEX tests\n- `\"[tx][soroban]\"` - Soroban (smart contract) transaction tests\n\n**Bucket\u002FBucketList tests:**\n- `\"[bucket]\"` - General bucket tests\n- `\"[bucketlist]\"` - BucketList specific tests\n- `\"[bucketmergemap]\"` - Bucket merge map tests\n\n**Herder tests:**\n- `\"[herder]\"` - General herder tests\n- `\"[txset]\"` - Transaction set tests\n- `\"[transactionqueue]\"` - Transaction queue tests\n- `\"[quorumintersection]\"` - Quorum intersection tests\n- `\"[upgrades]\"` - Protocol upgrade tests\n\n**Overlay\u002FNetwork tests:**\n- `\"[overlay]\"` - Overlay network tests\n- `\"[flood]\"` - Transaction flooding tests\n- `\"[PeerManager]\"` - Peer management tests\n\n**Crypto\u002FUtility tests:**\n- `\"[crypto]\"` - Cryptography tests\n- `\"[decoder]\"` - Base32\u002F64 encoding tests\n- `\"[timer]\"` - VirtualClock timer tests\n- `\"[cache]\"` - Cache implementation tests\n\n**Soroban-specific tests:**\n- `\"[soroban]\"` - All Soroban tests\n- `\"[soroban][archival]\"` - State archival tests\n- `\"[soroban][upgrades]\"` - Soroban upgrade tests\n\n## Level 3: Full Unit Test Suite\n\nRun the complete unit test suite. This may take 10-30 minutes.\n\n### Basic Execution\n\n```bash\nmake check\n```\n\nOr directly with quiet output:\n\n```bash\n.\u002Fstellar-core test --ll fatal -r simple --disable-dots --abort\n```\n\n### Parallel Execution (faster)\n\nFor faster execution, use parallel partitions via `make check`:\n\n```bash\n# Run with partitions equal to CPU cores\nNUM_PARTITIONS=$(nproc) make check\n```\n\n### Full Protocol Coverage\n\nThe full test suite should be run with all protocol versions:\n\n```bash\nALL_VERSIONS=1 NUM_PARTITIONS=$(nproc) make check\n```\n\n### SQLite-Only Testing (No Postgres)\n\nTo test with SQLite only (faster, no Postgres dependency):\n\n```bash\n.\u002Fconfigure --disable-postgres --enable-ccache --enable-sdfprefs\nmake clean && make -j $(nproc)\nNUM_PARTITIONS=$(nproc) make check\n```\n\n## Level 3b: Transaction Metadata Baseline Check\n\nThis validates that transaction test execution produces the same metadata hashes\nas fixed baselines stored in the repository. This catches unintended changes to\ntransaction semantics.\n\n**Important**: Always use `--rng-seed 12345` for baseline checks to ensure\ndeterministic results.\n\n```bash\n# Check transaction tests against current protocol baseline\n.\u002Fstellar-core test \"[tx]\" --all-versions --rng-seed 12345 --ll fatal \\\n    --abort -r simple --check-test-tx-meta test-tx-meta-baseline-current\n```\n\nFor next-protocol testing (when preparing protocol upgrades):\n\n```bash\n.\u002Fstellar-core test \"[tx]\" --all-versions --rng-seed 12345 --ll fatal \\\n    --abort -r simple --check-test-tx-meta test-tx-meta-baseline-next\n```\n\nIf baselines need updating after intentional changes, the test will fail and\nindicate which baselines differ.\n\n## Level 4: Sanitizer Tests\n\n**When to run**: Only needed for changes touching memory management, pointers,\nconcurrency, or threading code. Skip for simple logic changes, config changes,\nor test-only changes.\n\nRun tests with sanitizers enabled to catch memory errors and undefined behavior.\nThis requires reconfiguring and rebuilding.\n\n### Address Sanitizer (ASan)\n\nCatches memory errors: buffer overflows, use-after-free, memory leaks.\n\n```bash\n.\u002Fconfigure --enable-asan --enable-ccache --enable-sdfprefs\nmake clean && make -j $(nproc)\n.\u002Fstellar-core test --ll fatal -r simple --disable-dots --abort\n```\n\n### Thread Sanitizer (TSan)\n\nCatches data races and threading issues.\n\n```bash\n.\u002Fconfigure --enable-threadsanitizer --enable-ccache --enable-sdfprefs\nmake clean && make -j $(nproc)\n.\u002Fstellar-core test --ll fatal -r simple --disable-dots --abort\n```\n\n### Undefined Behavior Sanitizer (UBSan)\n\nCatches undefined behavior like integer overflow, null pointer dereference.\n\n```bash\n.\u002Fconfigure --enable-undefinedcheck --enable-ccache --enable-sdfprefs\nmake clean && make -j $(nproc)\n.\u002Fstellar-core test --ll fatal -r simple --disable-dots --abort\n```\n\n## Level 5: Extra Checks Build\n\n**When to run**: Only for changes to core data structures or when Level 4\nsanitizers found something suspicious. Usually overkill.\n\nRun with C++ standard library debugging enabled. Slower but catches more issues.\n\n```bash\n.\u002Fconfigure --enable-extrachecks --enable-ccache --enable-sdfprefs\nmake clean && make -j $(nproc)\n.\u002Fstellar-core test --ll fatal -r simple --disable-dots --abort\n```\n\n# Build Verification\n\nBefore running tests at Levels 4-6, also verify the build succeeds with\n`--disable-tests` (the production configuration):\n\n```bash\n.\u002Fconfigure --disable-tests --enable-ccache --enable-sdfprefs\nmake clean && make -j $(nproc)\n```\n\nThis doesn't run tests but ensures the production build works.\n\n# Interpreting Failures\n\nWhen a test fails:\n\n1. **Identify the failing test**: Note the exact test name and file\n2. **Capture the failure output**: Save the error message and stack trace\n3. **Determine if it's a real failure**: Check if the test is flaky or if this\n   is a genuine regression\n4. **Locate the relevant code**: Find where in the changed code the failure\n   originates\n\n## Common Failure Patterns\n\n- **Assertion failure**: A test assertion didn't hold; check the condition\n- **Crash\u002Fsegfault**: Memory error; run with ASan for more details\n- **Timeout**: Test took too long; may indicate infinite loop or deadlock\n- **Sanitizer error**: Memory or threading bug; the sanitizer output shows where\n\n# Output Format\n\nReport the results:\n\n```\n## Test Results: PASS\n\nAll test levels completed successfully:\n- Level 1 (Smoke): 3 tests, 2.1s\n- Level 2 (Focused): 47 tests, 1m 12s\n- Level 3 (Full Suite): 1,234 tests, 18m 45s\n- Level 3b (TX Meta Baseline): OK\n\nBuild verification:\n- --disable-tests: OK\n```\n\nOr on failure:\n\n```\n## Test Results: FAIL\n\nFailed at Level 2 (Focused Unit Tests)\n\n**Failing test:** `LedgerManagerTests.processTransactionRejectsEmpty`\n**File:** src\u002Fledger\u002FLedgerManagerTests.cpp:142\n**Error:**\n    REQUIRE( result == TRANSACTION_REJECTED )\n    with expansion:\n    TRANSACTION_SUCCESS == TRANSACTION_REJECTED\n\n**Analysis:** The test expects empty transactions to be rejected, but the\nnew code path is allowing them through. See LedgerManager.cpp:98 where the\nempty check appears to be missing.\n\nLevels completed before failure:\n- Level 1 (Smoke): 3 tests, 2.1s ✓\n```\n\n# Choosing the Right Test Level\n\n**For most changes** (logic fixes, new features, refactors):\n- Run through Level 3 (full suite) with `--all-versions`\n- Run Level 3b (tx-meta baseline) for transaction-related changes\n- Skip Levels 4-5 unless the change touches memory\u002Fthreading\n\n**For memory-sensitive changes** (pointers, allocations, C++ containers):\n- Run through Level 4 (at least ASan)\n\n**For concurrency changes** (threading, async, locks):\n- Run through Level 4 (especially TSan)\n\n**For test-only changes** or documentation:\n- Level 1-2 is usually sufficient\n\n# ALWAYS\n\n- ALWAYS run tests in order of increasing cost\n- ALWAYS stop at the first failure (use `--abort` flag)\n- ALWAYS use `--ll fatal -r simple --disable-dots` for quiet output\n- ALWAYS capture and report failure details\n- ALWAYS run full suite with `--all-versions` before considering complete\n- ALWAYS use `--rng-seed 12345` for tx-meta baseline checks\n- ALWAYS report timing for each level\n- ALWAYS identify the specific test and location of failures\n\n# NEVER\n\n- NEVER skip smoke tests and go straight to full suite\n- NEVER continue to later levels after a failure\n- NEVER report \"tests failed\" without specifics\n- NEVER assume a test failure is flaky without evidence\n- NEVER run verbose output that floods the context\n- NEVER run tests without having built first\n- NEVER run sanitizers (Level 4-5) for trivial changes (it's overkill)\n\n# Completion\n\nReport to the invoking agent:\n\n1. Overall result: PASS or FAIL\n2. For PASS: Summary of all levels completed with timing\n3. For FAIL: Detailed failure report with analysis\n4. Any observations (slow tests, warnings, etc.)\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fstellar\u002Fstellar-core\u002Frunning-tests",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill running-tests",{"tool":44,"command":45},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill running-tests",{"tool":47,"command":48},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill running-tests","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fstellar\u002Fstellar-core\u002Frunning-tests\u002FSKILL.md",true,[],[53,65,75,84,90,97],{"skillNo":54,"name":55,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":61,"publishedAt":25},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[58],{"categoryNo":59,"categoryName":60,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[62,63,64],"model","model hierarchy","model hierarchy skill",{"skillNo":66,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":71,"publishedAt":25},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[70],{"categoryNo":59,"categoryName":60,"taxonomyType":20,"taxonomyTypeDesc":21},[72,73,74],"MCP","zoom","zoom mcp",{"skillNo":76,"name":77,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":25},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[81,82,83,73],"sdk","zoom apps sdk","apps",{"skillNo":85,"name":86,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":25},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[86],{"skillNo":91,"name":92,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":96,"publishedAt":25},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[95],{"categoryNo":59,"categoryName":60,"taxonomyType":20,"taxonomyTypeDesc":21},[92],{"skillNo":98,"name":99,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":25},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[99]]